From ab667a8b64b960937dbd0f343808cb0d92a92544 Mon Sep 17 00:00:00 2001 From: x123 Date: Fri, 30 Dec 2022 01:44:21 +0100 Subject: [PATCH 001/139] add x123 keymap for splitkb/aurora/corne (#19407) --- .../aurora/corne/keymaps/x123/config.h | 25 ++ .../aurora/corne/keymaps/x123/keymap.c | 244 ++++++++++++++++++ .../aurora/corne/keymaps/x123/readme.md | 56 ++++ .../aurora/corne/keymaps/x123/rules.mk | 22 ++ 4 files changed, 347 insertions(+) create mode 100644 keyboards/splitkb/aurora/corne/keymaps/x123/config.h create mode 100644 keyboards/splitkb/aurora/corne/keymaps/x123/keymap.c create mode 100644 keyboards/splitkb/aurora/corne/keymaps/x123/readme.md create mode 100644 keyboards/splitkb/aurora/corne/keymaps/x123/rules.mk diff --git a/keyboards/splitkb/aurora/corne/keymaps/x123/config.h b/keyboards/splitkb/aurora/corne/keymaps/x123/config.h new file mode 100644 index 000000000000..12ca322b040a --- /dev/null +++ b/keyboards/splitkb/aurora/corne/keymaps/x123/config.h @@ -0,0 +1,25 @@ +/* +Copyright 2022 x123 <@x123> +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License 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 ONESHOT_TAP_TOGGLE 3 /* Tapping this number of times holds the key until tapped once again. */ +#define ONESHOT_TIMEOUT 5000 /* Time (in ms) before the one shot key is released */ + +#define TAPPING_TOGGLE 1 +#define TAPPING_TERM 280 +#define IGNORE_MOD_TAP_INTERRUPT +#define UNICODE_SELECTED_MODES UNICODE_MODE_WINCOMPOSE, UNICODE_MODE_MACOS, UNICODE_MODE_LINUX \ No newline at end of file diff --git a/keyboards/splitkb/aurora/corne/keymaps/x123/keymap.c b/keyboards/splitkb/aurora/corne/keymaps/x123/keymap.c new file mode 100644 index 000000000000..6087c698deda --- /dev/null +++ b/keyboards/splitkb/aurora/corne/keymaps/x123/keymap.c @@ -0,0 +1,244 @@ +/* +Copyright 2022 x123 <@x123> +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +enum layer_names { + _QWERTY, + _QWERTY_NOHOMEROW, + _COLEMAK, + _COLEMAK_NOHOMEROW, + _LOWER, + _RAISE, + _ADJUST, + _ONESHOT, +}; + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + QWERTY_NOHOMEROW, + COLEMAK, + COLEMAK_NOHOMEROW, + LOWER, + RAISE, + ADJUST, + ONESHOT, + DT_UP_50, + DT_DOWN_50, + DT_UP_X2, + DT_DOWN_X2, + DT_200, + DT_MAX, +}; + +#define LSFT_KA LSFT_T(KC_A) +#define LCTL_KS LCTL_T(KC_S) +#define LGUI_KD LGUI_T(KC_D) +#define LALT_KF LALT_T(KC_F) +#define LALT_KJ LALT_T(KC_J) +#define RGUI_KK RGUI_T(KC_K) +#define RCTL_KL RCTL_T(KC_L) +#define RS_SCLN RSFT_T(KC_SCLN) + +#define LCTL_KR LCTL_T(KC_R) +#define LGUI_KS LGUI_T(KC_S) +#define LALT_KT LALT_T(KC_T) +#define LALT_KN LALT_T(KC_N) +#define RGUI_KE RGUI_T(KC_E) +#define RCTL_KI RCTL_T(KC_I) +#define RSFT_KO RSFT_T(KC_O) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_BSPC, LSFT_KA, LCTL_KS, LGUI_KD, LALT_KF, KC_G, KC_H, LALT_KJ, RGUI_KK, RCTL_KL, RS_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_LALT, LOWER, KC_SPC, KC_ENT, RAISE, OSL(_ONESHOT) + //`--------------------------' `--------------------------' + + ), + + [_QWERTY_NOHOMEROW] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LALT, LOWER, KC_SPC, KC_ENT, RAISE, OSL(_ONESHOT) + //`--------------------------' `--------------------------' + + ), + + [_COLEMAK] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_BSPC, LSFT_KA, LCTL_KR, LGUI_KS, LALT_KT, KC_G, KC_M, LALT_KN, RGUI_KE, RCTL_KI, RSFT_KO, KC_QUOT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LALT, LOWER, KC_SPC, KC_ENT, RAISE, OSL(_ONESHOT) + //`--------------------------' `--------------------------' + ), + + [_COLEMAK_NOHOMEROW] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LALT, LOWER, KC_SPC, KC_ENT, RAISE, OSL(_ONESHOT) + //`--------------------------' `--------------------------' + ), + + [_LOWER] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, KC_LBRC, KC_LCBR, KC_RCBR, KC_RBRC, KC_EQL, _______, _______, _______, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, _______, _______ + //`--------------------------' `--------------------------' + ), + + [_RAISE] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + _______, KC_ESC, KC_WH_U, KC_WBAK, KC_WFWD, KC_MS_U, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_DEL, _______, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, KC_RALT, KC_WH_D, KC_LSFT, KC_LCTL, KC_MS_D, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_BSPC, _______, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, C(KC_Z), C(KC_X), C(KC_C), KC_BTN1, C(KC_V), KC_BTN2, KC_BTN3, KC_MS_L, KC_MS_R, _______, _______, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, _______, _______ + //`--------------------------' `--------------------------' + ), + + [_ONESHOT] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, COLEMAK, QWERTY, _______, _______, _______, QK_BOOT, _______, _______, QWERTY_NOHOMEROW, COLEMAK_NOHOMEROW, _______, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, _______, _______ + //`--------------------------' `--------------------------' + ) +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case QWERTY_NOHOMEROW: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY_NOHOMEROW); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + break; + case COLEMAK_NOHOMEROW: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK_NOHOMEROW); + } + return false; + break; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case ONESHOT: + if (record->event.pressed) { + set_oneshot_layer(_ONESHOT, ONESHOT_START); + } else { + clear_oneshot_layer_state(ONESHOT_PRESSED); + } + return false; + break; + case DT_UP_50: + if (record->event.pressed) { + g_tapping_term += 50; + } + return false; + break; + case DT_DOWN_50: + if (record->event.pressed) { + g_tapping_term -= 50; + } + return false; + break; + case DT_UP_X2: + if (record->event.pressed) { + g_tapping_term *= 2; + } + return false; + break; + case DT_DOWN_X2: + if (record->event.pressed) { + g_tapping_term /= 2; + } + return false; + break; + case DT_200: + if (record->event.pressed) { + g_tapping_term = 200; + } + return false; + break; + case DT_MAX: + if (record->event.pressed) { + g_tapping_term = 34464; + } + return false; + break; + } + return true; +} \ No newline at end of file diff --git a/keyboards/splitkb/aurora/corne/keymaps/x123/readme.md b/keyboards/splitkb/aurora/corne/keymaps/x123/readme.md new file mode 100644 index 000000000000..f1599938c107 --- /dev/null +++ b/keyboards/splitkb/aurora/corne/keymaps/x123/readme.md @@ -0,0 +1,56 @@ +# x123 Keymap for the Aurora Corne + +This keymap is based on many concepts from Dreymar's big bag theory (see https://dreymar.colemak.org/index.html), tweaked a bit for my own preferences and adopted to the Aurora Corne. + +## Features + +- Supports both QWERTY and COLEMAK layouts +- Layouts switchable on the fly +- Homerow mods can be toggled (very useful for gaming) +- Normal capslock key location has been replaced with backspace for ergonomics. Note that backspace is also placed in it's normal location for the QWERTY layouts (useful for letting others test the keyboard/layout) +- Uses Dreymar's EXTEND for the RAISE layer +- Keeps numbers and symbols on the LOWER layer +- Function keys and quick configuration settings on the oneshot layer +- Designed to use RALT as a compose key, which is accessible via the RAISE layer + +### QWERTY + +Basic QWERTY with homerow mods enabled. + +![QWERTY](https://i.imgur.com/NwIF3zJ.png) + +### QWERTY_NOHOMEROW + +Basic QWERTY with homerow mods disabled. + +![QWERTY_NOHOMEROW](https://i.imgur.com/2C1IGrX.png) + +### COLEMAK + +COLEMAK with homerow mods enabled. + +![COLEMAK](https://i.imgur.com/u5G6YWn.png) + +### COLEMAK_NOHOMEROW + +COLEMAK with homerow mods disabled. + +![COLEMAK_NOHOMEROW](https://i.imgur.com/enSnhcA.png) + +### LOWER + +LOWER is where numbers and symbols live. + +![LOWER](https://i.imgur.com/HabJ4hv.png) + +### RAISE + +RAISE is basically a direct rip of Dreymar's EXTEND for small keyboards (see the very bottom image on https://dreymar.colemak.org/layers-extend.html). This is where you'll find the arrow keys, navigation keys, mouse controls, and others. + +![RAISE](https://i.imgur.com/CtzQdKD.png) + +### ONESHOT + +ONESHOT is houses the function keys, it also allows quick access to swap between default layers described above as well as issue a QK_BOOT to the keyboard for use when flashing. + +![ONESHOT](https://i.imgur.com/cckg75i.png) \ No newline at end of file diff --git a/keyboards/splitkb/aurora/corne/keymaps/x123/rules.mk b/keyboards/splitkb/aurora/corne/keymaps/x123/rules.mk new file mode 100644 index 000000000000..1a8ca4fa0db4 --- /dev/null +++ b/keyboards/splitkb/aurora/corne/keymaps/x123/rules.mk @@ -0,0 +1,22 @@ +# Copyright 2022 x123 +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +RGB_MATRIX_ENABLE = no +RGBLIGHT_ENABLE = no +MOUSEKEY_ENABLE = yes # Mouse keys +OLED_ENABLE = no +LTO_ENABLE = yes +UNICODE_ENABLE = yes +DYNAMIC_TAPPING_TERM_ENABLE = yes \ No newline at end of file From 444760efcba3fa8391a65ed65c8a53233c0a019c Mon Sep 17 00:00:00 2001 From: alaviss Date: Fri, 30 Dec 2022 07:45:10 +0700 Subject: [PATCH 002/139] ploopyco/trackball_mini: always update encoder (#18561) --- .../ploopyco/trackball_mini/trackball_mini.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/keyboards/ploopyco/trackball_mini/trackball_mini.c b/keyboards/ploopyco/trackball_mini/trackball_mini.c index a3d8cf99ab05..8bc0ab99c234 100644 --- a/keyboards/ploopyco/trackball_mini/trackball_mini.c +++ b/keyboards/ploopyco/trackball_mini/trackball_mini.c @@ -92,6 +92,13 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { } void process_wheel(void) { + uint16_t p1 = adc_read(OPT_ENC1_MUX); + uint16_t p2 = adc_read(OPT_ENC2_MUX); + + if (debug_encoder) dprintf("OPT1: %d, OPT2: %d\n", p1, p2); + + int8_t dir = opt_encoder_handler(p1, p2); + // If the mouse wheel was just released, do not scroll. if (timer_elapsed(lastMidClick) < SCROLL_BUTT_DEBOUNCE) return; @@ -105,16 +112,10 @@ void process_wheel(void) { #endif } - lastScroll = timer_read(); - uint16_t p1 = adc_read(OPT_ENC1_MUX); - uint16_t p2 = adc_read(OPT_ENC2_MUX); - - if (debug_encoder) dprintf("OPT1: %d, OPT2: %d\n", p1, p2); - - int8_t dir = opt_encoder_handler(p1, p2); - if (dir == 0) return; encoder_update_kb(0, dir > 0); + + lastScroll = timer_read(); } void pointing_device_init_kb(void) { From 6bd76c97be4ef7053c462e5ce68b311fda830823 Mon Sep 17 00:00:00 2001 From: yonatanzunger <30514250+yonatanzunger@users.noreply.github.com> Date: Thu, 29 Dec 2022 16:47:40 -0800 Subject: [PATCH 003/139] A fancy keymap for the wt65_xt. (#19375) --- .../wt65_xt/keymaps/zunger/keymap.c | 640 ++++++++++++++++++ .../wt65_xt/keymaps/zunger/readme.md | 9 + .../wt65_xt/keymaps/zunger/rules.mk | 2 + 3 files changed, 651 insertions(+) create mode 100644 keyboards/wilba_tech/wt65_xt/keymaps/zunger/keymap.c create mode 100644 keyboards/wilba_tech/wt65_xt/keymaps/zunger/readme.md create mode 100644 keyboards/wilba_tech/wt65_xt/keymaps/zunger/rules.mk diff --git a/keyboards/wilba_tech/wt65_xt/keymaps/zunger/keymap.c b/keyboards/wilba_tech/wt65_xt/keymaps/zunger/keymap.c new file mode 100644 index 000000000000..45778e169831 --- /dev/null +++ b/keyboards/wilba_tech/wt65_xt/keymaps/zunger/keymap.c @@ -0,0 +1,640 @@ +/* Copyright 2021 Yonatan Zunger + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 + +// This keymap is designed to make it easy to type in a wide variety of languages, as well as +// generate mathematical symbols (à la Space Cadet), without relying on the host OS to do +// key mappings or handle accents. Why? Because different OS's do this in radically different +// ways, and don't support all of the features one often needs. +// +// LAYER MAGIC (aka, typing in many alphabets) +// +// This keyboard has three sets of "polyglot" layers: GREEK, CADET, and YIDDISH. Each of these +// is actually a pair of layers, FOO and SHIFTFOO, which are full of Unicode points that let you +// type in them. (The Greek and Yiddish keymaps selected here are very canted towards use on a +// QWERTY layout, rather than the "standard" layouts often used for those languages in monolingual +// environments. This is useful if your keyboard doesn't have legends for all of them, which in +// most cases it won't. Of course, you could easily add more.) +// +// These each have their own layer select key, which can act as a held modifier key (GREEK+s to +// produce sigma, etc). There's also a "layer lock" key; layer lock + modifier switches you into +// that layer until you hit "layer lock" again to bounce back to QWERTY. +// +// ACCENT MAGIC +// +// We want to support easy typing of diacriticals, again without relying on the host OS. (On +// MacOS, if you want Unicode to work you have to lose all the normal accent combining keys, and +// if you're in a multi-OS world, each OS has a totally different input method) +// +// The real nuance comes from the three different ways Unicode represents these. Many common +// accent + letter combinations like é have their own dedicated code points (the combined +// normal form). One can also place a "combining accent mark" after the letter's code point to +// form the decomposed normal form (NFKD); this often renders the same as the combined form, but +// many less-sophisticated apps won't realize it's the same thing as the combined form (thus messing +// up string matching), and if you backspace you need to backspace *twice* to remove the character, +// because it's literally two characters. Finally, if you want to render just the accent mark as a +// symbol of its own, that's a *third* code point. If you're simply typing, you don't want to think +// about any of this! +// +// We thus have a bunch of special keycodes for "accent requests," which live on the FUNCTION +// layer. Accent requests don't do anything immediate, but when the *next* non-modifier key is hit, +// we generate a combined code point (if possible), two uncombined points (in cases where combined +// points don't exist), or the isolated accent followed by the next character typed (in cases where +// what you typed next isn't a letterform at all, e.g. you hit the space bar). You can also hit +// shift- to just generate the uncombined accent on its own. +// +// The current accent request codes are modeled on the ones in MacOS. +// +// fn+` Grave accent (`) +// fn+e Acute accent (´) +// fn+i Circumflex (^) +// fn+u Diaresis / umlaut / trema (¨) +// fn+c Cedilla (¸) +// fn+n Tilde (˜) +// +// Together, these functions make for a nice "polyglot" keyboard: one that can easily type in a wide +// variety of languages, which is very useful for people who, well, need to type in a bunch of +// languages. +// +// The major TODOs are: +// - Add accent support for Hebrew accents. +// - Factor the code below so that the data layers are more clearly separated from the code logic, +// so that other users of this keymap can easily add whichever alphabets they need without +// having to deeply understand the implementation. Probably something similar to +// users/drashna/keyrecords/unicode.c, but I want to see if I can do some preprocessor magic +// so that we can actually have the rendered *character* sitting in the code instead of just the +// hex code point! +// +// PLATFORM MAGIC (aka, working well on both Mac and Windows) +// +// Finally, this keyboard can switch between Mac and Windows modes, changing various macro +// combinations, the Unicode mode, and the position of the ALT and GUI keys. + + +enum custom_keycodes { + // We provide special layer management keys: + // GREEK triggers the Greek (aka "Front") layer, or the SHIFTGREEK layer when shift is held. + // (Because we use Unicode, we need to implement shift-handling at the firmware level, + // rather than the OS level like we do in the QWERTY layer) + // CADET or GREEK+ALT triggers the Cadet (aka "Top") layer, or the SHIFTCADET layer when + // shift is held. + // YIDDISH triggers a keymap designed for easy Hebrew and Yiddish, based loosely on QWERTY + // layouts. + // LAYER_LOCK locks the "base" layer (i.e., QWERTY, GREEK, or CADET) to the value which is + // pressed at the moment that it is being released. When a layer lock is set, the + // analogous layer modifier key is reversed; e.g., if you lock the GREEK layer, then the + // GREEK button bounces you back to QWERTY. + // + // We also parse the shift, alt, and caps lock keys to provide management of those which is + // compatible with these various layers. + KC_GREEK = SAFE_RANGE, + KC_CADET, + KC_YIDDISH, + KC_LAYER_LOCK, + KC_PLATFORM, // Platform select + + // OS-dependent macros + KC_VC_MUTE, // Video conference mute + KC_VC_HAND, // Video conference hand-raise + KC_SCRNSHT, // Screenshot (gui-shift-S on Windows, gui-shift-4 on Mac) + + // These are the keycodes generated by the various "accent request" keystrokes. + KC_ACCENT_START, + KC_CGRV = KC_ACCENT_START, // Grave accent + KC_CAGU, // Acute accent + KC_CDIA, // Diaresis / umlaut / trema + KC_CCIR, // Circumflex + KC_CCED, // Cedilla + KC_CTIL, // Tilde + KC_ACCENT_END, +}; + +enum layers_keymap { + _QWERTY = 0, + + _FIRST_LANGUAGE_LAYER, + _YIDDISH = _FIRST_LANGUAGE_LAYER, + _SHIFTYIDDISH, + _GREEK, + _SHIFTGREEK, + _CADET, + _SHIFTCADET, + _LAST_LANGUAGE_LAYER, + + // Function goes last. + _FUNCTION = _LAST_LANGUAGE_LAYER, +}; + +// We manage our OS mode internally, and store it in a static, rather than EEPROM, bit. That's +// because it changes as we flip machines, and there's no good reason to wear out the memory. +enum os_modes { + _WINDOWS = 0, + _MAC = 1, + _OS_MODES_MAX = 2, +}; +static uint8_t os_mode = _MAC; + +// Key types matter for accent handling. If there's a pending accent request and another key is +// pressed: +// - If it's a normal key, we trigger all our magic accent handling. +// - If it's a modifier key, we do nothing and let the accent request hold until the next keypress. +// - If it's a special key, we drop the accent request but don't handle it. +enum key_types { + _NORMAL_KEY, + _MODIFIER_KEY, + _SPECIAL_KEY, +}; + +// msec to hold the platform key to trigger a switch +#define PLATFORM_HOLD_DURATION 750 + +// This is so that H(xxxx) has the same width as _______, which makes the grids more legible. +#define H(x) UC(0x##x) +#define MO_FN MO(_FUNCTION) +#define KC_LLCK KC_LAYER_LOCK + +// Values for our OS-dependent keys, as arrays keyed by OS mode. Use Meet shortcuts on Mac, Teams on Windows +const char *VC_MUTE_VALUES[_OS_MODES_MAX] = {SS_LCTL(SS_LSFT("m")), SS_LCMD("d")}; +const char *VC_HAND_VALUES[_OS_MODES_MAX] = {SS_LCTL(SS_LSFT("k")), SS_LCTL(SS_LCMD("h"))}; +const char *SCRNSHT_VALUES[_OS_MODES_MAX] = {SS_LGUI(SS_LSFT("s")), SS_LCMD(SS_LSFT("4"))}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT_all( + KC_ESC, KC_LLCK, KC_GRAVE,KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, + KC_PLATFORM, KC_MPLY, KC_TAB, KC_Q, KC_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_SCRNSHT, KC_YIDDISH, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_GREEK, KC_CADET, 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_VC_HAND, KC_VC_MUTE, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO_FN, KC_LEFT, KC_DOWN, KC_RGHT), + + /* The Greek and Cadet layers. Tab, backspace, the nav and modifier keys, and the control block + * are always transparent. + * + * QWERTY GREEK SGREEK CADET SCADET YID SYID + * ` ׳ 05f3 ״ 05f4 + * 1 ₁ 2081 ¹ 00b9 ¡ 00a1 ¿ 00bf [transparent] + * 2 ₂ 2082 ² 00b2 « 00ab » 00bb [transparent] + * 3 ₃ 2083 ³ 00b3 £ 00a3 € 20ac [transparent] + * 4 ₄ 2084 ⁴ 2074 [transparent] + * 5 ₅ 2085 ⁵ 2075 [transparent] + * 6 ₆ 2086 ⁶ 2076 [transparent] + * 7 ₇ 2087 ⁷ 2077 [transparent] + * 8 ₈ 2088 ⁸ 2078 ° 00b0 ⊗ 2297 [transparent] + * 9 ₉ 2089 ⁹ 2079 [transparent] + * 0 ₀ 2080 ⁰ 2070 ∅ 2205 [transparent] + * - ₋ 208b ⁻ 207b ¬ 00ac ⊖ 2296 [transparent] + * = ₊ 208a ₋ 208b ≠ 2260 ⊕ 2295 [transparent] + * q θ 03b8 Θ 0398 ℚ 211a ק 05e7 + * w ω 03c9 Ω 03a9 ש 05e9 + * e ε 03b5 Ε 0395 ∃ 2203 ∄ 2204 ע 05e2 + * r ρ 03c1 Ρ 03a1 ℝ 211d ר 05e8 + * t τ 03c4 Τ 03a4 ט 05d8 תּ fb4a + * y ψ 03c8 Ψ 03a8 ∨ 2228 ∧ 2227 ײ 05f2 ײַ fb1f + * u υ 03c5 Υ 03a5 ∪ 222a ∩ 2229 ו 05d5 ױ 05f1 + * i ι 03b9 Ι 0399 ∞ 221e ℵ 2135 י 05d9 + * o ο 03bf Ο 039f ו 05d5 אָ fb2f + * p π 03c0 Π 03a0 ≡ 2261 ≢ 2262 פ 05e4 ף 05e3 + * [ ± 00b1 ∓ 2213 + * ] ≈ 2248 ≉ 2249 + * \ ∼ 223c ≁ 2241 + * a α 03b1 Α 0391 ∀ 2200 Å 212b א 05d0 אַ fb2e + * s σ 03c3 Σ 03a3 ∈ 2208 ∉ 2209 ס 05e1 ת 05ea + * d δ 03b4 Δ 0394 ⊂ 2282 ⊄ 2284 ד 05d3 + * f φ 03c6 Φ 03a6 ⊆ 2286 ⊈ 2288 פֿ fb4e + * g γ 03b3 Γ 0393 ⊇ 2287 ⊉ 2289 ג 05d2 + * h η 03b7 Η 0397 ← 2190 ⇐ 21d0 ה 05d4 + * j ϑ 03d1 ↓ 2193 ⇓ 21d3 ח 05d7 כֿ fb4d + * k κ 03ba Κ 039a ↑ 2191 ⇑ 21d1 כ 05db ך 05da + * l λ 03bb Λ 039b → 2192 ⇒ 21d2 ל 05dc + * ; … 2026 ⋯ 22ef ↔ 2194 ⇔ 21d4 + * ' · 00b7 • 2022 ∴ 2234 ⊙ 2299 + * z ζ 03b6 Ζ 0396 ℤ 2124 ז 05d6 + * x ξ 03be Ξ 039e ✘ 2718 צ 05e6 ץ 05e5 + * c χ 03c7 Χ 03a7 ℂ 2102 כ 05db ך 05da + * v ς 03c2 ✔ 2714 √ 221a װ 05f0 בֿ fb4c + * b β 03b2 Β 0392 ב 05d1 + * n ν 03bd Ν 039d ℕ 2115 נ 05e0 ן 05df + * m μ 03bc Μ 039c מ 05de ם 05dd + * , ≪ 226a ≫ 226b ∂ 2202 ∫ 222b + * . ≲ 2272 ≳ 2273 ≰ 2270 ≱ 2271 + * / ⊘ 2298 + */ + [_YIDDISH] = LAYOUT_all( + KC_TRNS, KC_TRNS, H(05f3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, H(05e7), H(05e9), H(05e2), H(05e8), H(05d8), H(05f2), H(05d5), H(05d9), H(05d5), H(05e4), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, H(05d0), H(05e1), H(05d3), H(fb4e), H(05d2), H(05d4), H(05d7), H(05db), H(05dc), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, H(05d6), H(05e6), H(05db), H(05f0), H(05d1), H(05e0), H(05de), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [_SHIFTYIDDISH] = LAYOUT_all( + KC_TRNS, KC_TRNS, H(05f4), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, H(fb4a), H(fb1f), H(05f1), KC_TRNS, H(fb2f), H(05e3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, H(fb2e), H(05ea), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, H(fb4d), H(05da), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, H(05e5), H(05da), H(fb4c), KC_TRNS, H(05df), H(05dd), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [_GREEK] = LAYOUT_all( + KC_TRNS, KC_TRNS, XXXXXXX, H(2081), H(2082), H(2083), H(2084), H(2085), H(2086), H(2087), H(2088), H(2089), H(2080), H(208b), H(208a), KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, H(03b8), H(03c9), H(03b5), H(03c1), H(03c4), H(03c8), H(03c5), H(03b9), H(03bf), H(03c0), XXXXXXX, XXXXXXX, XXXXXXX, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, H(03b1), H(03c3), H(03b4), H(03c6), H(03b3), H(03b7), XXXXXXX, H(03ba), H(03bb), H(2026), H(00b7), KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, H(03b6), H(03be), H(03c7), XXXXXXX, H(03b2), H(03bd), H(03bc), H(226a), H(2272), XXXXXXX, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [_SHIFTGREEK] = LAYOUT_all( + KC_TRNS, KC_TRNS, XXXXXXX, H(00b9), H(00b2), H(00b3), H(2074), H(2075), H(2076), H(2077), H(2078), H(2079), H(2070), H(207b), H(208b), KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, H(0398), H(03a9), H(0395), H(03a1), H(03a4), H(03a8), H(03a5), H(0399), H(039f), H(03a0), XXXXXXX, XXXXXXX, XXXXXXX, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, H(0391), H(03a3), H(0394), H(03a6), H(0393), H(0397), H(03d1), H(039a), H(039b), H(22ef), H(2022), KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, H(0396), H(039e), H(03a7), H(03c2), H(0392), H(039d), H(039c), H(226b), H(2273), XXXXXXX, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [_CADET] = LAYOUT_all( + KC_TRNS, KC_TRNS, XXXXXXX, H(00a1), H(00ab), H(00a3), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, H(00b0), XXXXXXX, H(2205), H(00ac), H(2260), KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, H(211a), XXXXXXX, H(2203), H(211d), XXXXXXX, H(2228), H(222a), H(221e), XXXXXXX, H(2261), H(00b1), H(2248), H(223c), KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, H(2200), H(2208), H(2282), H(2286), H(2287), H(2190), H(2193), H(2191), H(2192), H(2194), H(2234), KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, H(2124), H(2718), H(2102), H(2714), XXXXXXX, H(2115), XXXXXXX, H(2202), H(2270), XXXXXXX, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [_SHIFTCADET] = LAYOUT_all( + KC_TRNS, KC_TRNS, XXXXXXX, H(00bf), H(00bb), H(20ac), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, H(2297), XXXXXXX, XXXXXXX, H(2296), H(2295), KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, XXXXXXX, XXXXXXX, H(2204), XXXXXXX, XXXXXXX, H(2227), H(2229), H(2135), XXXXXXX, H(2262), H(2213), H(2249), H(2241), KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, H(212b), H(2209), H(2284), H(2288), H(2289), H(21d0), H(21d3), H(21d1), H(21d2), H(21d4), H(2299), KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, XXXXXXX, XXXXXXX, XXXXXXX, H(221a), XXXXXXX, XXXXXXX, XXXXXXX, H(222b), H(2271), H(2298), KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + // The function layer mostly contains the accent marks, but also has a few meta-control + // operations. The accent marks are placed by analogy with Mac OS. + [_FUNCTION] = LAYOUT_all( + QK_BOOT, KC_TRNS, KC_CGRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, + KC_TRNS, KC_TRNS, KC_TRNS, XXXXXXX, XXXXXXX, KC_CAGU, XXXXXXX, XXXXXXX, XXXXXXX, KC_CDIA, KC_CCIR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_TRNS, KC_TRNS, KC_TRNS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_TRNS, KC_TRNS, KC_TRNS, XXXXXXX, XXXXXXX, KC_CCED, XXXXXXX, XXXXXXX, KC_CTIL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_TRNS, XXXXXXX, XXXXXXX, + KC_TRNS, KC_TRNS, KC_RCTL, KC_RGUI, KC_RALT, KC_TRNS, KC_TRNS, XXXXXXX, XXXXXXX, XXXXXXX), +}; + +//////////////////////////////////////////////////////////////////////////////////////////////////// +// Accent implementation +// +// In the body of process_record_user, we store an "accent_request", which is the accent keycode if +// one was just selected, or zero otherwise. When the *next* key is hit, we look up whether the +// accent request plus that next keycode (plus the state of the shift key) together amount to an +// interesting combined (NFKC) character, and if so, emit it; otherwise, we emit the accent as a +// separate character and then process the next key normally. The resulting UI behavior is similar +// to that of the combining accent keys in MacOS. +// +// We store two arrays, depending on whether shift is or isn't held. Each is two-dimensional, with +// its outer key by the next keycode struck, and the inner key by the accent requested. The outer +// array has KC_Z + 1 as its upper bound, so that we can save memory by only coding alphabetic keys. +// The contents are either Unicode code points, or zero to indicate that we don't have a point for +// this combination. + +#define KC_NUM_ACCENTS (KC_ACCENT_END - KC_ACCENT_START) +#define KC_NUM_SLOTS (KC_Z + 1) + +const uint16_t PROGMEM unshifted_accents[KC_NUM_SLOTS][KC_NUM_ACCENTS] = { + // KC_CGRV, KC_CAGU, KC_CDIA, KC_CCIR, KC_CCED, KC_CTIL + [KC_A] = { 0x00e0, 0x00e1, 0x00e4, 0x00e2, 0, 0x00e3 }, + [KC_E] = { 0x00e8, 0x00e9, 0x00eb, 0x00ea, 0, 0 }, + [KC_I] = { 0x00ec, 0x00ed, 0x00ef, 0x00ee, 0, 0 }, + [KC_O] = { 0x00f2, 0x00f3, 0x00f6, 0x00f4, 0, 0x00f5 }, + [KC_U] = { 0x00f9, 0x00fa, 0x00fc, 0x00fb, 0, 0 }, + [KC_Y] = { 0, 0, 0x00ff, 0, 0, 0 }, + [KC_N] = { 0, 0, 0, 0, 0, 0x00f1 }, + [KC_C] = { 0, 0, 0, 0, 0x00e7, 0 }, +}; + +const uint16_t PROGMEM shifted_accents[KC_NUM_SLOTS][KC_NUM_ACCENTS] = { + // KC_CGRV, KC_CAGU, KC_CDIA, KC_CCIR, KC_CCED, KC_CTIL + [KC_A] = { 0x00c0, 0x00c1, 0x00c4, 0x00c2, 0, 0x00c3 }, + [KC_E] = { 0x00c8, 0x00c9, 0x00cb, 0x00ca, 0, 0 }, + [KC_I] = { 0x00cc, 0x00cd, 0x00cf, 0x00ce, 0, 0 }, + [KC_O] = { 0x00d2, 0x00d3, 0x00d6, 0x00d4, 0, 0x00d5 }, + [KC_U] = { 0x00d9, 0x00da, 0x00dc, 0x00db, 0, 0 }, + [KC_Y] = { 0, 0, 0x00df, 0, 0, 0 }, + [KC_N] = { 0, 0, 0, 0, 0, 0x00d1 }, + [KC_C] = { 0, 0, 0, 0, 0x00c7, 0 }, +}; + +// The uncombined and combined forms of the accents, for when we want to emit them as single +// characters. +const uint16_t PROGMEM uncombined_accents[KC_NUM_ACCENTS] = { + [KC_CGRV - KC_ACCENT_START] = 0x0060, + [KC_CAGU - KC_ACCENT_START] = 0x00b4, + [KC_CDIA - KC_ACCENT_START] = 0x00a8, + [KC_CCIR - KC_ACCENT_START] = 0x005e, + [KC_CCED - KC_ACCENT_START] = 0x00b8, + [KC_CTIL - KC_ACCENT_START] = 0x02dc, +}; + +const uint16_t PROGMEM combined_accents[KC_NUM_ACCENTS] = { + [KC_CGRV - KC_ACCENT_START] = 0x0300, + [KC_CAGU - KC_ACCENT_START] = 0x0301, + [KC_CDIA - KC_ACCENT_START] = 0x0308, + [KC_CCIR - KC_ACCENT_START] = 0x0302, + [KC_CCED - KC_ACCENT_START] = 0x0327, + [KC_CTIL - KC_ACCENT_START] = 0x0303, +}; + +// This function manages keypresses that happen after an accent has been selected by an earlier +// keypress. +// Args: +// accent_key: The accent key which was earlier selected. This must be in the range +// [KC_ACCENT_START, KC_ACCENT_END). +// keycode: The keycode which was just pressed. +// is_shifted: The current shift state (as set by a combination of shift and caps lock) +// +// Returns true if the keycode has been completely handled by this function (and so should not be +// processed further by process_record_user) or false otherwise. +bool process_key_after_accent( + uint16_t accent_key, + uint16_t keycode, + bool is_shifted +) { + assert(accent_key >= KC_ACCENT_START); + assert(accent_key < KC_ACCENT_END); + const int accent_index = accent_key - KC_ACCENT_START; + + // If the keycode is outside A..Z, we know we shouldn't even bother with a table lookup. + if (keycode <= KC_Z) { + // Pick the correct array. Because this is progmem, we're going to need to do the + // two-dimensional array indexing by hand, and so we just cast it to a single-dimensional array. + const uint16_t *points = (const uint16_t*)(is_shifted ? shifted_accents : unshifted_accents); + const uint16_t code_point = pgm_read_word(points + KC_NUM_ACCENTS * keycode + accent_index); + if (code_point) { + register_unicode(code_point); + return true; + } + } + + // If we get here, there was no accent match. Emit the accent as its own character (i.e. a + // Unicode combining accent mark) and return false so that process_record_user also registers + // whatever is appropriate for the keycode after that. The host can figure out what to do with + // combining Unicode. + register_unicode(pgm_read_word(uncombined_accents + accent_index)); + return false; +} + +// This is a bitmask which selects the activation bits for layers *other* than our language +// selectors. +#define NON_LANGUAGE_LAYERS ~(((1UL << _LAST_LANGUAGE_LAYER) - 1) - ((1UL << _FIRST_LANGUAGE_LAYER) - 1)) + +// Update the current layer state and return the layer we're in. +uint8_t update_layer( + uint8_t layer_lock, + uint8_t layer_select_held, + bool shifted +) { + uint8_t current_layer = layer_lock; + layer_state_t language_layers = 0; + + // If there's a layer select being held right now, then it updates the current layer. + // (If it's the layer select for the currently locked layer, then instead it's a toggle + // back to _QWERTY!) + if (layer_select_held != _QWERTY) { + current_layer = (layer_lock == layer_select_held ? _QWERTY : layer_select_held); + } + + language_layers |= (1UL << current_layer); + + // If we're shifted (with either shift or caps lock), and we're in one of our special + // layers, bump up to the SHIFTED version of that layer. We don't do this for QWERTY; + // there we just emit USB HID codes and let the host deal with shift. + if (shifted && current_layer != _QWERTY) { + ++current_layer; + language_layers |= (1UL << current_layer); + } + + // Update the QMK layer state by stomping just the language layer bits. + const layer_state_t new_layer_state = (layer_state & NON_LANGUAGE_LAYERS) | language_layers; + if (new_layer_state != layer_state) { + layer_state_set(new_layer_state); + } + + return current_layer; +} + +void set_os_mode(uint8_t new_mode) { + os_mode = new_mode; + // NB: We set unicode_config.input_mode directly, rather than calling + // set_unicode_input_mode, because we don't want to persist this and so we shouldn't put + // extra load on the EEPROMs. + unicode_config.input_mode = (os_mode == _MAC ? UNICODE_MODE_MACOS : UNICODE_MODE_WINCOMPOSE); + // Swap LALT and LGUI depending on Mac/Windows. + keymap_config.swap_lalt_lgui = (os_mode == _MAC); + // This would be a great moment for some auditory or visual feedback, but this keyboard + // doesn't support it. :( +} + +void toggle_os_mode(void) { + set_os_mode((os_mode + 1) % _OS_MODES_MAX); +} + +void keyboard_post_init_user() { + set_os_mode(_WINDOWS); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + // We track these persistent globals and manage them on our own, rather than trying to rely on + // get_mods or the like, because this function is called *before* that's updated! + static bool shift_held = false; + static bool alt_held = false; + static bool ctrl_held = false; + static bool super_held = false; + + // These are where we remember the values of lock states. + static bool shift_lock = false; + static uint8_t layer_lock = _QWERTY; // The currently locked layer + static uint8_t next_layer_lock = _QWERTY; // Used when layer_lock is held + // Which layer select key is currently being held down. _QWERTY is equivalent to "none." + static uint8_t layer_select_held = _QWERTY; + + // When the hold on the platform key started + static uint16_t platform_hold_start = 0; + + // The accent request, or zero if there isn't one. + static uint16_t accent_request = 0; + + // What kind of key we're striking right now, so that we know what to do if any accent requests + // are hanging around. + uint8_t key_type = _NORMAL_KEY; + + // The layer selection and locking logic is: + // * By default, the current layer is given by saved value layer_lock. + // * If a layer select key is held down, we update the current layer to that value. + // (But special thing: If the current layer lock is and you hit the select key + // for , it instead toggles the current layer back to _QWERTY! That way you can + // insert some QWERTY keys in the midst of other-layer text.) + // * If the KC_LAYER_LOCK key is held down and a layer select key gets pressed, we update + // next_layer_lock to that selected layer. When KC_LAYER_LOCK is released, we update + // layer_lock to next_layer_lock. Note that that simply tapping KC_LAYER_LOCK resets + // layer_lock to _QWERTY. + // * After all of this is done, we check if shift is held (via either shift or caps lock); + // if it is, and our current layer isn't _QWERTY, then we bump the current layer ID by 1 + // to get the shifted layer. + + // Step 1: Process various interesting keycodes, especially ones that update our running + // state variables. + switch (keycode) { + // Monitoring the modifier keys, because we'll need them for our logic! + case KC_LSFT: + case KC_RSFT: + shift_held = record->event.pressed; + key_type = _MODIFIER_KEY; + break; + case KC_CAPS: + // If we're in QWERTY mode, caps lock is already going to be managed by the host OS, but by + // tracking it ourselves we can also usefully apply it to the GREEK and CADET layers. + shift_lock = !shift_lock; + key_type = _MODIFIER_KEY; + break; + case KC_LALT: + case KC_RALT: + alt_held = record->event.pressed; + key_type = _MODIFIER_KEY; + break; + case KC_LCTL: + case KC_RCTL: + ctrl_held = record->event.pressed; + key_type = _MODIFIER_KEY; + break; + case KC_LGUI: + case KC_RGUI: + super_held = record->event.pressed; + key_type = _MODIFIER_KEY; + break; + + case KC_LAYER_LOCK: + if (record->event.pressed) { + // On press, get ready for a layer selection. + next_layer_lock = _QWERTY; + } else { + // On release, propagate next_layer_lock to layer_lock. + layer_lock = next_layer_lock; + } + key_type = _MODIFIER_KEY; + break; + + // Layer selectors + case KC_GREEK: + if (record->event.pressed) { + layer_select_held = _GREEK; + next_layer_lock = _GREEK; + } else { + layer_select_held = _QWERTY; + } + key_type = _MODIFIER_KEY; + break; + case KC_CADET: + if (record->event.pressed) { + layer_select_held = _CADET; + next_layer_lock = _CADET; + } else { + layer_select_held = _QWERTY; + } + key_type = _MODIFIER_KEY; + break; + case KC_YIDDISH: + if (record->event.pressed) { + layer_select_held = _YIDDISH; + next_layer_lock = _YIDDISH; + } else { + layer_select_held = _QWERTY; + } + key_type = _MODIFIER_KEY; + break; + + // Accent selectors + case KC_CGRV: + case KC_CAGU: + case KC_CDIA: + case KC_CCIR: + case KC_CCED: + case KC_CTIL: + // The accent request keys normally update accent_request (whose effect will trigger the next + // time we see a "normal" key pressed). However, shift+accent request will instead immediately + // generate the Unicode combining accent symbol instead. + if (shift_held) { + register_unicode(pgm_read_word(combined_accents + keycode - KC_ACCENT_START)); + return false; + } else { + accent_request = keycode; + } + key_type = _MODIFIER_KEY; + break; + + // Our special keycodes + case KC_PLATFORM: + if (record->event.pressed) { + platform_hold_start = record->event.time; + } else if (platform_hold_start != 0 && record->event.time - platform_hold_start > PLATFORM_HOLD_DURATION) { + toggle_os_mode(); + } + key_type = _SPECIAL_KEY; + return true; + + case KC_VC_MUTE: + if (record->event.pressed) { + send_string(VC_MUTE_VALUES[os_mode]); + return true; + } + key_type = _SPECIAL_KEY; + break; + + case KC_VC_HAND: + if (record->event.pressed) { + send_string(VC_HAND_VALUES[os_mode]); + return true; + } + key_type = _SPECIAL_KEY; + break; + + case KC_SCRNSHT: + if (record->event.pressed) { + send_string(SCRNSHT_VALUES[os_mode]); + return true; + } + key_type = _SPECIAL_KEY; + break; + + case QK_BOOT: + key_type = _SPECIAL_KEY; + break; + } + + // Step 2: Finalize current_layer and update the QMK layer state. + const bool shifted = (shift_held != shift_lock); + const uint8_t current_layer = update_layer(layer_lock, layer_select_held, shifted); + + // Step 3: Handle accents. + bool handled = false; + if (accent_request && record->event.pressed) { + // If we're in any layer other than _QWERTY, or a modifier key is being held down, + // then we're actually generating a special key, not a normal one. + if (key_type == _NORMAL_KEY && + (current_layer != _QWERTY || ctrl_held || super_held || alt_held)) { + key_type = _SPECIAL_KEY; + } + + switch (key_type) { + case _NORMAL_KEY: + handled = process_key_after_accent(accent_request, keycode, shifted); + accent_request = 0; + break; + + case _SPECIAL_KEY: + accent_request = 0; + break; + + case _MODIFIER_KEY: + break; + } + } + + return !handled; +} diff --git a/keyboards/wilba_tech/wt65_xt/keymaps/zunger/readme.md b/keyboards/wilba_tech/wt65_xt/keymaps/zunger/readme.md new file mode 100644 index 000000000000..fe1264a08555 --- /dev/null +++ b/keyboards/wilba_tech/wt65_xt/keymaps/zunger/readme.md @@ -0,0 +1,9 @@ +* A polyglot keymap for the RamaWorks Zenith +* Author: Yonatan Zunger (zunger@gmail.com) + +This keyboard is designed to make it easy to type a wide range of symbols and a wide range of +alphabets, without relying on the host OS, because... host OS's aren't fantastic at a lot of +things. + +See the keymap file for most of the documentation, in the form of comments; this is still in +development! diff --git a/keyboards/wilba_tech/wt65_xt/keymaps/zunger/rules.mk b/keyboards/wilba_tech/wt65_xt/keymaps/zunger/rules.mk new file mode 100644 index 000000000000..a61cfa33fa9e --- /dev/null +++ b/keyboards/wilba_tech/wt65_xt/keymaps/zunger/rules.mk @@ -0,0 +1,2 @@ +# You need Unicode for this map. +UNICODE_ENABLE = yes # Unicode From e08debb62f590d63dc047e5475fa6b7540b347e7 Mon Sep 17 00:00:00 2001 From: dztech Date: Fri, 30 Dec 2022 08:48:26 +0800 Subject: [PATCH 004/139] Fix odinmini layout macro (#19429) --- keyboards/kbdfans/odinmini/info.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/kbdfans/odinmini/info.json b/keyboards/kbdfans/odinmini/info.json index 94a3aa5122ce..2328769ca435 100644 --- a/keyboards/kbdfans/odinmini/info.json +++ b/keyboards/kbdfans/odinmini/info.json @@ -135,8 +135,8 @@ { "label": "0", "matrix": [4, 10], "w": 1, "x": 17.5, "y": 4 }, { "label": ".", "matrix": [4, 11], "w": 1, "x": 18.5, "y": 4 }, { "label": "\u2190", "matrix": [4, 12], "w": 1, "x": 14.25, "y": 4.25 }, - { "label": "\u2193", "matrix": [4, 13], "w": 1, "x": 15.25, "y": 4.25 }, - { "label": "\u2192", "matrix": [4, 14], "w": 1, "x": 16.25, "y": 4.25 } + { "label": "\u2193", "matrix": [4, 14], "w": 1, "x": 15.25, "y": 4.25 }, + { "label": "\u2192", "matrix": [4, 15], "w": 1, "x": 16.25, "y": 4.25 } ] } } From 6b50b1be9b98b4af36a485f495a8174c00e7a952 Mon Sep 17 00:00:00 2001 From: jasonj2232 <40370113+jasonj2232@users.noreply.github.com> Date: Fri, 30 Dec 2022 06:20:16 +0530 Subject: [PATCH 005/139] [Keyboard] Added support for a new keyboard - Ishi 80 Mk0 (#19195) --- keyboards/argo_works/ishi/80/mk0_avr/config.h | 25 +++ .../argo_works/ishi/80/mk0_avr/info.json | 111 +++++++++++ .../ishi/80/mk0_avr/keymaps/default/keymap.c | 42 ++++ .../ishi/80/mk0_avr/keymaps/via/keymap.c | 60 ++++++ .../ishi/80/mk0_avr/keymaps/via/rules.mk | 1 + .../argo_works/ishi/80/mk0_avr/readme.md | 29 +++ keyboards/argo_works/ishi/80/mk0_avr/rules.mk | 1 + .../argo_works/ishi/80/mk0_avr_extra/config.h | 29 +++ .../ishi/80/mk0_avr_extra/info.json | 117 +++++++++++ .../mk0_avr_extra/keymaps/bongocat/keymap.c | 187 ++++++++++++++++++ .../mk0_avr_extra/keymaps/bongocat/rules.mk | 1 + .../80/mk0_avr_extra/keymaps/default/keymap.c | 49 +++++ .../80/mk0_avr_extra/keymaps/default/rules.mk | 1 + .../80/mk0_avr_extra/keymaps/via/keymap.c | 69 +++++++ .../80/mk0_avr_extra/keymaps/via/rules.mk | 2 + .../ishi/80/mk0_avr_extra/mk0_avr_extra.c | 39 ++++ .../ishi/80/mk0_avr_extra/readme.md | 29 +++ .../argo_works/ishi/80/mk0_avr_extra/rules.mk | 4 + 18 files changed, 796 insertions(+) create mode 100644 keyboards/argo_works/ishi/80/mk0_avr/config.h create mode 100644 keyboards/argo_works/ishi/80/mk0_avr/info.json create mode 100644 keyboards/argo_works/ishi/80/mk0_avr/keymaps/default/keymap.c create mode 100644 keyboards/argo_works/ishi/80/mk0_avr/keymaps/via/keymap.c create mode 100644 keyboards/argo_works/ishi/80/mk0_avr/keymaps/via/rules.mk create mode 100644 keyboards/argo_works/ishi/80/mk0_avr/readme.md create mode 100644 keyboards/argo_works/ishi/80/mk0_avr/rules.mk create mode 100644 keyboards/argo_works/ishi/80/mk0_avr_extra/config.h create mode 100644 keyboards/argo_works/ishi/80/mk0_avr_extra/info.json create mode 100644 keyboards/argo_works/ishi/80/mk0_avr_extra/keymaps/bongocat/keymap.c create mode 100644 keyboards/argo_works/ishi/80/mk0_avr_extra/keymaps/bongocat/rules.mk create mode 100644 keyboards/argo_works/ishi/80/mk0_avr_extra/keymaps/default/keymap.c create mode 100644 keyboards/argo_works/ishi/80/mk0_avr_extra/keymaps/default/rules.mk create mode 100644 keyboards/argo_works/ishi/80/mk0_avr_extra/keymaps/via/keymap.c create mode 100644 keyboards/argo_works/ishi/80/mk0_avr_extra/keymaps/via/rules.mk create mode 100644 keyboards/argo_works/ishi/80/mk0_avr_extra/mk0_avr_extra.c create mode 100644 keyboards/argo_works/ishi/80/mk0_avr_extra/readme.md create mode 100644 keyboards/argo_works/ishi/80/mk0_avr_extra/rules.mk diff --git a/keyboards/argo_works/ishi/80/mk0_avr/config.h b/keyboards/argo_works/ishi/80/mk0_avr/config.h new file mode 100644 index 000000000000..9f36bc521d77 --- /dev/null +++ b/keyboards/argo_works/ishi/80/mk0_avr/config.h @@ -0,0 +1,25 @@ +// Copyright 2022 Jason Devadoss (@jasonj2232) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "config_common.h" + +#define BOOTMAGIC_LITE_ROW 1 +#define BOOTMAGIC_LITE_COLUMN 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 \ No newline at end of file diff --git a/keyboards/argo_works/ishi/80/mk0_avr/info.json b/keyboards/argo_works/ishi/80/mk0_avr/info.json new file mode 100644 index 000000000000..f685d6a20a8b --- /dev/null +++ b/keyboards/argo_works/ishi/80/mk0_avr/info.json @@ -0,0 +1,111 @@ + { + "manufacturer": "Argo Works", + "keyboard_name": "Ishi 80 Mk 0", + "maintainer": "jasonj2232", + "development_board": "promicro", + "diode_direction": "COL2ROW", + "url": "https://qmk.fm/keyboards/", + "usb": { + "device_version": "0.0.1", + "pid": "0x4930", + "vid": "0x4157" + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "encoder": false + }, + "matrix_pins": { + "cols": ["D3", "F4", "F5", "F6", "F7", "D7", "C6", "D4", "D2"], + "rows": ["B3", "B1", "B6", "B2", "D1", "D0", "B5", "B4", "E6"] + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "matrix": [1, 0], "x": 0, "y": 0 }, + { "matrix": [0, 0], "x": 1, "y": 0 }, + { "matrix": [1, 1], "x": 2, "y": 0 }, + { "matrix": [0, 1], "x": 3, "y": 0 }, + { "matrix": [1, 2], "x": 5.25, "y": 0 }, + { "matrix": [0, 2], "x": 6.25, "y": 0 }, + { "matrix": [1, 3], "x": 7.25, "y": 0 }, + { "matrix": [0, 3], "x": 8.25, "y": 0 }, + { "matrix": [1, 4], "x": 9.25, "y": 0 }, + { "matrix": [0, 4], "x": 10.25, "y": 0 }, + { "matrix": [1, 5], "x": 11.25, "y": 0 }, + { "matrix": [0, 5], "x": 12.25, "y": 0 }, + { "matrix": [1, 6], "x": 13.25, "y": 0 }, + { "matrix": [0, 6], "x": 14.25, "y": 0 }, + { "matrix": [1, 7], "x": 15.25, "y": 0 }, + { "matrix": [0, 7], "x": 16.25, "y": 0 }, + { "matrix": [1, 8], "x": 17.25, "y": 0 }, + { "matrix": [0, 8], "x": 18.25, "y": 0, "w": 2 }, + { "matrix": [3, 0], "x": 0, "y": 1, "h": 2 }, + { "matrix": [2, 0], "x": 1, "y": 1 }, + { "matrix": [3, 1], "x": 2, "y": 1 }, + { "matrix": [2, 1], "x": 3, "y": 1 }, + { "matrix": [3, 2], "x": 5.25, "y": 1, "w": 1.5 }, + { "matrix": [2, 2], "x": 6.75, "y": 1 }, + { "matrix": [3, 3], "x": 7.75, "y": 1 }, + { "matrix": [2, 3], "x": 8.75, "y": 1 }, + { "matrix": [3, 4], "x": 9.75, "y": 1 }, + { "matrix": [2, 4], "x": 10.75, "y": 1 }, + { "matrix": [3, 5], "x": 11.75, "y": 1 }, + { "matrix": [2, 5], "x": 12.75, "y": 1 }, + { "matrix": [3, 6], "x": 13.75, "y": 1 }, + { "matrix": [2, 6], "x": 14.75, "y": 1 }, + { "matrix": [3, 7], "x": 15.75, "y": 1 }, + { "matrix": [2, 7], "x": 16.75, "y": 1 }, + { "matrix": [3, 8], "x": 17.75, "y": 1 }, + { "matrix": [2, 8], "x": 18.75, "y": 1, "w": 1.5 }, + { "matrix": [4, 0], "x": 1, "y": 2 }, + { "matrix": [5, 1], "x": 2, "y": 2 }, + { "matrix": [4, 1], "x": 3, "y": 2 }, + { "matrix": [5, 2], "x": 5.25, "y": 2, "w": 1.75 }, + { "matrix": [4, 2], "x": 7, "y": 2 }, + { "matrix": [5, 3], "x": 8, "y": 2 }, + { "matrix": [4, 3], "x": 9, "y": 2 }, + { "matrix": [5, 4], "x": 10, "y": 2 }, + { "matrix": [4, 4], "x": 11, "y": 2 }, + { "matrix": [5, 5], "x": 12, "y": 2 }, + { "matrix": [4, 5], "x": 13, "y": 2 }, + { "matrix": [5, 6], "x": 14, "y": 2 }, + { "matrix": [4, 6], "x": 15, "y": 2 }, + { "matrix": [5, 7], "x": 16, "y": 2 }, + { "matrix": [4, 7], "x": 17, "y": 2 }, + { "matrix": [4, 8], "x": 18, "y": 2, "w": 2.25 }, + { "matrix": [7, 0], "x": 0, "y": 3, "h": 2 }, + { "matrix": [6, 0], "x": 1, "y": 3 }, + { "matrix": [7, 1], "x": 2, "y": 3 }, + { "matrix": [6, 1], "x": 3, "y": 3 }, + { "matrix": [7, 2], "x": 5.25, "y": 3, "w": 2.25 }, + { "matrix": [7, 3], "x": 7.5, "y": 3 }, + { "matrix": [6, 3], "x": 8.5, "y": 3 }, + { "matrix": [7, 4], "x": 9.5, "y": 3 }, + { "matrix": [6, 4], "x": 10.5, "y": 3 }, + { "matrix": [7, 5], "x": 11.5, "y": 3 }, + { "matrix": [6, 5], "x": 12.5, "y": 3 }, + { "matrix": [7, 6], "x": 13.5, "y": 3 }, + { "matrix": [6, 6], "x": 14.5, "y": 3 }, + { "matrix": [7, 7], "x": 15.5, "y": 3 }, + { "matrix": [6, 7], "x": 16.5, "y": 3 }, + { "matrix": [6, 8], "x": 17.5, "y": 3, "w": 2.75 }, + { "matrix": [8, 0], "x": 1, "y": 4 }, + { "matrix": [8, 1], "x": 2, "y": 4, "w": 2 }, + { "matrix": [8, 2], "x": 5.25, "y": 4, "w": 1.25 }, + { "matrix": [6, 2], "x": 6.5, "y": 4, "w": 1.25 }, + { "matrix": [8, 3], "x": 7.75, "y": 4, "w": 1.25 }, + { "matrix": [8, 4], "x": 9, "y": 4, "w": 6.25 }, + { "matrix": [8, 5], "x": 15.25, "y": 4, "w": 1.25 }, + { "matrix": [8, 6], "x": 16.5, "y": 4, "w": 1.25 }, + { "matrix": [8, 7], "x": 17.75, "y": 4, "w": 1.25 }, + { "matrix": [7, 8], "x": 19, "y": 4, "w": 1.25 }, + { "matrix": [8, 8], "x": 21.5, "y": 4 } + ] + } + } +} \ No newline at end of file diff --git a/keyboards/argo_works/ishi/80/mk0_avr/keymaps/default/keymap.c b/keyboards/argo_works/ishi/80/mk0_avr/keymaps/default/keymap.c new file mode 100644 index 000000000000..b5f75a5428f1 --- /dev/null +++ b/keyboards/argo_works/ishi/80/mk0_avr/keymaps/default/keymap.c @@ -0,0 +1,42 @@ +/* Copyright 2022 Jason Devadoss (@jasonj2232) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum custom_layers { + BL, + UL, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [BL] = LAYOUT( + KC_PMNS, KC_PAST, KC_PSLS, KC_NUM, 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_PPLS, KC_P9, KC_P8, KC_P7, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_P6, KC_P5, KC_P4, KC_CAPS_LOCK, 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_PENT, KC_P3, KC_P2, KC_P1, 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_PDOT, KC_P0, KC_LCTL, KC_LGUI, LT(1, KC_LALT), KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_AUDIO_MUTE + + ), + + [UL] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_GRAVE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, + KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT,KC_DOWN, KC_DOWN, KC_MPLY + ), +}; diff --git a/keyboards/argo_works/ishi/80/mk0_avr/keymaps/via/keymap.c b/keyboards/argo_works/ishi/80/mk0_avr/keymaps/via/keymap.c new file mode 100644 index 000000000000..f0c0cfad96bf --- /dev/null +++ b/keyboards/argo_works/ishi/80/mk0_avr/keymaps/via/keymap.c @@ -0,0 +1,60 @@ +/* Copyright 2022 Jason Devadoss (@jasonj2232) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum custom_layers { + BL, + UL, + TL, + FL, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [BL] = LAYOUT( + KC_PMNS, KC_PAST, KC_PSLS, KC_NUM, 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_PPLS, KC_P9, KC_P8, KC_P7, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_P6, KC_P5, KC_P4, KC_CAPS_LOCK, 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_PENT, KC_P3, KC_P2, KC_P1, 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_PDOT, KC_P0, KC_LCTL, KC_LGUI, LT(1, KC_LALT), KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_AUDIO_MUTE + + ), + + [UL] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_GRAVE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, + KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT,KC_DOWN, KC_DOWN, KC_MPLY + ), + + [TL] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS + ), + + [FL] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS + ), +}; diff --git a/keyboards/argo_works/ishi/80/mk0_avr/keymaps/via/rules.mk b/keyboards/argo_works/ishi/80/mk0_avr/keymaps/via/rules.mk new file mode 100644 index 000000000000..036bd6d1c3ec --- /dev/null +++ b/keyboards/argo_works/ishi/80/mk0_avr/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/argo_works/ishi/80/mk0_avr/readme.md b/keyboards/argo_works/ishi/80/mk0_avr/readme.md new file mode 100644 index 000000000000..7f7919951e49 --- /dev/null +++ b/keyboards/argo_works/ishi/80/mk0_avr/readme.md @@ -0,0 +1,29 @@ +# Ishi 80 Mk 0 + +![argo_works/ishi/80/mk0_avr](https://i.imgur.com/TVn6zeqh.jpeg) + +Ishi 80 is a 60% keyboard with a SouthPaw, Mirrored Numpad. + +Note: This firmware is for ATMega32U4 based daughterboards with the standard Pro-Micro footprint. It does not support the Encoder and OLED display functionality. + +* Keyboard Maintainer: [Jason Devadoss](https://github.com/jasonj2232) +* Hardware Supported: Ishi80 Mk 0 with standard Pro Micro footprint daughterboards +* Hardware Availability: - + +Make example for this keyboard (after setting up your build environment): + + make argo_works/ishi/80/mk0_avr:default + +Flashing example for this keyboard: + + make argo_works/ishi/80/mk0_avr:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/argo_works/ishi/80/mk0_avr/rules.mk b/keyboards/argo_works/ishi/80/mk0_avr/rules.mk new file mode 100644 index 000000000000..7ff128fa692e --- /dev/null +++ b/keyboards/argo_works/ishi/80/mk0_avr/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/argo_works/ishi/80/mk0_avr_extra/config.h b/keyboards/argo_works/ishi/80/mk0_avr_extra/config.h new file mode 100644 index 000000000000..eef1ee614eb1 --- /dev/null +++ b/keyboards/argo_works/ishi/80/mk0_avr_extra/config.h @@ -0,0 +1,29 @@ +// Copyright 2022 Jason Devadoss (@jasonj2232) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "config_common.h" + +#define BOOTMAGIC_LITE_ROW 1 +#define BOOTMAGIC_LITE_COLUMN 0 + +//Uncomment the below if the encoder direction is flipped/opposite to what is expected + +//#define ENCODER_DIRECTION_FLIP + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT \ No newline at end of file diff --git a/keyboards/argo_works/ishi/80/mk0_avr_extra/info.json b/keyboards/argo_works/ishi/80/mk0_avr_extra/info.json new file mode 100644 index 000000000000..e96b2fd49701 --- /dev/null +++ b/keyboards/argo_works/ishi/80/mk0_avr_extra/info.json @@ -0,0 +1,117 @@ + { + "manufacturer": "Argo Works", + "keyboard_name": "Ishi 80 Mk 0", + "maintainer": "jasonj2232", + "development_board": "elite_c", + "pin_compatible": "elite_c", + "diode_direction": "COL2ROW", + "url": "https://qmk.fm/keyboards/", + "usb": { + "device_version": "0.0.1", + "pid": "0x4930", + "vid": "0x4157" + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "encoder": true + }, + "matrix_pins": { + "cols": ["D3", "F4", "F5", "F6", "F7", "D7", "C6", "D4", "D2"], + "rows": ["B3", "B1", "B6", "B2", "F0", "F1", "B5", "B4", "E6"] + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "matrix": [1, 0], "x": 0, "y": 0 }, + { "matrix": [0, 0], "x": 1, "y": 0 }, + { "matrix": [1, 1], "x": 2, "y": 0 }, + { "matrix": [0, 1], "x": 3, "y": 0 }, + { "matrix": [1, 2], "x": 5.25, "y": 0 }, + { "matrix": [0, 2], "x": 6.25, "y": 0 }, + { "matrix": [1, 3], "x": 7.25, "y": 0 }, + { "matrix": [0, 3], "x": 8.25, "y": 0 }, + { "matrix": [1, 4], "x": 9.25, "y": 0 }, + { "matrix": [0, 4], "x": 10.25, "y": 0 }, + { "matrix": [1, 5], "x": 11.25, "y": 0 }, + { "matrix": [0, 5], "x": 12.25, "y": 0 }, + { "matrix": [1, 6], "x": 13.25, "y": 0 }, + { "matrix": [0, 6], "x": 14.25, "y": 0 }, + { "matrix": [1, 7], "x": 15.25, "y": 0 }, + { "matrix": [0, 7], "x": 16.25, "y": 0 }, + { "matrix": [1, 8], "x": 17.25, "y": 0 }, + { "matrix": [0, 8], "x": 18.25, "y": 0, "w": 2 }, + { "matrix": [3, 0], "x": 0, "y": 1, "h": 2 }, + { "matrix": [2, 0], "x": 1, "y": 1 }, + { "matrix": [3, 1], "x": 2, "y": 1 }, + { "matrix": [2, 1], "x": 3, "y": 1 }, + { "matrix": [3, 2], "x": 5.25, "y": 1, "w": 1.5 }, + { "matrix": [2, 2], "x": 6.75, "y": 1 }, + { "matrix": [3, 3], "x": 7.75, "y": 1 }, + { "matrix": [2, 3], "x": 8.75, "y": 1 }, + { "matrix": [3, 4], "x": 9.75, "y": 1 }, + { "matrix": [2, 4], "x": 10.75, "y": 1 }, + { "matrix": [3, 5], "x": 11.75, "y": 1 }, + { "matrix": [2, 5], "x": 12.75, "y": 1 }, + { "matrix": [3, 6], "x": 13.75, "y": 1 }, + { "matrix": [2, 6], "x": 14.75, "y": 1 }, + { "matrix": [3, 7], "x": 15.75, "y": 1 }, + { "matrix": [2, 7], "x": 16.75, "y": 1 }, + { "matrix": [3, 8], "x": 17.75, "y": 1 }, + { "matrix": [2, 8], "x": 18.75, "y": 1, "w": 1.5 }, + { "matrix": [4, 0], "x": 1, "y": 2 }, + { "matrix": [5, 1], "x": 2, "y": 2 }, + { "matrix": [4, 1], "x": 3, "y": 2 }, + { "matrix": [5, 2], "x": 5.25, "y": 2, "w": 1.75 }, + { "matrix": [4, 2], "x": 7, "y": 2 }, + { "matrix": [5, 3], "x": 8, "y": 2 }, + { "matrix": [4, 3], "x": 9, "y": 2 }, + { "matrix": [5, 4], "x": 10, "y": 2 }, + { "matrix": [4, 4], "x": 11, "y": 2 }, + { "matrix": [5, 5], "x": 12, "y": 2 }, + { "matrix": [4, 5], "x": 13, "y": 2 }, + { "matrix": [5, 6], "x": 14, "y": 2 }, + { "matrix": [4, 6], "x": 15, "y": 2 }, + { "matrix": [5, 7], "x": 16, "y": 2 }, + { "matrix": [4, 7], "x": 17, "y": 2 }, + { "matrix": [4, 8], "x": 18, "y": 2, "w": 2.25 }, + { "matrix": [7, 0], "x": 0, "y": 3, "h": 2 }, + { "matrix": [6, 0], "x": 1, "y": 3 }, + { "matrix": [7, 1], "x": 2, "y": 3 }, + { "matrix": [6, 1], "x": 3, "y": 3 }, + { "matrix": [7, 2], "x": 5.25, "y": 3, "w": 2.25 }, + { "matrix": [7, 3], "x": 7.5, "y": 3 }, + { "matrix": [6, 3], "x": 8.5, "y": 3 }, + { "matrix": [7, 4], "x": 9.5, "y": 3 }, + { "matrix": [6, 4], "x": 10.5, "y": 3 }, + { "matrix": [7, 5], "x": 11.5, "y": 3 }, + { "matrix": [6, 5], "x": 12.5, "y": 3 }, + { "matrix": [7, 6], "x": 13.5, "y": 3 }, + { "matrix": [6, 6], "x": 14.5, "y": 3 }, + { "matrix": [7, 7], "x": 15.5, "y": 3 }, + { "matrix": [6, 7], "x": 16.5, "y": 3 }, + { "matrix": [6, 8], "x": 17.5, "y": 3, "w": 2.75 }, + { "matrix": [8, 0], "x": 1, "y": 4 }, + { "matrix": [8, 1], "x": 2, "y": 4, "w": 2 }, + { "matrix": [8, 2], "x": 5.25, "y": 4, "w": 1.25 }, + { "matrix": [6, 2], "x": 6.5, "y": 4, "w": 1.25 }, + { "matrix": [8, 3], "x": 7.75, "y": 4, "w": 1.25 }, + { "matrix": [8, 4], "x": 9, "y": 4, "w": 6.25 }, + { "matrix": [8, 5], "x": 15.25, "y": 4, "w": 1.25 }, + { "matrix": [8, 6], "x": 16.5, "y": 4, "w": 1.25 }, + { "matrix": [8, 7], "x": 17.75, "y": 4, "w": 1.25 }, + { "matrix": [7, 8], "x": 19, "y": 4, "w": 1.25 }, + { "matrix": [8, 8], "x": 21.5, "y": 4 } + ] + } + }, + "encoder": { + "rotary": [ + { "pin_a": "B7", "pin_b": "D5" } + ] + } +} \ No newline at end of file diff --git a/keyboards/argo_works/ishi/80/mk0_avr_extra/keymaps/bongocat/keymap.c b/keyboards/argo_works/ishi/80/mk0_avr_extra/keymaps/bongocat/keymap.c new file mode 100644 index 000000000000..cd0bd4a6440d --- /dev/null +++ b/keyboards/argo_works/ishi/80/mk0_avr_extra/keymaps/bongocat/keymap.c @@ -0,0 +1,187 @@ +/* Copyright 2022 Jason Devadoss (@jasonj2232) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum custom_layers { + BL, + UL, +}; + +// OLED setup for bongocat +#define IDLE_FRAMES 5 +#define IDLE_SPEED 30 +#define TAP_FRAMES 2 +#define TAP_SPEED 40 +#define ANIM_FRAME_DURATION 200 +#define ANIM_SIZE 512 + +static long int oled_timeout = 600000; // 10 minutes +bool gui_on = true; +char wpm_str[10]; +uint32_t anim_timer = 0; +uint32_t anim_sleep = 0; +uint8_t current_idle_frame = 0; +uint8_t current_tap_frame = 0; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [BL] = LAYOUT( + KC_PMNS, KC_PAST, KC_PSLS, KC_NUM, 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_PPLS, KC_P9, KC_P8, KC_P7, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_P6, KC_P5, KC_P4, KC_CAPS_LOCK, 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_PENT, KC_P3, KC_P2, KC_P1, 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_PDOT, KC_P0, KC_LCTL, KC_LGUI, LT(1, KC_LALT), KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_AUDIO_MUTE + + ), + + [UL] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_GRAVE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_MPLY + ), +}; + +#ifdef ENCODER_MAP_ENABLE + const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [BL] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [UL] = { ENCODER_CCW_CW(KC_BRID, KC_BRIU) }, + }; +#endif + +#ifdef OLED_ENABLE + +//Uncomment the below if OLED orientation is incorrect +/* +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_180; // flips the display 180 degrees +} +*/ + +static void render_anim(void) { + + // Idle animation + static const char PROGMEM idle[IDLE_FRAMES][ANIM_SIZE] = { + + { + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,64,64,32,32,32,32,16,16,16,16,16,8,8,4,4,4,8,48,64,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,100,130,2,2,2,2,2,1,0,0,0,0,128,128,0,0,0,0,0,0,0,0,0,128,0,48,48,0,192,193,193,194,4,8,16,32,64,128,0,0,0,128,128,128,128,64,64, + 64,64,32,32,32,32,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,2,2,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,56,4,3,0,0,0,0,0,0,0,12,12,12,13,1,0,64,160,33,34,18,17,17,17,9,8,8,8,8,4,4,8,8,16,16,16,16,16,17,15,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,128,128,64,64,64,64,64,32,32,32,32,32,16,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,3,2,2,1,1,1,1,1,1,2,2,4,4,8,8,8,8,8,7, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + }, + + { + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,64,64,32,32,32,32,16,16,16,16,16,8,8,4,4,4,8,48,64,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,100,130,2,2,2,2,2,1,0,0,0,0,128,128,0,0,0,0,0,0,0,0,0,128,0,48,48,0,192,193,193,194,4,8,16,32,64,128,0,0,0,128,128,128,128,64,64, + 64,64,32,32,32,32,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,2,2,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,56,4,3,0,0,0,0,0,0,0,12,12,12,13,1,0,64,160,33,34,18,17,17,17,9,8,8,8,8,4,4,8,8,16,16,16,16,16,17,15,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,128,128,64,64,64,64,64,32,32,32,32,32,16,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,3,2,2,1,1,1,1,1,1,2,2,4,4,8,8,8,8,8, + 7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + }, + + { + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,64,64,64,64,32,32,32,32,16,8,4,2,2,4,24,96,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,60,194,1,1,2,2,4,4,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,96,0,129,130,130,132,8,16,32,64,128,0,0,0,0,128,128,128,128,64,64,64,64,32, + 32,32,32,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,2,2,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,112,25,6,0,0,0,0,0,0,0,24,24,24,27,3,0,64,160,34,36,20,18,18,18,11,8,8,8,8,5,5,9,9,16,16,16,16,16,17,15,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,128,128,64,64,64,64,64,32,32,32,32,32,16,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,3,2,2,1,1,1,1,1,1,2,2,4,4,8,8,8,8,8,7,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + }, + + { + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,0,0,0,0,0,128,64,64,32,32,32,32,16,16,16,16,8,4,2,1,1,2,12,48,64,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,30,225,0,0,1,1,2,2,1,0,0,0,0,128,128,0,0,0,0,0,0,0,0,0,128,0,48,48,0,192,193,193,194,4,8,16,32,64,128,0,0,0,128,128,128,128,64,64, + 64,64,32,32,32,32,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,2,2,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,112,12,3,0,0,0,0,0,0,0,12,12,12,13,1,0,64,160,33,34,18,17,17,17,9,8,8,8,8,4,4,8,8,16,16,16,16,16,17,15,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,128,128,64,64,64,64,64,32,32,32,32,32,16,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,3,2,2,1,1,1,1,1,1,2,2,4,4,8,8,8,8,8, + 7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + }, + + { + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,64,64,32,32,32,32,16,16,16,16,8,8,4,2,2,2,4,56,64,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,226,1,1,2,2,2,2,1,0,0,0,0,128,128,0,0,0,0,0,0,0,0,0,128,0,48,48,0,192,193,193,194,4,8,16,32,64,128,0,0,0,128,128,128,128,64,64,64,64, + 32,32,32,32,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,2,2,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,112,12,3,0,0,0,0,0,0,0,12,12,12,13,1,0,64,160,33,34,18,17,17,17,9,8,8,8,8,4,4,8,8,16,16,16,16,16,17,15,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,128,128,64,64,64,64,64,32,32,32,32,32,16,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,3,2,2,1,1,1,1,1,1,2,2,4,4,8,8,8,8,8,7,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + } + + }; + + // Prep animation + static const char PROGMEM prep[][ANIM_SIZE] = { + + { + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,0,0,0,0,0,128,64,64,32,32,32,32,16,16,16,16,8,4,2,1,1,2,12,48,64,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,30,225,0,0,1,1,2,2,129,128,128,0,0,128,128,0,0,0,0,0,0,0,0,0,128,0,48,48,0,0,1,225,26,6,9,49,53,1,138,124,0,0,128,128,128,128,64,64, + 64,64,32,32,32,32,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,2,2,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,112,12,3,0,0,24,6,5,152,153,132,195,124,65,65,64,64,32,33,34,18,17,17,17,9,8,8,8,8,4,4,4,4,4,4,2,2,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,128,128,64,64,64,64,64,32,32,32,32,32,16,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,3,2,2,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + } + + }; + + // Typing animation + static const char PROGMEM tap[TAP_FRAMES][ANIM_SIZE] = { + + { + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,0,0,0,0,0,128,64,64,32,32,32,32,16,16,16,16,8,4,2,1,1,2,12,48,64,128,0,0,0,0,0,0,0,248,248,248,248,0,0,0,0,0,128,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,30,225,0,0,1,1,2,2,129,128,128,0,0,128,128,0,0,0,0,0,0,0,0,0,128,0,48,48,0,0,1,1,2,4,8,16,32,67,135,7,1,0,184,188,190,159, + 95,95,79,76,32,32,32,32,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,2,2,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,112,12,3,0,0,24,6,5,152,153,132,67,124,65,65,64,64,32,33,34,18,17,17,17,9,8,8,8,8,4,4,8,8,16,16,16,16,16,17,15,1,61,124,252,252,252,252,252,60,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,128,128,64,64,64,64,64,32,32,32,32,32,16,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,3,2,2,1,1,1, + 1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + }, + + { + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,0,0,0,0,0,128,64,64,32,32,32,32,16,16,16,16,8,4,2,1,1,2,12,48,64,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,30,225,0,0,1,1,2,2,1,0,0,0,0,128,128,0,0,0,0,0,0,0,0,0,128,0,48,48,0,0,1,225,26,6,9,49,53,1,138,124,0,0,128,128,128,128,64,64,64,64,32, + 32,32,32,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,2,2,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,112,12,3,0,0,0,0,0,0,0,0,0,0,1,1,0,64,160,33,34,18,17,17,17,9,8,8,8,8,4,4,4,4,4,4,2,2,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,128,128,64,64,64,64,64,32,32,32,32,32,16,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,3,122,122,121,121,121,121,57,49,2,2,4,4,8,8,8,136,136,135,128, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + } + + }; + + void animation_phase(void) { + if (get_current_wpm() <=IDLE_SPEED) { + current_idle_frame = (current_idle_frame + 1) % IDLE_FRAMES; + oled_write_raw_P(idle[abs((IDLE_FRAMES-1)-current_idle_frame)], ANIM_SIZE); + } + + if (get_current_wpm() >IDLE_SPEED && get_current_wpm() =TAP_SPEED) { + current_tap_frame = (current_tap_frame + 1) % TAP_FRAMES; + oled_write_raw_P(tap[abs((TAP_FRAMES-1)-current_tap_frame)], ANIM_SIZE); + } + } + + if (get_current_wpm() != 000) { + oled_on(); + + if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { + anim_timer = timer_read32(); + animation_phase(); + } + + anim_sleep = timer_read32(); + } else { + if (timer_elapsed32(anim_sleep) > oled_timeout) { + oled_off(); + } else { + if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { + anim_timer = timer_read32(); + animation_phase(); + } + } + } +} + +bool oled_task_user(void) { + render_anim(); + oled_set_cursor(0,4); + sprintf(wpm_str, "WPM: %03d", get_current_wpm()); + oled_write(wpm_str, false); + + return false; +} + +#endif \ No newline at end of file diff --git a/keyboards/argo_works/ishi/80/mk0_avr_extra/keymaps/bongocat/rules.mk b/keyboards/argo_works/ishi/80/mk0_avr_extra/keymaps/bongocat/rules.mk new file mode 100644 index 000000000000..a40474b4d5c7 --- /dev/null +++ b/keyboards/argo_works/ishi/80/mk0_avr_extra/keymaps/bongocat/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/argo_works/ishi/80/mk0_avr_extra/keymaps/default/keymap.c b/keyboards/argo_works/ishi/80/mk0_avr_extra/keymaps/default/keymap.c new file mode 100644 index 000000000000..11bfab17ad5d --- /dev/null +++ b/keyboards/argo_works/ishi/80/mk0_avr_extra/keymaps/default/keymap.c @@ -0,0 +1,49 @@ +/* Copyright 2022 Jason Devadoss (@jasonj2232) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum custom_layers { + BL, + UL, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [BL] = LAYOUT( + KC_PMNS, KC_PAST, KC_PSLS, KC_NUM, 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_PPLS, KC_P9, KC_P8, KC_P7, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_P6, KC_P5, KC_P4, KC_CAPS_LOCK, 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_PENT, KC_P3, KC_P2, KC_P1, 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_PDOT, KC_P0, KC_LCTL, KC_LGUI, LT(1, KC_LALT), KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_AUDIO_MUTE + + ), + + [UL] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_GRAVE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, + KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT,KC_DOWN, KC_RIGHT, KC_MPLY + ), +}; + +#ifdef ENCODER_MAP_ENABLE + const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [BL] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [UL] = { ENCODER_CCW_CW(KC_BRID, KC_BRIU) }, + }; +#endif \ No newline at end of file diff --git a/keyboards/argo_works/ishi/80/mk0_avr_extra/keymaps/default/rules.mk b/keyboards/argo_works/ishi/80/mk0_avr_extra/keymaps/default/rules.mk new file mode 100644 index 000000000000..a40474b4d5c7 --- /dev/null +++ b/keyboards/argo_works/ishi/80/mk0_avr_extra/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/argo_works/ishi/80/mk0_avr_extra/keymaps/via/keymap.c b/keyboards/argo_works/ishi/80/mk0_avr_extra/keymaps/via/keymap.c new file mode 100644 index 000000000000..a9dd39c342a5 --- /dev/null +++ b/keyboards/argo_works/ishi/80/mk0_avr_extra/keymaps/via/keymap.c @@ -0,0 +1,69 @@ +/* Copyright 2022 Jason Devadoss (@jasonj2232) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum custom_layers { + BL, + UL, + TL, + FL, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [BL] = LAYOUT( + KC_PMNS, KC_PAST, KC_PSLS, KC_NUM, 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_PPLS, KC_P9, KC_P8, KC_P7, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_P6, KC_P5, KC_P4, KC_CAPS_LOCK, 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_PENT, KC_P3, KC_P2, KC_P1, 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_PDOT, KC_P0, KC_LCTL, KC_LGUI, LT(1, KC_LALT), KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_AUDIO_MUTE + + ), + + [UL] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_GRAVE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, + KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT,KC_DOWN, KC_RIGHT, KC_MPLY + ), + + [TL] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS + ), + + [FL] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS + ), +}; + +#ifdef ENCODER_MAP_ENABLE + const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [BL] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [UL] = { ENCODER_CCW_CW(KC_BRID, KC_BRIU) }, + [TL] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [FL] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + }; +#endif \ No newline at end of file diff --git a/keyboards/argo_works/ishi/80/mk0_avr_extra/keymaps/via/rules.mk b/keyboards/argo_works/ishi/80/mk0_avr_extra/keymaps/via/rules.mk new file mode 100644 index 000000000000..6ccd6d91943d --- /dev/null +++ b/keyboards/argo_works/ishi/80/mk0_avr_extra/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +ENCODER_MAP_ENABLE = yes +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/argo_works/ishi/80/mk0_avr_extra/mk0_avr_extra.c b/keyboards/argo_works/ishi/80/mk0_avr_extra/mk0_avr_extra.c new file mode 100644 index 000000000000..83d591eb0acc --- /dev/null +++ b/keyboards/argo_works/ishi/80/mk0_avr_extra/mk0_avr_extra.c @@ -0,0 +1,39 @@ +/* Copyright 2022 Jason Devadoss (@jasonj2232) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +#ifdef OLED_ENABLE +static void render_logo(void) { + static const char PROGMEM raw_logo[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,240,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,240,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 20, 18, 18, 20,120, 0, 0,126, 10, 26, 58,106, 78, 0, 0,126, 66, 82, 82, 82,114, 0, 0,126, 66, 66, 66, 66,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255, 0, 0,252,252,140,140,140,140,140,140,140,140,140,140,140,140, 0, 0,252,252,128,128,128,128,128,128,128,128,128,128,128,252,252, 0, 0,255,255,255, 0, 0, 0, 0, 0, 0,255,255,153,153,255,255, 0, 0,255,255,195,195,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 64, 48, 48, 64, 62, 0, 0,126, 66, 66, 66, 66,126, 0, 0,126, 10, 26, 58,106, 78, 0, 0,126, 24, 60,102, 66, 66, 0, 0, 36, 74, 74, 82, 82, 36, 0, 0, 0,255,255,255, 0, 0, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 63, 63, 0, 0, 63, 63, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 63, 63, 0, 0,255,255,255, 0, 0, 0, 0, 0, 0,252, 8, 16, 8,252, 48, 72,132, 0, 0,120,132,132,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }; + oled_write_raw_P(raw_logo, sizeof(raw_logo)); +} + + + +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + render_logo(); + return true; +} +#endif diff --git a/keyboards/argo_works/ishi/80/mk0_avr_extra/readme.md b/keyboards/argo_works/ishi/80/mk0_avr_extra/readme.md new file mode 100644 index 000000000000..89fa9fbaca69 --- /dev/null +++ b/keyboards/argo_works/ishi/80/mk0_avr_extra/readme.md @@ -0,0 +1,29 @@ +# Ishi 80 Mk 0 + +![argo_works/ishi/80/mk0_avr_extra](https://i.imgur.com/TVn6zeqh.jpeg) + +Ishi 80 is a 60% keyboard with a SouthPaw, Mirrored Numpad. + +Note: This firmware is for ATMega32U4 based daughterboards that have 5 extra pins on the bottom, such as the Elite-C. It is incompatible with standard Pro-Micro footprint daughterboards. + +* Keyboard Maintainer: [Jason Devadoss](https://github.com/jasonj2232) +* Hardware Supported: Ishi80 Mk 0 with Elite-C footprint daughterboards +* Hardware Availability: - + +Make example for this keyboard (after setting up your build environment): + + make argo_works/ishi/80/mk0_avr_extra:default + +Flashing example for this keyboard: + + make argo_works/ishi/80/mk0_avr_extra:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/argo_works/ishi/80/mk0_avr_extra/rules.mk b/keyboards/argo_works/ishi/80/mk0_avr_extra/rules.mk new file mode 100644 index 000000000000..93c8491671dc --- /dev/null +++ b/keyboards/argo_works/ishi/80/mk0_avr_extra/rules.mk @@ -0,0 +1,4 @@ +OLED_ENABLE = yes +OLED_DRIVER = SSD1306 +WPM_ENABLE = yes +PIN_COMPATIBLE = elite_c \ No newline at end of file From a781672ce7f2f261118bf8f70f8c870f01043adb Mon Sep 17 00:00:00 2001 From: Roberto Santalla Date: Fri, 30 Dec 2022 01:50:37 +0100 Subject: [PATCH 006/139] docs: add a note about reflashing both halves for encoder resolution (#19162) Co-authored-by: Drashna Jaelre --- docs/feature_encoders.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/feature_encoders.md b/docs/feature_encoders.md index 60b613d6a55b..cccdcbe4b31c 100644 --- a/docs/feature_encoders.md +++ b/docs/feature_encoders.md @@ -67,6 +67,8 @@ Additionally, if one side does not have an encoder, you can specify `{}` for the #define ENCODER_RESOLUTIONS_RIGHT { 4 } ``` +!> Keep in mind that whenver you change the encoder resolution, you will need to reflash the half that has the encoder affected by the change. + ## Encoder map :id=encoder-map Encoder mapping may be added to your `keymap.c`, which replicates the normal keyswitch layer handling functionality, but with encoders. Add this to your keymap's `rules.mk`: From a7ff2b8d54e1b56c5c25f4a7b6c8c5d9dedee2ab Mon Sep 17 00:00:00 2001 From: Wolf Van Herreweghe Date: Fri, 30 Dec 2022 01:51:12 +0100 Subject: [PATCH 007/139] Typ65+ Add code to auto turn off LEDs when the PC goes to sleep (#19365) Co-authored-by: Wolf --- keyboards/kopibeng/typ65/info.json | 5 ++++- .../kopibeng/typ65/keymaps/default/keymap.c | 8 ++++---- keyboards/kopibeng/typ65/keymaps/via/keymap.c | 8 ++++---- keyboards/kopibeng/typ65/typ65.c | 16 ++++++++++++++++ keyboards/kopibeng/typ65/typ65.h | 2 +- 5 files changed, 29 insertions(+), 10 deletions(-) diff --git a/keyboards/kopibeng/typ65/info.json b/keyboards/kopibeng/typ65/info.json index b41daf736c5b..01abcaa43328 100644 --- a/keyboards/kopibeng/typ65/info.json +++ b/keyboards/kopibeng/typ65/info.json @@ -8,8 +8,11 @@ "pid": "0x065E", "device_version": "0.0.1" }, + "layout_aliases": { + "LAYOUT_all": "LAYOUT" + }, "layouts": { - "LAYOUT_all": { + "LAYOUT": { "layout": [ { "label": "K01", "x": 1.25, "y": 0 }, { "label": "K02", "x": 2.25, "y": 0 }, diff --git a/keyboards/kopibeng/typ65/keymaps/default/keymap.c b/keyboards/kopibeng/typ65/keymaps/default/keymap.c index 6cdf423f7687..d871561a3b08 100644 --- a/keyboards/kopibeng/typ65/keymaps/default/keymap.c +++ b/keyboards/kopibeng/typ65/keymaps/default/keymap.c @@ -19,7 +19,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Default layer - [0] = LAYOUT_all( + [0] = LAYOUT( QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_HOME, 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_PGUP, KC_TRNS, KC_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, @@ -28,7 +28,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), // Fn1 Layer - [1] = LAYOUT_all( + [1] = LAYOUT( KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -37,7 +37,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), // Fn2 Layer - [2] = LAYOUT_all( + [2] = LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -46,7 +46,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), // Fn3 Layer - [3] = LAYOUT_all( + [3] = LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/kopibeng/typ65/keymaps/via/keymap.c b/keyboards/kopibeng/typ65/keymaps/via/keymap.c index 6cdf423f7687..d871561a3b08 100644 --- a/keyboards/kopibeng/typ65/keymaps/via/keymap.c +++ b/keyboards/kopibeng/typ65/keymaps/via/keymap.c @@ -19,7 +19,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Default layer - [0] = LAYOUT_all( + [0] = LAYOUT( QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_HOME, 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_PGUP, KC_TRNS, KC_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, @@ -28,7 +28,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), // Fn1 Layer - [1] = LAYOUT_all( + [1] = LAYOUT( KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -37,7 +37,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), // Fn2 Layer - [2] = LAYOUT_all( + [2] = LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -46,7 +46,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), // Fn3 Layer - [3] = LAYOUT_all( + [3] = LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/kopibeng/typ65/typ65.c b/keyboards/kopibeng/typ65/typ65.c index 152b2e773720..2844f2ca835d 100644 --- a/keyboards/kopibeng/typ65/typ65.c +++ b/keyboards/kopibeng/typ65/typ65.c @@ -48,4 +48,20 @@ __attribute__((weak)) layer_state_t layer_state_set_user(layer_state_t state) { break; } return state; +} + +void suspend_power_down_kb(void) { + writePinLow(INDICATOR_0); + writePinLow(INDICATOR_1); + writePinLow(INDICATOR_2); + + suspend_power_down_user(); +} + +void suspend_wakeup_init_kb(void) { + writePinHigh(INDICATOR_0); + writePinHigh(INDICATOR_1); + writePinHigh(INDICATOR_2); + + suspend_wakeup_init_user(); } \ No newline at end of file diff --git a/keyboards/kopibeng/typ65/typ65.h b/keyboards/kopibeng/typ65/typ65.h index 189139df3b14..a4bbf9ab9960 100644 --- a/keyboards/kopibeng/typ65/typ65.h +++ b/keyboards/kopibeng/typ65/typ65.h @@ -39,7 +39,7 @@ * */ -#define LAYOUT_all( \ +#define LAYOUT( \ K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K1E, K0E, K0F, \ K00, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K2E, K1F, \ K10, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2F, \ From ced8142847e7c6a1e0e260017131e34e3da1b0ff Mon Sep 17 00:00:00 2001 From: Evgenii Vilkov Date: Fri, 30 Dec 2022 01:53:31 +0100 Subject: [PATCH 008/139] [Keyboard] Add Pica40 (#19220) Co-authored-by: Drashna Jaelre --- keyboards/pica40/info.json | 52 ++++++ keyboards/pica40/keymaps/default/keymap.c | 44 +++++ keyboards/pica40/keymaps/zzeneg/config.h | 12 ++ keyboards/pica40/keymaps/zzeneg/keymap.c | 196 ++++++++++++++++++++++ keyboards/pica40/keymaps/zzeneg/rules.mk | 2 + keyboards/pica40/readme.md | 29 ++++ keyboards/pica40/rev1/config.h | 9 + keyboards/pica40/rev1/info.json | 39 +++++ keyboards/pica40/rev1/rev1.c | 91 ++++++++++ keyboards/pica40/rev1/rev1.h | 6 + keyboards/pica40/rev1/rules.mk | 1 + keyboards/pica40/rev2/config.h | 19 +++ keyboards/pica40/rev2/info.json | 53 ++++++ keyboards/pica40/rev2/post_rules.mk | 8 + keyboards/pica40/rev2/rev2.c | 189 +++++++++++++++++++++ keyboards/pica40/rev2/rev2.h | 22 +++ keyboards/pica40/rev2/rules.mk | 2 + keyboards/pica40/rules.mk | 1 + 18 files changed, 775 insertions(+) create mode 100644 keyboards/pica40/info.json create mode 100644 keyboards/pica40/keymaps/default/keymap.c create mode 100644 keyboards/pica40/keymaps/zzeneg/config.h create mode 100644 keyboards/pica40/keymaps/zzeneg/keymap.c create mode 100644 keyboards/pica40/keymaps/zzeneg/rules.mk create mode 100644 keyboards/pica40/readme.md create mode 100644 keyboards/pica40/rev1/config.h create mode 100644 keyboards/pica40/rev1/info.json create mode 100644 keyboards/pica40/rev1/rev1.c create mode 100644 keyboards/pica40/rev1/rev1.h create mode 100644 keyboards/pica40/rev1/rules.mk create mode 100644 keyboards/pica40/rev2/config.h create mode 100644 keyboards/pica40/rev2/info.json create mode 100644 keyboards/pica40/rev2/post_rules.mk create mode 100644 keyboards/pica40/rev2/rev2.c create mode 100644 keyboards/pica40/rev2/rev2.h create mode 100644 keyboards/pica40/rev2/rules.mk create mode 100644 keyboards/pica40/rules.mk diff --git a/keyboards/pica40/info.json b/keyboards/pica40/info.json new file mode 100644 index 000000000000..6c9dbb76d937 --- /dev/null +++ b/keyboards/pica40/info.json @@ -0,0 +1,52 @@ +{ + "keyboard_name": "pica40", + "manufacturer": "zzeneg", + "url": "https://github.com/zzeneg/pica40", + "maintainer": "zzeneg", + "layouts": { + "LAYOUT": { + "layout": [ + { "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": [4, 4], "x": 6, "y": 0 }, + { "matrix": [4, 3], "x": 7, "y": 0 }, + { "matrix": [4, 2], "x": 8, "y": 0 }, + { "matrix": [4, 1], "x": 9, "y": 0 }, + { "matrix": [4, 0], "x": 10, "y": 0 }, + { "matrix": [3, 0], "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": [5, 4], "x": 6, "y": 1 }, + { "matrix": [5, 3], "x": 7, "y": 1 }, + { "matrix": [5, 2], "x": 8, "y": 1 }, + { "matrix": [5, 1], "x": 9, "y": 1 }, + { "matrix": [5, 0], "x": 10, "y": 1 }, + { "matrix": [7, 0], "x": 11, "y": 1 }, + { "matrix": [3, 1], "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": [6, 4], "x": 6, "y": 2 }, + { "matrix": [6, 3], "x": 7, "y": 2 }, + { "matrix": [6, 2], "x": 8, "y": 2 }, + { "matrix": [6, 1], "x": 9, "y": 2 }, + { "matrix": [6, 0], "x": 10, "y": 2 }, + { "matrix": [7, 1], "x": 11, "y": 2 }, + { "matrix": [3, 2], "x": 3, "y": 3 }, + { "matrix": [3, 3], "x": 4, "y": 3 }, + { "matrix": [3, 4], "x": 5, "y": 3 }, + { "matrix": [7, 4], "x": 6, "y": 3 }, + { "matrix": [7, 3], "x": 7, "y": 3 }, + { "matrix": [7, 2], "x": 8, "y": 3 } + ] + } + } +} diff --git a/keyboards/pica40/keymaps/default/keymap.c b/keyboards/pica40/keymaps/default/keymap.c new file mode 100644 index 000000000000..010a29cceeb7 --- /dev/null +++ b/keyboards/pica40/keymaps/default/keymap.c @@ -0,0 +1,44 @@ +// Copyright 2022 zzeneg (@zzeneg) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layer_number { + _QWERTY, + _LOWER, + _RAISE +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* QWERTY + * .----------------------------------. ,----------------------------------. + * | Q | W | E | R | T | | Y | U | I | O | P | + * .------+------+------+------+------+------| |------+------+------+------+------+------. + * | LCTRL| A | S | D | F | G | | H | J | K | L | ; | BSPC | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | LSFT | Z | X | C | V | B |-------. .-------| N | M | , | . | / | RSFT | + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LALT | LOWER| / Space / \ Enter \ | RAISE| RGUI | + * `-------------' '-------' '-------' '-------------' + */ + [_QWERTY] = LAYOUT( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_BSPC, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LALT, MO(_LOWER), KC_SPC, KC_ENT, MO(_RAISE), KC_RGUI + ), + + [_LOWER] = LAYOUT( + KC_ESC, KC_7, KC_8, KC_9, KC_0, KC_BSLS, KC_F7, KC_F8, KC_F9, KC_F12, + _______, KC_EQL, KC_4, KC_5, KC_6, KC_LBRC, KC_QUOT, KC_F4, KC_F5, KC_F6, KC_F11, _______, + _______, KC_MINS, KC_1, KC_2, KC_3, KC_RBRC, KC_GRV, KC_F1, KC_F2, KC_F3, KC_F10, _______, + _______, _______, XXXXXXX, KC_MPLY, _______, _______ + ), + + [_RAISE] = LAYOUT( + KC_TAB, LSFT(KC_7), LSFT(KC_8), LSFT(KC_9), LSFT(KC_0), LSFT(KC_BSLS), KC_DEL, KC_PGDN, KC_PGUP, KC_INS, + _______, LSFT(KC_EQL), LSFT(KC_4), LSFT(KC_5), LSFT(KC_6), LSFT(KC_LBRC), LSFT(KC_QUOT), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, + _______, LSFT(KC_MINS), LSFT(KC_1), LSFT(KC_2), LSFT(KC_3), LSFT(KC_RBRC), LSFT(KC_GRV), KC_HOME, KC_END, XXXXXXX, XXXXXXX, _______, + _______, _______, KC_CAPS, XXXXXXX, _______, _______ + ), +}; diff --git a/keyboards/pica40/keymaps/zzeneg/config.h b/keyboards/pica40/keymaps/zzeneg/config.h new file mode 100644 index 000000000000..ec422c4d8e43 --- /dev/null +++ b/keyboards/pica40/keymaps/zzeneg/config.h @@ -0,0 +1,12 @@ +// Copyright 2022 zzeneg (@zzeneg) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define IGNORE_MOD_TAP_INTERRUPT +#define TAPPING_FORCE_HOLD +#define TAPPING_FORCE_HOLD_PER_KEY +#define TAPPING_TERM 150 +#define TAPPING_TERM_PER_KEY + +#define BOTH_SHIFTS_TURNS_ON_CAPS_WORD diff --git a/keyboards/pica40/keymaps/zzeneg/keymap.c b/keyboards/pica40/keymaps/zzeneg/keymap.c new file mode 100644 index 000000000000..6cff7cfa278f --- /dev/null +++ b/keyboards/pica40/keymaps/zzeneg/keymap.c @@ -0,0 +1,196 @@ +// Copyright 2022 zzeneg (@zzeneg) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layer_number { + _QWERTY = 0, + _GAME, + _NAV, + _NUMBER, + _SYMBOL, + _FUNC +}; + +// Left-hand home row mods +#define HOME_A LGUI_T(KC_A) +#define HOME_S LALT_T(KC_S) +#define HOME_D LCTL_T(KC_D) +#define HOME_F LSFT_T(KC_F) + +// Right-hand home row mods +#define HOME_J RSFT_T(KC_J) +#define HOME_K RCTL_T(KC_K) +#define HOME_L LALT_T(KC_L) +#define HOME_SCLN RGUI_T(KC_SCLN) + +// bottom mods +#define SYM_SPC LT(_SYMBOL, KC_SPC) +#define NUM_TAB LT(_NUMBER, KC_TAB) +#define FUNC_ESC LT(_FUNC, KC_ESC) +#define FUNC_ENT LT(_FUNC, KC_ENT) +#define NAV_BSPC LT(_NAV, KC_BSPC) +#define RALT_DEL RALT_T(KC_DEL) + +// game layer mods +#define LALT_EQL LALT_T(KC_EQL) +#define LSFT_MINS LSFT_T(KC_MINS) +#define LCTL_ESC LCTL_T(KC_ESC) +#define LGUI_QUOT LGUI_T(KC_QUOT) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* QWERTY + * .----------------------------------. ,----------------------------------. + * | Q | W | E | R | T | | Y | U | I | O | P | + * .------+------+------+------+------+------| |------+------+------+------+------+------. + * | = | A | S | D | F | G | | H | J | K | L | ; | ' | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | - | Z | X | C | V | B |-------. .-------| N | M | , | . | / | ` | + * `-----------------------------------------/ / \ \-----------------------------------------' + * | Esc | Tab | / Space / \ Enter \ | Bsps | Del | + * |_FUNC | _NUM | /_SYMBOL/ \ _FUNC \ | _NAV | RAlt | + * `-------------''-------' '-------''-------------' + */ + [_QWERTY] = LAYOUT( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_EQL, HOME_A, HOME_S, HOME_D, HOME_F, KC_G, KC_H, HOME_J, HOME_K, HOME_L, HOME_SCLN, KC_QUOT, + KC_MINS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_GRV, + FUNC_ESC, NUM_TAB, SYM_SPC, FUNC_ENT, NAV_BSPC, RALT_DEL + ), + + [_GAME] = LAYOUT( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + LALT_EQL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, LGUI_QUOT, + LSFT_MINS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, TG(_GAME), + LCTL_ESC, NUM_TAB, SYM_SPC, FUNC_ENT, NAV_BSPC, RALT_DEL + ), + + [_NAV] = LAYOUT( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PGDN, KC_PGUP, XXXXXXX, + XXXXXXX, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, LALT(KC_UP), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_INS, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LALT(KC_DOWN), KC_HOME, KC_END, KC_APP, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX + ), + + [_NUMBER] = LAYOUT( + KC_BSLS, KC_7, KC_8, KC_9, KC_0, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_LCTL, KC_COMM, KC_4, KC_5, KC_6, KC_LBRC, XXXXXXX, KC_RSFT, KC_RCTL, KC_LALT, KC_RGUI, XXXXXXX, + KC_ENT, KC_DOT, KC_1, KC_2, KC_3, KC_RBRC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_BSPC, _______, TG(_GAME), XXXXXXX, XXXXXXX, XXXXXXX + ), + + [_SYMBOL] = LAYOUT( + LSFT(KC_BSLS), LSFT(KC_7), LSFT(KC_8), LSFT(KC_9), LSFT(KC_0), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_LCTL, LSFT(KC_COMM), LSFT(KC_4), LSFT(KC_5), LSFT(KC_6), LSFT(KC_LBRC), XXXXXXX, KC_RSFT, KC_RCTL, KC_LALT, KC_RGUI, XXXXXXX, + KC_ENT, LSFT(KC_DOT), LSFT(KC_1), LSFT(KC_2), LSFT(KC_3), LSFT(KC_RBRC), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, KC_BSPC, _______, XXXXXXX, XXXXXXX, XXXXXXX + ), + + [_FUNC] = LAYOUT( + KC_F12, KC_F7, KC_F8, KC_F9, KC_PSCR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_LCTL, KC_F11, KC_F4, KC_F5, KC_F6, KC_PAUS, XXXXXXX, KC_RSFT, KC_RCTL, KC_LALT, KC_RGUI, XXXXXXX, + KC_DEL, KC_F10, KC_F1, KC_F2, KC_F3, KC_CAPS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, KC_MNXT, KC_MPLY, _______, XXXXXXX, XXXXXXX + ) +}; + +bool get_tapping_force_hold(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + // allow multiple space, backspace, delete + case SYM_SPC: + case NAV_BSPC: + case RALT_DEL: + return false; + default: + return true; + } +} + +uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { + // different tapping term for different fingers + switch (keycode) { + // pinkies + case HOME_A: + case HOME_SCLN: + return TAPPING_TERM + 70; + // ring + case HOME_S: + case HOME_L: + return TAPPING_TERM + 40; + // middle + case HOME_D: + case HOME_K: + return TAPPING_TERM + 20; + // index and thumb + default: + return TAPPING_TERM; + } +} + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [_QWERTY] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_GAME] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_NAV] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT) }, + [_NUMBER] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT) }, + [_SYMBOL] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT) }, + [_FUNC] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT) } +}; +#endif // ENCODER_MAP_ENABLE + +#if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_LAYERS) + +const rgblight_segment_t PROGMEM game_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 1, HSV_ORANGE}); +const rgblight_segment_t PROGMEM capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 1, HSV_PURPLE}); +const rgblight_segment_t PROGMEM capslockword_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 1, HSV_MAGENTA}); +const rgblight_segment_t* const PROGMEM rgb_layers[] = RGBLIGHT_LAYERS_LIST(game_layer, capslock_layer, capslockword_layer); + +bool led_update_user(led_t led_state) { + rgblight_set_layer_state(1, led_state.caps_lock); + return true; +} + +layer_state_t layer_state_set_user(layer_state_t state) { + rgblight_set_layer_state(0, layer_state_cmp(state, _GAME)); + return state; +} + +void caps_word_set_user(bool active) { + rgblight_set_layer_state(2, active); +} + +void keyboard_post_init_user(void) { + rgblight_layers = rgb_layers; +} + +#endif // defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_LAYERS) + +#ifdef OLED_ENABLE + +void render_layer(void) { + switch (get_highest_layer(layer_state)) { + case _NUMBER: + oled_write_ln_P(PSTR("NMBR"), false); + break; + case _SYMBOL: + oled_write_ln_P(PSTR("SMBL"), false); + break; + case _NAV: + oled_write_ln_P(PSTR("NAV"), false); + break; + case _FUNC: + oled_write_ln_P(PSTR("FUNC"), false); + break; + default: + oled_write_ln_P(PSTR(" "), false); + break; + } +} + +bool oled_task_user(void) { + render_layer(); + return true; +} + +#endif // OLED_ENABLE + diff --git a/keyboards/pica40/keymaps/zzeneg/rules.mk b/keyboards/pica40/keymaps/zzeneg/rules.mk new file mode 100644 index 000000000000..afd8d2c6bf7a --- /dev/null +++ b/keyboards/pica40/keymaps/zzeneg/rules.mk @@ -0,0 +1,2 @@ +CAPS_WORD_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/pica40/readme.md b/keyboards/pica40/readme.md new file mode 100644 index 000000000000..c9efb58d92c0 --- /dev/null +++ b/keyboards/pica40/readme.md @@ -0,0 +1,29 @@ +# pica40 + +![pica40](https://i.imgur.com/CKImjAPh.jpg) + +A family of 40-key split ortholinear keyboards with rotary encoder. + +- Keyboard Maintainer: [zzeneg](https://github.com/zzeneg) +- Hardware Supported: Pica40 PCBs, Pro Micro (rev1), XIAO RP2040/nRF52840 (rev2) +- Hardware Availability: [GitHub](https://github.com/zzeneg/pica40) + +Make example for this keyboard (after setting up your build environment): + + make pica40:default + make pica40/rev1:default + +Flashing example for this keyboard: + + make pica40:default:flash + make pica40/rev1:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## 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/pica40/rev1/config.h b/keyboards/pica40/rev1/config.h new file mode 100644 index 000000000000..09c481a9fffc --- /dev/null +++ b/keyboards/pica40/rev1/config.h @@ -0,0 +1,9 @@ +// Copyright 2022 zzeneg (@zzeneg) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#ifdef RGBLIGHT_ENABLE +# define RGBLIGHT_DISABLE_KEYCODES // disable keycodes for RGB Light controls, only status LED is supported +# define PICA40_RGBLIGHT_TIMEOUT 5 // turn RGB off after N minutes +#endif diff --git a/keyboards/pica40/rev1/info.json b/keyboards/pica40/rev1/info.json new file mode 100644 index 000000000000..8e4e64618de1 --- /dev/null +++ b/keyboards/pica40/rev1/info.json @@ -0,0 +1,39 @@ +{ + "processor": "atmega32u4", + "bootloader": "caterina", + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["D2", "B5", "B4", "E6", "D7"], + "rows": ["B1", "B3", "B2", "B6", "F4", "F5", "F6", "F7"] + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "mousekey": true, + "extrakey": true, + "encoder": true, + "oled": true, + "rgblight": true, + "nkro": true + }, + "rgblight": { + "led_count": 1, + "pin": "D3", + "layers": { + "enabled": true, + "max": 3 + } + }, + "encoder": { + "rotary": [{ "pin_a": "C6", "pin_b": "D4" }] + }, + "usb": { + "device_version": "1.0.0", + "pid": "0x0841", + "vid": "0xFEED" + }, + "build": { + "lto": true + } +} diff --git a/keyboards/pica40/rev1/rev1.c b/keyboards/pica40/rev1/rev1.c new file mode 100644 index 000000000000..f008e4857a1d --- /dev/null +++ b/keyboards/pica40/rev1/rev1.c @@ -0,0 +1,91 @@ +// Copyright 2022 zzeneg (@zzeneg) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "rev1.h" + +#ifdef PICA40_RGBLIGHT_TIMEOUT + +uint16_t check_rgblight_timer = 0; +uint16_t idle_timer = 0; +uint8_t counter = 0; + +void housekeeping_task_kb(void) { + if (timer_elapsed(check_rgblight_timer) > 1000) { + check_rgblight_timer = timer_read(); + + if (rgblight_is_enabled() && timer_elapsed(idle_timer) > 10000) { + idle_timer = timer_read(); + counter++; + } + + if (rgblight_is_enabled() && counter > PICA40_RGBLIGHT_TIMEOUT * 6) { + counter = 0; + rgblight_disable_noeeprom(); + } + } + + housekeeping_task_user(); +} + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed && timer_elapsed(idle_timer) > 1000) { + idle_timer = timer_read(); + counter = 0; + if (!rgblight_is_enabled()) { + rgblight_enable_noeeprom(); + } + } + + return process_record_user(keycode, record); +} + +void keyboard_post_init_kb(void) { + check_rgblight_timer = timer_read(); + idle_timer = timer_read(); + rgblight_enable_noeeprom(); + + keyboard_post_init_user(); +} + + +#endif // PICA40_RGBLIGHT_TIMEOUT + +#ifdef OLED_ENABLE + +oled_rotation_t oled_init_kb(oled_rotation_t rotation) { + return OLED_ROTATION_270; +} + +void render_mods(uint8_t modifiers) { + oled_write_ln_P((modifiers & MOD_MASK_CTRL) ? PSTR("Ctrl") : PSTR(" "), false); + oled_write_ln_P((modifiers & MOD_MASK_ALT) ? PSTR("Alt") : PSTR(" "), false); + oled_write_ln_P((modifiers & MOD_MASK_SHIFT) ? PSTR("Shft") : PSTR(" "), false); + oled_write_ln_P((modifiers & MOD_MASK_GUI) ? PSTR("GUI") : PSTR(" "), false); +} + +bool oled_task_kb(void) { + // display's top is hidden by cover + oled_write_ln_P(PSTR(" "), false); + oled_write_ln_P(PSTR(" "), false); + oled_write_ln_P(PSTR(" "), false); + + if (!oled_task_user()) return false; + + render_mods(get_mods()); + + return true; +} + +#endif // OLED_ENABLE + +#ifdef ENCODER_ENABLE + +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) return false; + + tap_code(clockwise ? KC_VOLU : KC_VOLD); + + return false; +} + +#endif // ENCODER_ENABLE diff --git a/keyboards/pica40/rev1/rev1.h b/keyboards/pica40/rev1/rev1.h new file mode 100644 index 000000000000..964038eefb4d --- /dev/null +++ b/keyboards/pica40/rev1/rev1.h @@ -0,0 +1,6 @@ +// Copyright 2022 zzeneg (@zzeneg) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "quantum.h" diff --git a/keyboards/pica40/rev1/rules.mk b/keyboards/pica40/rev1/rules.mk new file mode 100644 index 000000000000..2e3ef9fb844d --- /dev/null +++ b/keyboards/pica40/rev1/rules.mk @@ -0,0 +1 @@ +OLED_DRIVER = SSD1306 diff --git a/keyboards/pica40/rev2/config.h b/keyboards/pica40/rev2/config.h new file mode 100644 index 000000000000..1a59bee3ddea --- /dev/null +++ b/keyboards/pica40/rev2/config.h @@ -0,0 +1,19 @@ +// Copyright 2022 zzeneg (@zzeneg) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define SERIAL_USART_TX_PIN GP0 + +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17 +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U + +#ifdef RGBLIGHT_ENABLE +# define RGBLIGHT_DISABLE_KEYCODES // disable keycodes for RGB Light controls, only status LED is supported +# define PICA40_RGBLIGHT_TIMEOUT 5 // turn RGB off after N minutes +#endif + +#ifdef ENCODER_ENABLE +# define SPLIT_TRANSACTION_IDS_KB ENCODER_SYNC +#endif diff --git a/keyboards/pica40/rev2/info.json b/keyboards/pica40/rev2/info.json new file mode 100644 index 000000000000..99540900b944 --- /dev/null +++ b/keyboards/pica40/rev2/info.json @@ -0,0 +1,53 @@ +{ + "processor": "RP2040", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["GP26", "GP27", "GP28", "GP29", "GP6"], + "rows": ["GP3", "GP4", "GP2", "GP1"] + }, + "indicators": { + "num_lock": "GP17", + "caps_lock": "GP16", + "scroll_lock": "GP25", + "on_state": 0 + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "mousekey": true, + "extrakey": true, + "encoder": true, + "rgblight": true, + "nkro": true + }, + "rgblight": { + "led_count": 1, + "pin": "GP12", + "split": true, + "layers": { + "enabled": true, + "max": 3 + } + }, + "split": { + "enabled": true, + "encoder": { + "right": { + "rotary": [] + } + } + }, + "encoder": { + "rotary": [{ "pin_a": "GP7", "pin_b": "GP7" }] + }, + "usb": { + "device_version": "1.0.0", + "pid": "0x0842", + "vid": "0xFEED" + }, + "build": { + "lto": true + } +} diff --git a/keyboards/pica40/rev2/post_rules.mk b/keyboards/pica40/rev2/post_rules.mk new file mode 100644 index 000000000000..e4dda1925baa --- /dev/null +++ b/keyboards/pica40/rev2/post_rules.mk @@ -0,0 +1,8 @@ +# if ENCODER_ENABLE is set, add defines but avoid adding encoder.c as it's replaced by custom code in rev2.c +ifeq ($(strip $(ENCODER_ENABLE)), yes) + ENCODER_ENABLE := no + OPT_DEFS += -DENCODER_ENABLE + ifeq ($(strip $(ENCODER_MAP_ENABLE)), yes) + OPT_DEFS += -DENCODER_MAP_ENABLE + endif +endif diff --git a/keyboards/pica40/rev2/rev2.c b/keyboards/pica40/rev2/rev2.c new file mode 100644 index 000000000000..c585ec56d665 --- /dev/null +++ b/keyboards/pica40/rev2/rev2.c @@ -0,0 +1,189 @@ +// Copyright 2022 zzeneg (@zzeneg) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "rev2.h" + +#ifdef ENCODER_ENABLE // code based on encoder.c + +static const pin_t encoders_pad_a[] = ENCODERS_PAD_A; +static const pin_t encoders_pad_b[] = ENCODERS_PAD_B; + +static int8_t encoder_LUT[] = {0, -1, 1, 0, 1, 0, 0, -1, -1, 0, 0, 1, 0, 1, -1, 0}; +static uint8_t encoder_state = 3; +static int8_t encoder_pulses = 0; +static uint8_t encoder_value = 0; + +typedef struct encoder_sync_data { + int value; +} encoder_sync_data; + +// custom handler that returns encoder B pin status from slave side +void encoder_sync_slave_handler(uint8_t in_buflen, const void *in_data, uint8_t out_buflen, void *out_data) { + encoder_sync_data *data = (encoder_sync_data *)out_data; + data->value = readPin(encoders_pad_b[0]); +} + +__attribute__((weak)) bool encoder_update_user(uint8_t index, bool clockwise) { + return true; +} + +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) return false; + + tap_code(clockwise ? KC_VOLU : KC_VOLD); + + return false; +} + +#ifdef ENCODER_MAP_ENABLE +static void encoder_exec_mapping(uint8_t index, bool clockwise) { + action_exec(clockwise ? ENCODER_CW_EVENT(index, true) : ENCODER_CCW_EVENT(index, true)); + wait_ms(ENCODER_MAP_KEY_DELAY); + action_exec(clockwise ? ENCODER_CW_EVENT(index, false) : ENCODER_CCW_EVENT(index, false)); + wait_ms(ENCODER_MAP_KEY_DELAY); +} +#endif // ENCODER_MAP_ENABLE + +void encoder_init(void) { + setPinInputHigh(encoders_pad_a[0]); + setPinInputHigh(encoders_pad_b[0]); + wait_us(100); + transaction_register_rpc(ENCODER_SYNC, encoder_sync_slave_handler); +} + +bool encoder_read(void) { + // ignore if running on slave side + if (!is_keyboard_master()) return false; + + bool changed = false; + encoder_sync_data data = {0}; + // request pin B status from slave side + if (transaction_rpc_recv(ENCODER_SYNC, sizeof(data), &data)) { + uint8_t new_status = (readPin(encoders_pad_a[0]) << 0) | (data.value << 1); + if ((encoder_state & 0x3) != new_status) { + encoder_state <<= 2; + encoder_state |= new_status; + encoder_pulses += encoder_LUT[encoder_state & 0xF]; + + if (encoder_pulses >= ENCODER_RESOLUTION) { + encoder_value++; + changed = true; +#ifdef ENCODER_MAP_ENABLE + encoder_exec_mapping(0, false); +#else // ENCODER_MAP_ENABLE + encoder_update_kb(0, false); +#endif // ENCODER_MAP_ENABLE + } + + if (encoder_pulses <= -ENCODER_RESOLUTION) { + encoder_value--; + changed = true; +#ifdef ENCODER_MAP_ENABLE + encoder_exec_mapping(0, true); +#else // ENCODER_MAP_ENABLE + encoder_update_kb(0, true); +#endif // ENCODER_MAP_ENABLE + } + + encoder_pulses %= ENCODER_RESOLUTION; + } + } + return changed; +} + +// do not use standard split encoder transactions +void encoder_state_raw(uint8_t *slave_state) {} +void encoder_update_raw(uint8_t *slave_state) {} + +#endif // ENCODER_ENABLE + +#ifdef PICA40_RGBLIGHT_TIMEOUT +uint16_t check_rgblight_timer = 0; +uint16_t idle_timer = 0; +int8_t counter = 0; + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed && timer_elapsed(idle_timer) > 1000) { + idle_timer = timer_read(); + counter = 0; + if (!rgblight_is_enabled()) { + rgblight_enable_noeeprom(); + } + } + + return process_record_user(keycode, record); +} + +#endif // PICA40_RGBLIGHT_TIMEOUT + +#if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_LAYERS) +uint16_t check_layer_timer = 0; +bool is_layer_active = false; +bool should_set_rgblight = false; +#endif // defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_LAYERS) + +void keyboard_post_init_kb(void) { + setPinOutput(PICA40_RGB_POWER_PIN); + +#ifdef PICA40_RGBLIGHT_TIMEOUT + idle_timer = timer_read(); + check_rgblight_timer = timer_read(); + rgblight_enable_noeeprom(); +#endif // RGBLIGHT_ENABLE + +#if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_LAYERS) + check_layer_timer = timer_read(); +#endif // defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_LAYERS) + + keyboard_post_init_user(); +} + +void housekeeping_task_kb(void) { +#ifdef PICA40_RGBLIGHT_TIMEOUT + if (is_keyboard_master()) { + if (timer_elapsed(check_rgblight_timer) > 1000) { + check_rgblight_timer = timer_read(); + + if (rgblight_is_enabled() && timer_elapsed(idle_timer) > 10000) { + idle_timer = timer_read(); + counter++; + } + + if (rgblight_is_enabled() && counter > PICA40_RGBLIGHT_TIMEOUT * 6) { + counter = 0; + rgblight_disable_noeeprom(); + } + } + } +#endif // PICA40_RGBLIGHT_TIMEOUT + +#if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_LAYERS) + if (timer_elapsed(check_layer_timer) > 100) { + check_layer_timer = timer_read(); + + if (should_set_rgblight) { + // set in the next housekeeping cycle after setting pin to avoid issues + rgblight_set(); + should_set_rgblight = false; + } + + bool current_is_layer_active = false; + for (uint8_t i = 0; i < RGBLIGHT_MAX_LAYERS; i++) { + current_is_layer_active = current_is_layer_active || rgblight_get_layer_state(i); + } + + if (is_layer_active != current_is_layer_active) { + is_layer_active = current_is_layer_active; + should_set_rgblight = true; + + if (is_layer_active) { + writePinHigh(PICA40_RGB_POWER_PIN); + } else { + writePinLow(PICA40_RGB_POWER_PIN); + } + } + } +#endif // defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_LAYERS) + + housekeeping_task_user(); +} diff --git a/keyboards/pica40/rev2/rev2.h b/keyboards/pica40/rev2/rev2.h new file mode 100644 index 000000000000..473011fbb030 --- /dev/null +++ b/keyboards/pica40/rev2/rev2.h @@ -0,0 +1,22 @@ +// Copyright 2022 zzeneg (@zzeneg) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "quantum.h" +#include "gpio.h" + +// RGB LED support for XIAO RP2040 +#define PICA40_RGB_POWER_PIN GP11 + +// enable custom encoder functionality for Pica40 +#ifdef ENCODER_ENABLE +# include "encoder.h" +# include "transactions.h" +# ifndef ENCODER_MAP_KEY_DELAY +# define ENCODER_MAP_KEY_DELAY 2 +# endif +# ifndef ENCODER_RESOLUTION +# define ENCODER_RESOLUTION 4 +# endif +#endif diff --git a/keyboards/pica40/rev2/rules.mk b/keyboards/pica40/rev2/rules.mk new file mode 100644 index 000000000000..8fb51ec82d52 --- /dev/null +++ b/keyboards/pica40/rev2/rules.mk @@ -0,0 +1,2 @@ +SERIAL_DRIVER = vendor +WS2812_DRIVER = vendor diff --git a/keyboards/pica40/rules.mk b/keyboards/pica40/rules.mk new file mode 100644 index 000000000000..967088971285 --- /dev/null +++ b/keyboards/pica40/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = pica40/rev2 From 5fa2aab41e295f05bcfd14e93745b51b15938015 Mon Sep 17 00:00:00 2001 From: HorrorTroll Date: Fri, 30 Dec 2022 07:59:55 +0700 Subject: [PATCH 009/139] Added support keyboard Pila87 / XM87 PRO (#18919) --- keyboards/horrortroll/readme.md | 2 +- keyboards/phage_studio/pila87/config.h | 100 ++++++++ keyboards/phage_studio/pila87/info.json | 109 ++++++++ .../pila87/keymaps/default/keymap.c | 175 +++++++++++++ .../pila87/keymaps/horrortroll/config.h | 26 ++ .../pila87/keymaps/horrortroll/keymap.c | 88 +++++++ .../pila87/keymaps/horrortroll/keymap_stuff.h | 236 ++++++++++++++++++ .../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 | 36 +++ .../pila87/keymaps/horrortroll/led/kitt.c | 68 +++++ .../horrortroll/led/random_breath_rainbow.c | 55 ++++ .../pila87/keymaps/horrortroll/readme.md | 9 + .../keymaps/horrortroll/rgb_matrix_user.inc | 15 ++ .../pila87/keymaps/horrortroll/rules.mk | 3 + .../phage_studio/pila87/keymaps/via/keymap.c | 175 +++++++++++++ .../phage_studio/pila87/keymaps/via/rules.mk | 1 + keyboards/phage_studio/pila87/pila87.c | 65 +++++ keyboards/phage_studio/pila87/pila87.h | 55 ++++ keyboards/phage_studio/pila87/readme.md | 34 +++ keyboards/phage_studio/pila87/rules.mk | 38 +++ 22 files changed, 1412 insertions(+), 1 deletion(-) create mode 100644 keyboards/phage_studio/pila87/config.h create mode 100644 keyboards/phage_studio/pila87/info.json create mode 100644 keyboards/phage_studio/pila87/keymaps/default/keymap.c create mode 100644 keyboards/phage_studio/pila87/keymaps/horrortroll/config.h create mode 100644 keyboards/phage_studio/pila87/keymaps/horrortroll/keymap.c create mode 100644 keyboards/phage_studio/pila87/keymaps/horrortroll/keymap_stuff.h create mode 100644 keyboards/phage_studio/pila87/keymaps/horrortroll/led/cool_diagonal.c create mode 100644 keyboards/phage_studio/pila87/keymaps/horrortroll/led/custom_gradient.c create mode 100644 keyboards/phage_studio/pila87/keymaps/horrortroll/led/flower_blooming/flower_blooming.c create mode 100644 keyboards/phage_studio/pila87/keymaps/horrortroll/led/flower_blooming/flower_blooming.h create mode 100644 keyboards/phage_studio/pila87/keymaps/horrortroll/led/kitt.c create mode 100644 keyboards/phage_studio/pila87/keymaps/horrortroll/led/random_breath_rainbow.c create mode 100644 keyboards/phage_studio/pila87/keymaps/horrortroll/readme.md create mode 100644 keyboards/phage_studio/pila87/keymaps/horrortroll/rgb_matrix_user.inc create mode 100644 keyboards/phage_studio/pila87/keymaps/horrortroll/rules.mk create mode 100644 keyboards/phage_studio/pila87/keymaps/via/keymap.c create mode 100644 keyboards/phage_studio/pila87/keymaps/via/rules.mk create mode 100644 keyboards/phage_studio/pila87/pila87.c create mode 100644 keyboards/phage_studio/pila87/pila87.h create mode 100644 keyboards/phage_studio/pila87/readme.md create mode 100644 keyboards/phage_studio/pila87/rules.mk diff --git a/keyboards/horrortroll/readme.md b/keyboards/horrortroll/readme.md index b6f5e8420b4e..67347a3c1623 100644 --- a/keyboards/horrortroll/readme.md +++ b/keyboards/horrortroll/readme.md @@ -25,7 +25,7 @@ | [KB16-01 (Rev 2)](https://github.com/qmk/qmk_firmware/tree/master/keyboards/doio/kb16/rev2) | APM32F103CBT6 | TKL | 0xD010 | 0x1601 | Hotswap, RGB Matrix, 3 Encoder, OLED 128x32 | | [M63 RGB](https://github.com/qmk/qmk_firmware/blob/master/keyboards/mss_studio/m63_rgb) | STM32F072CBU6 | 60% | 0x4D4B | 0x6063 | Hotswap, RGB Matrix & Underglow | | [M64 RGB](https://github.com/qmk/qmk_firmware/blob/master/keyboards/mss_studio/m64_rgb) | STM32F072CBU6 | 60% | 0x4D4B | 0x6064 | Hotswap, RGB Matrix & Underglow | - + | [Pila87](https://github.com/qmk/qmk_firmware/blob/master/keyboards/phage_studio/pila87) | CKS32F103CBT6 | TKL | 0x5048 | 0x5887 | Hotswap, RGB Matrix & Underglow (External) | ## Contact me if you have any problem diff --git a/keyboards/phage_studio/pila87/config.h b/keyboards/phage_studio/pila87/config.h new file mode 100644 index 000000000000..819f74818014 --- /dev/null +++ b/keyboards/phage_studio/pila87/config.h @@ -0,0 +1,100 @@ +/* Copyright 2022 Phage Studio + * 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 . + */ + +#pragma once + +#include "config_common.h" + +/* Key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 17 + +/* Key matrix pins */ +#define MATRIX_ROW_PINS { A1, A2, A10, A9, A8, C9 } +#define MATRIX_COL_PINS { B5, B4, B6, C0, C1, C2, C3, B7, B3, D2, C12, C11, C10, A15, C15, C13, A3 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Bootmagic reset */ +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 + +/* LED Indicator */ +#define LED_CAPS_LOCK_PIN C14 +#define LED_SCROLL_LOCK_PIN A0 + +#ifdef RGB_MATRIX_ENABLE + #define RGB_MATRIX_LED_COUNT 91 + #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 + #define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS + #define RGB_MATRIX_KEYPRESSES + #define RGB_MATRIX_FRAMEBUFFER_EFFECTS + + /* RGB Matrix config */ + #define RGB_DI_PIN A4 + + /* RGB Matrix effect */ + #define ENABLE_RGB_MATRIX_ALPHAS_MODS + #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN + #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT + #define ENABLE_RGB_MATRIX_BREATHING + #define ENABLE_RGB_MATRIX_BAND_SAT + #define ENABLE_RGB_MATRIX_BAND_VAL + #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT + #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL + #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT + #define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL + #define ENABLE_RGB_MATRIX_CYCLE_ALL + #define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT + #define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN + #define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON + #define ENABLE_RGB_MATRIX_CYCLE_OUT_IN + #define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL + #define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL + #define ENABLE_RGB_MATRIX_CYCLE_SPIRAL + #define ENABLE_RGB_MATRIX_DUAL_BEACON + #define ENABLE_RGB_MATRIX_RAINBOW_BEACON + #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS + #define ENABLE_RGB_MATRIX_RAINDROPS + #define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS + #define ENABLE_RGB_MATRIX_HUE_BREATHING + #define ENABLE_RGB_MATRIX_HUE_PENDULUM + #define ENABLE_RGB_MATRIX_HUE_WAVE + #define ENABLE_RGB_MATRIX_PIXEL_RAIN + #define ENABLE_RGB_MATRIX_PIXEL_FLOW + #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL + + #define ENABLE_RGB_MATRIX_TYPING_HEATMAP + #define ENABLE_RGB_MATRIX_DIGITAL_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/phage_studio/pila87/info.json b/keyboards/phage_studio/pila87/info.json new file mode 100644 index 000000000000..920c1d8c0a80 --- /dev/null +++ b/keyboards/phage_studio/pila87/info.json @@ -0,0 +1,109 @@ +{ + "keyboard_name": "Pila87 / XM87 Pro", + "manufacturer": "Phage Studio", + "url": "https://item.taobao.com/item.htm?spm=a21wu.12321156-tw.0.0.22283343ytyJJv&id=649438917009", + "maintainer": "Phage Studio", + "usb": { + "vid": "0x5048", + "pid": "0x5887", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT_tkl_ansi": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":2, "y":0}, + {"label":"F2", "x":3, "y":0}, + {"label":"F3", "x":4, "y":0}, + {"label":"F4", "x":5, "y":0}, + {"label":"F5", "x":6.5, "y":0}, + {"label":"F6", "x":7.5, "y":0}, + {"label":"F7", "x":8.5, "y":0}, + {"label":"F8", "x":9.5, "y":0}, + {"label":"F9", "x":11, "y":0}, + {"label":"F10", "x":12, "y":0}, + {"label":"F11", "x":13, "y":0}, + {"label":"F12", "x":14, "y":0}, + {"label":"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.25}, + {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, + {"label":"Space", "x":3.75, "y":5.5, "w":6.25}, + {"label":"Alt", "x":10, "y":5.5, "w":1.25}, + {"label":"Fn", "x":11.25, "y":5.5, "w":1.25}, + {"label":"App", "x":12.5, "y":5.5, "w":1.25}, + {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, + {"label":"\u2190", "x":15.25, "y":5.5}, + {"label":"\u2193", "x":16.25, "y":5.5}, + {"label":"\u2192", "x":17.25, "y":5.5} + ] + } + } +} diff --git a/keyboards/phage_studio/pila87/keymaps/default/keymap.c b/keyboards/phage_studio/pila87/keymaps/default/keymap.c new file mode 100644 index 000000000000..f2de085ca6fc --- /dev/null +++ b/keyboards/phage_studio/pila87/keymaps/default/keymap.c @@ -0,0 +1,175 @@ +/* Copyright 2022 Phage Studio + * 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 QMK_KEYBOARD_H + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. + +enum layer_names { + _BASE, + _FN1, + _FN2, + _FN3 +}; + +// 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 │ - │ = │ Backsp│ │Ins│Hom│PgU│ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + │ Tab │ q │ w │ e │ r │ t │ y │ u │ i │ o │ p │ [ │ ] │ \ │ │Del│End│PgD│ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + │ Caps │ a │ s │ d │ f │ g │ h │ j │ k │ l │ ; │ ' │ Enter │ + ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ + │ LShift │ z │ x │ c │ v │ b │ n │ m │ , │ . │ / │ RShift │ │ ↑ │ + ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ + │LCrl│GUI │LAlt│ Space │RAlt│ Fn │ App│RCrl│ │ ← │ ↓ │ → │ + └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ + ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + │ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ _ │ + │ │ │ │ │ │ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ { │ } │ | │ │ │ │ │ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ : │ " │ │ + ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ + │ LShift │ Z │ X │ C │ V │ B │ N │ M │ < │ > │ ? │ RShift │ │ │ + ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ + └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + [_BASE] = LAYOUT_tkl_ansi( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + +/* + ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + │Rst│ │Tog│Mod│Hui│Hud│ │Sai│Sad│Vai│Vad│ │Spi│Spd│Est│NKO│ │ │ │ │ + └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + │ │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│ │ │ │ │ │ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + │ │ │Bks│ │ │ │ │ │ ↑ │ │ │ │ │ │ │ │ │ │ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + │ │Ins│Del│Hom│End│PgU│PgD│ ← │ ↓ │ → │ │ │ │ + ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ + │ │ │ │ │ │ Fn │ │ │ │ │ │ │ + └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + [_FN1] = LAYOUT_tkl_ansi( + QK_BOOT, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, _______, NK_TOGG, _______, _______, _______, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, + _______, _______, KC_BSPC, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_INS, KC_DEL, KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +/* + ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ + ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ + └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + [_FN2] = LAYOUT_tkl_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +/* + ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ + ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ + └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + [_FN3] = LAYOUT_tkl_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case RGB_TOG: + if (record->event.pressed) { + switch (rgb_matrix_get_flags()) { + case LED_FLAG_ALL: { + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_set_color_all(0, 0, 0); + } + break; + default: { + rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_enable_noeeprom(); + } + break; + } + } + return false; + } + return true; +} diff --git a/keyboards/phage_studio/pila87/keymaps/horrortroll/config.h b/keyboards/phage_studio/pila87/keymaps/horrortroll/config.h new file mode 100644 index 000000000000..04ddd591a588 --- /dev/null +++ b/keyboards/phage_studio/pila87/keymaps/horrortroll/config.h @@ -0,0 +1,26 @@ +/* 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 . + */ + +#pragma once + +/* Forcing to use NKRO instead 6KRO */ +#define FORCE_NKRO + +#define DYNAMIC_KEYMAP_LAYER_COUNT 2 + +#ifdef RGB_MATRIX_ENABLE + #define RGB_MATRIX_SOLID_REACTIVE_GRADIENT_MODE +#endif diff --git a/keyboards/phage_studio/pila87/keymaps/horrortroll/keymap.c b/keyboards/phage_studio/pila87/keymaps/horrortroll/keymap.c new file mode 100644 index 000000000000..5528e2805547 --- /dev/null +++ b/keyboards/phage_studio/pila87/keymaps/horrortroll/keymap.c @@ -0,0 +1,88 @@ +/* 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 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 │ - │ = │ Backsp│ │Ins│Hom│PgU│ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + │ Tab │ q │ w │ e │ r │ t │ y │ u │ i │ o │ p │ [ │ ] │ \ │ │Del│End│PgD│ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + │ Caps │ a │ s │ d │ f │ g │ h │ j │ k │ l │ ; │ ' │ Enter │ + ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ + │ LShift │ z │ x │ c │ v │ b │ n │ m │ , │ . │ / │ RShift │ │ ↑ │ + ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ + │LCrl│GUI │LAlt│ Space │RAlt│ Fn │ App│RCrl│ │ ← │ ↓ │ → │ + └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ + ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + │ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ _ │ + │ │ │ │ │ │ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ { │ } │ | │ │ │ │ │ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ : │ " │ │ + ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ + │ LShift │ Z │ X │ C │ V │ B │ N │ M │ < │ > │ ? │ RShift │ │ │ + ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ + └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + [_BASE] = LAYOUT_tkl_ansi( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + +/* + ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + │Rst│ │MeP│VoD│VoU│Mut│ │Stp│Prv│Ply│Nxt│ │Mai│Hom│Cal│Sch│ │Rod│Mod│Tog│ + └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + │ │ │ │ │ │ │ │ │ │ │ │Spd│Spi│ │ │C_E│ │ │ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + │ │1Hd│1Hi│1Sd│1Si│1Vd│1Vi│ │ │ │ │ │ │ │ │ │ │Wve│ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + │ │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_tkl_ansi( + QK_BOOT, 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, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 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/phage_studio/pila87/keymaps/horrortroll/keymap_stuff.h b/keyboards/phage_studio/pila87/keymaps/horrortroll/keymap_stuff.h new file mode 100644 index 000000000000..e850ccfc2e51 --- /dev/null +++ b/keyboards/phage_studio/pila87/keymaps/horrortroll/keymap_stuff.h @@ -0,0 +1,236 @@ +/* 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 +#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 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 +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *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_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_NONE); + rgb_matrix_set_color_all(0, 0, 0); + } + break; + default: { + rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_enable_noeeprom(); + } + break; + } + } + return false; + } + return true; +} + +bool 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 (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(40, rgb.r, rgb.g, rgb.b); + } else if (!(rgb_matrix_get_flags() & LED_FLAG_INDICATOR)) { + rgb_matrix_set_color(40, 0, 0, 0); + } + + if (host_keyboard_led_state().scroll_lock) { + rgb_matrix_set_color(89, rgb.r, rgb.g, rgb.b); + } else if (!(rgb_matrix_get_flags() & LED_FLAG_INDICATOR)) { + rgb_matrix_set_color(89, 0, 0, 0); + } + return false; +} diff --git a/keyboards/phage_studio/pila87/keymaps/horrortroll/led/cool_diagonal.c b/keyboards/phage_studio/pila87/keymaps/horrortroll/led/cool_diagonal.c new file mode 100644 index 000000000000..900130aba5d5 --- /dev/null +++ b/keyboards/phage_studio/pila87/keymaps/horrortroll/led/cool_diagonal.c @@ -0,0 +1,22 @@ +/* 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 . + */ + +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); } diff --git a/keyboards/phage_studio/pila87/keymaps/horrortroll/led/custom_gradient.c b/keyboards/phage_studio/pila87/keymaps/horrortroll/led/custom_gradient.c new file mode 100644 index 000000000000..af6173d25092 --- /dev/null +++ b/keyboards/phage_studio/pila87/keymaps/horrortroll/led/custom_gradient.c @@ -0,0 +1,74 @@ +/* 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 . + */ + +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 < RGB_MATRIX_LED_COUNT; +} diff --git a/keyboards/phage_studio/pila87/keymaps/horrortroll/led/flower_blooming/flower_blooming.c b/keyboards/phage_studio/pila87/keymaps/horrortroll/led/flower_blooming/flower_blooming.c new file mode 100644 index 000000000000..add83149ccc5 --- /dev/null +++ b/keyboards/phage_studio/pila87/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/phage_studio/pila87/keymaps/horrortroll/led/flower_blooming/flower_blooming.h b/keyboards/phage_studio/pila87/keymaps/horrortroll/led/flower_blooming/flower_blooming.h new file mode 100644 index 000000000000..ccdaa70d9793 --- /dev/null +++ b/keyboards/phage_studio/pila87/keymaps/horrortroll/led/flower_blooming/flower_blooming.h @@ -0,0 +1,36 @@ +/* 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 . + */ + +#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/phage_studio/pila87/keymaps/horrortroll/led/kitt.c b/keyboards/phage_studio/pila87/keymaps/horrortroll/led/kitt.c new file mode 100644 index 000000000000..432eb117f2f8 --- /dev/null +++ b/keyboards/phage_studio/pila87/keymaps/horrortroll/led/kitt.c @@ -0,0 +1,68 @@ +/* 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 . + */ + +// 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 = 29; + +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); } diff --git a/keyboards/phage_studio/pila87/keymaps/horrortroll/led/random_breath_rainbow.c b/keyboards/phage_studio/pila87/keymaps/horrortroll/led/random_breath_rainbow.c new file mode 100644 index 000000000000..ba1ca55faf81 --- /dev/null +++ b/keyboards/phage_studio/pila87/keymaps/horrortroll/led/random_breath_rainbow.c @@ -0,0 +1,55 @@ +/* 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 . + */ + +static uint8_t offset[RGB_MATRIX_LED_COUNT]; + +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() % RGB_MATRIX_LED_COUNT, 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 < RGB_MATRIX_LED_COUNT; +} diff --git a/keyboards/phage_studio/pila87/keymaps/horrortroll/readme.md b/keyboards/phage_studio/pila87/keymaps/horrortroll/readme.md new file mode 100644 index 000000000000..8e0d1974faa9 --- /dev/null +++ b/keyboards/phage_studio/pila87/keymaps/horrortroll/readme.md @@ -0,0 +1,9 @@ +# My personal keymap with VIA and custom LED + +### Custom LED effect list: + +- 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 +- 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/phage_studio/pila87/keymaps/horrortroll/rgb_matrix_user.inc b/keyboards/phage_studio/pila87/keymaps/horrortroll/rgb_matrix_user.inc new file mode 100644 index 000000000000..1e09e3f0c12d --- /dev/null +++ b/keyboards/phage_studio/pila87/keymaps/horrortroll/rgb_matrix_user.inc @@ -0,0 +1,15 @@ +RGB_MATRIX_EFFECT(CUSTOM_GRADIENT) +RGB_MATRIX_EFFECT(COOL_DIAGONAL) +RGB_MATRIX_EFFECT(FLOWER_BLOOMING) +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/kitt.c" +#include "led/random_breath_rainbow.c" + +#endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS diff --git a/keyboards/phage_studio/pila87/keymaps/horrortroll/rules.mk b/keyboards/phage_studio/pila87/keymaps/horrortroll/rules.mk new file mode 100644 index 000000000000..d475530c871c --- /dev/null +++ b/keyboards/phage_studio/pila87/keymaps/horrortroll/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes + +RGB_MATRIX_CUSTOM_USER = yes diff --git a/keyboards/phage_studio/pila87/keymaps/via/keymap.c b/keyboards/phage_studio/pila87/keymaps/via/keymap.c new file mode 100644 index 000000000000..f2de085ca6fc --- /dev/null +++ b/keyboards/phage_studio/pila87/keymaps/via/keymap.c @@ -0,0 +1,175 @@ +/* Copyright 2022 Phage Studio + * 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 QMK_KEYBOARD_H + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. + +enum layer_names { + _BASE, + _FN1, + _FN2, + _FN3 +}; + +// 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 │ - │ = │ Backsp│ │Ins│Hom│PgU│ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + │ Tab │ q │ w │ e │ r │ t │ y │ u │ i │ o │ p │ [ │ ] │ \ │ │Del│End│PgD│ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + │ Caps │ a │ s │ d │ f │ g │ h │ j │ k │ l │ ; │ ' │ Enter │ + ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ + │ LShift │ z │ x │ c │ v │ b │ n │ m │ , │ . │ / │ RShift │ │ ↑ │ + ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ + │LCrl│GUI │LAlt│ Space │RAlt│ Fn │ App│RCrl│ │ ← │ ↓ │ → │ + └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ + ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + │ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ _ │ + │ │ │ │ │ │ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ { │ } │ | │ │ │ │ │ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ : │ " │ │ + ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ + │ LShift │ Z │ X │ C │ V │ B │ N │ M │ < │ > │ ? │ RShift │ │ │ + ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ + └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + [_BASE] = LAYOUT_tkl_ansi( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + +/* + ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + │Rst│ │Tog│Mod│Hui│Hud│ │Sai│Sad│Vai│Vad│ │Spi│Spd│Est│NKO│ │ │ │ │ + └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + │ │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│ │ │ │ │ │ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + │ │ │Bks│ │ │ │ │ │ ↑ │ │ │ │ │ │ │ │ │ │ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + │ │Ins│Del│Hom│End│PgU│PgD│ ← │ ↓ │ → │ │ │ │ + ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ + │ │ │ │ │ │ Fn │ │ │ │ │ │ │ + └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + [_FN1] = LAYOUT_tkl_ansi( + QK_BOOT, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, _______, NK_TOGG, _______, _______, _______, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, + _______, _______, KC_BSPC, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_INS, KC_DEL, KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +/* + ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ + ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ + └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + [_FN2] = LAYOUT_tkl_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +/* + ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ + ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ + └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + [_FN3] = LAYOUT_tkl_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case RGB_TOG: + if (record->event.pressed) { + switch (rgb_matrix_get_flags()) { + case LED_FLAG_ALL: { + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_set_color_all(0, 0, 0); + } + break; + default: { + rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_enable_noeeprom(); + } + break; + } + } + return false; + } + return true; +} diff --git a/keyboards/phage_studio/pila87/keymaps/via/rules.mk b/keyboards/phage_studio/pila87/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/phage_studio/pila87/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/phage_studio/pila87/pila87.c b/keyboards/phage_studio/pila87/pila87.c new file mode 100644 index 000000000000..c379be228ea0 --- /dev/null +++ b/keyboards/phage_studio/pila87/pila87.c @@ -0,0 +1,65 @@ +/* Copyright 2022 Phage Studio + * 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 "pila87.h" + +#include +#include +#include + +#ifdef RGB_MATRIX_ENABLE +led_config_t g_led_config = { { + { 75, NO_LED, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90 }, + { 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58 }, + { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 }, + { 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, NO_LED, 28, NO_LED, NO_LED, NO_LED }, + { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, NO_LED, NO_LED, 26, NO_LED, 27, NO_LED }, + { 14, 13, 12, 11, 10, 9, 8, 7, NO_LED, NO_LED, 6, 5, 4, 3, 2, 1, 0 } +}, { + {224, 64}, {211, 64}, {198, 64}, {180, 64}, {164, 64}, {148, 64}, {131, 64}, {110, 61}, {104, 61}, {83 , 64}, {65 , 61}, {58 , 61}, {34 , 64}, {18 , 64}, {2 , 64}, + {8 , 52}, {29 , 52}, {42 , 52}, {55 , 52}, {68 , 52}, {81 , 52}, {94 , 52}, {107, 52}, {120, 52}, {133, 52}, {146, 52}, {170, 52}, {211, 52}, + {174, 41}, {153, 41}, {140, 41}, {127, 41}, {114, 41}, {101, 41}, {88 , 41}, {75 , 41}, {62 , 41}, {49 , 41}, {36 , 41}, {23 , 41}, {5 , 41}, + {3 , 29}, {19 , 29}, {32 , 29}, {45 , 29}, {58 , 29}, {71 , 29}, {84 , 29}, {97 , 29}, {110, 29}, {123, 29}, {136, 29}, {149, 29}, {162, 29}, {179, 29}, {198, 29}, {211, 29}, {224, 29}, + {224, 17}, {211, 17}, {198, 17}, {175, 17}, {156, 17}, {143, 17}, {130, 17}, {117, 17}, {104, 17}, {91 , 17}, {78 , 17}, {65 , 17}, {52 , 17}, {39 , 17}, {26 , 17}, {13 , 17}, {0 , 17}, + {0 , 0}, {26 , 0}, {39 , 0}, {52 , 0}, {65 , 0}, {84 , 0}, {97 , 0}, {110, 0}, {123, 0}, {143, 0}, {156, 0}, {169, 0}, {182, 0}, {198, 0}, {211, 0}, {224, 0}, +}, { + 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 4, 1, 1, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 4, +} }; +#endif + +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } + + 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 (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(40, rgb.r, rgb.g, rgb.b); + } else if (!(rgb_matrix_get_flags() & LED_FLAG_INDICATOR)) { + rgb_matrix_set_color(40, 0, 0, 0); + } + return true; +} diff --git a/keyboards/phage_studio/pila87/pila87.h b/keyboards/phage_studio/pila87/pila87.h new file mode 100644 index 000000000000..771410333b32 --- /dev/null +++ b/keyboards/phage_studio/pila87/pila87.h @@ -0,0 +1,55 @@ +/* Copyright 2022 Phage Studio + * 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 . + */ + +#pragma once + +#include "quantum.h" + +#define XXX KC_NO + +/* ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + * │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 │ │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 │4D │ │4F │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ + * │50 │51 │52 │55 │5A │5B │5C │5D │ │5E │5F │5G │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ + */ + +#define LAYOUT_tkl_ansi( \ + 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, K3D, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4D, K4F, \ + K50, K51, K52, K55, K5A, K5B, K5C, K5D, K5E, K5F, K5G \ +)\ +{\ + { K00, XXX, 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, XXX, K3D, XXX, XXX, XXX }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, XXX, XXX, K4D, XXX, K4F, XXX }, \ + { K50, K51, K52, XXX, XXX, K55, XXX, XXX, XXX, XXX, K5A, K5B, K5C, K5D, K5E, K5F, K5G } \ +} diff --git a/keyboards/phage_studio/pila87/readme.md b/keyboards/phage_studio/pila87/readme.md new file mode 100644 index 000000000000..68e08893ed37 --- /dev/null +++ b/keyboards/phage_studio/pila87/readme.md @@ -0,0 +1,34 @@ +# Pila87 / XM87 Pro + +![Pila87](https://i.imgur.com/rLLJemMh.jpg) + +A TKL keyboard made by 小淼外设 (Phage Studio), which controlled by an CKS32F103RBT6 (clone STM32F103RBT6) chipset. The keyboard features per-key RGB, 3 external RGB underglow ports. + +* Keyboard Maintainer: Phage Studio +* Hardware Supported: CKS32F103RBT6 (clone STM32F103RBT6) +* Hardware Availability: From 小淼外设 on Taobao + +Make example for this keyboard (after setting up your build environment): + + make phage_studio/pila87:default + +Flashing example for this keyboard: + + make phage_studio/pila87: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). + +## Warning + +Before using this QMK firmware, you need these thing below: + +* 1 Quartz Crystal (SMD 3225) 8 Mhz +* 2 Capacitor 0603 18pF (or 22pF) +* 1 ST-Link v2 to connect SWD and flash STM32duino (Maple 003). If you don't know how to flash, please read this guide: [Click here](https://github.com/qmk/qmk_firmware/blob/master/docs/isp_flashing_guide.md#flashing-stm32duino-bootloader) + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (B key) and plug in the keyboard +* **Keycode in layout**: Press the key mapped to `RESET` if it is available diff --git a/keyboards/phage_studio/pila87/rules.mk b/keyboards/phage_studio/pila87/rules.mk new file mode 100644 index 000000000000..489fa401672a --- /dev/null +++ b/keyboards/phage_studio/pila87/rules.mk @@ -0,0 +1,38 @@ +# MCU name +MCU = STM32F103 + +# Bootloader selection +# Cannot use `BOOTLOADER = stm32duino` due to the need to override +# `MCU_LDSCRIPT`, therefore all parameters need to be specified here manually. +OPT_DEFS += -DBOOTLOADER_STM32DUINO +MCU_LDSCRIPT = STM32F103xB_stm32duino_bootloader +BOARD = STM32_F103_STM32DUINO +BOOTLOADER_TYPE = stm32duino +DFU_ARGS = -d 1EAF:0003 -a 2 -R +DFU_SUFFIX_ARGS = -v 1EAF -p 0003 + +# 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 + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE + +# RGB Matrix enabled +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812 + +# Wear-levelling driver +EEPROM_DRIVER = wear_leveling +WEAR_LEVELING_DRIVER = embedded_flash + +LAYOUTS = tkl_ansi From 590c889537949f2926e9a6428e8b91deec94076c Mon Sep 17 00:00:00 2001 From: Yizhen Liu <62583086+edwardslau@users.noreply.github.com> Date: Thu, 29 Dec 2022 17:01:32 -0800 Subject: [PATCH 010/139] [keyboard]Add Graystudio Space65 R3 (#18909) Co-authored-by: Drashna Jaelre --- keyboards/gray_studio/space65r3/chconf.h | 29 +++ keyboards/gray_studio/space65r3/config.h | 94 +++++++ keyboards/gray_studio/space65r3/info.json | 243 ++++++++++++++++++ .../space65r3/keymaps/default/keymap.c | 49 ++++ .../space65r3/keymaps/via/keymap.c | 49 ++++ .../space65r3/keymaps/via/rules.mk | 1 + keyboards/gray_studio/space65r3/readme.md | 20 ++ keyboards/gray_studio/space65r3/rules.mk | 23 ++ keyboards/gray_studio/space65r3/space65r3.c | 3 + keyboards/gray_studio/space65r3/space65r3.h | 57 ++++ 10 files changed, 568 insertions(+) create mode 100644 keyboards/gray_studio/space65r3/chconf.h create mode 100644 keyboards/gray_studio/space65r3/config.h create mode 100644 keyboards/gray_studio/space65r3/info.json create mode 100644 keyboards/gray_studio/space65r3/keymaps/default/keymap.c create mode 100644 keyboards/gray_studio/space65r3/keymaps/via/keymap.c create mode 100644 keyboards/gray_studio/space65r3/keymaps/via/rules.mk create mode 100644 keyboards/gray_studio/space65r3/readme.md create mode 100644 keyboards/gray_studio/space65r3/rules.mk create mode 100644 keyboards/gray_studio/space65r3/space65r3.c create mode 100644 keyboards/gray_studio/space65r3/space65r3.h diff --git a/keyboards/gray_studio/space65r3/chconf.h b/keyboards/gray_studio/space65r3/chconf.h new file mode 100644 index 000000000000..c92d2a276dee --- /dev/null +++ b/keyboards/gray_studio/space65r3/chconf.h @@ -0,0 +1,29 @@ +/* Copyright 2020 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/handwired/pill60/bluepill/chconf.h -r platforms/chibios/common/configs/chconf.h` + */ + +#pragma once + +#define CH_CFG_ST_TIMEDELTA 0 + +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE + +#include_next + diff --git a/keyboards/gray_studio/space65r3/config.h b/keyboards/gray_studio/space65r3/config.h new file mode 100644 index 000000000000..725a442f3925 --- /dev/null +++ b/keyboards/gray_studio/space65r3/config.h @@ -0,0 +1,94 @@ +// Copyright 2022 Yizhen Liu (@edwardslau) +// SPDX-License-Identifier: GPL-2.0 +#pragma once + +#include "config_common.h" + +/* 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 { A6, B12, A2, A0, A1 } +#define MATRIX_COL_PINS { A3, A5, A4, B9, B8, B7, B6, B5, B4, B3, A15, B0, A8, B15, B14, B13 } + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW +/* + * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. + */ +#define RGB_DI_PIN B10 +#define RGBLIGHT_LAYERS +#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF +#ifdef RGB_DI_PIN +#define RGBLED_NUM 5 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#define RGBLIGHT_LIMIT_VAL 200 /* The maximum brightness level */ +#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +// /*== all animations enable ==*/ +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_SNAKE +#define RGBLIGHT_EFFECT_KNIGHT +#define RGBLIGHT_EFFECT_CHRISTMAS +#define RGBLIGHT_EFFECT_STATIC_GRADIENT +#define RGBLIGHT_EFFECT_RGB_TEST +#define RGBLIGHT_EFFECT_ALTERNATING +#define RGBLIGHT_EFFECT_TWINKLE +#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_MOOD +#endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* Bootmagic Lite key configuration */ +// #define BOOTMAGIC_LITE_ROW 0 +// #define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/gray_studio/space65r3/info.json b/keyboards/gray_studio/space65r3/info.json new file mode 100644 index 000000000000..5a4a3abf92a7 --- /dev/null +++ b/keyboards/gray_studio/space65r3/info.json @@ -0,0 +1,243 @@ +{ + "keyboard_name": "Space65R3", + "url": "https://graystudio.site/en/works/space65r3/", + "maintainer": "edwardslau", + "manufacturer":"GrayStudio", + "usb": { + "vid":"0x4753", + "pid":"0x3003", + "device_version": "0.0.3", + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "y": 0}, + {"x": 14, "y": 0}, + {"x": 15, "y": 0}, + + {"x": 0, "y": 1, "w": 1.5}, + {"x": 1.5, "y": 1}, + {"x": 2.5, "y": 1}, + {"x": 3.5, "y": 1}, + {"x": 4.5, "y": 1}, + {"x": 5.5, "y": 1}, + {"x": 6.5, "y": 1}, + {"x": 7.5, "y": 1}, + {"x": 8.5, "y": 1}, + {"x": 9.5, "y": 1}, + {"x": 10.5, "y": 1}, + {"x": 11.5, "y": 1}, + {"x": 12.5, "y": 1}, + {"x": 13.5, "y": 1, "w": 1.5}, + {"x": 15, "y": 1}, + + {"x": 0, "y": 2, "w": 1.75}, + {"x": 1.75, "y": 2}, + {"x": 2.75, "y": 2}, + {"x": 3.75, "y": 2}, + {"x": 4.75, "y": 2}, + {"x": 5.75, "y": 2}, + {"x": 6.75, "y": 2}, + {"x": 7.75, "y": 2}, + {"x": 8.75, "y": 2}, + {"x": 9.75, "y": 2}, + {"x": 10.75, "y": 2}, + {"x": 11.75, "y": 2}, + {"x": 12.75, "y": 2, "w": 2.25}, + {"x": 15, "y": 2}, + + {"x": 0, "y": 3, "w": 1.25}, + {"x": 1.25, "y": 3}, + {"x": 2.25, "y": 3}, + {"x": 3.25, "y": 3}, + {"x": 4.25, "y": 3}, + {"x": 5.25, "y": 3}, + {"x": 6.25, "y": 3}, + {"x": 7.25, "y": 3}, + {"x": 8.25, "y": 3}, + {"x": 9.25, "y": 3}, + {"x": 10.25, "y": 3}, + {"x": 11.25, "y": 3}, + {"x": 12.25, "y": 3, "w": 1.75}, + {"x": 14, "y": 3}, + {"x": 15, "y": 3}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + + {"x": 13, "y": 4}, + {"x": 14, "y": 4}, + {"x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "y": 0, "w": 2}, + {"x": 15, "y": 0}, + + {"x": 0, "y": 1, "w": 1.5}, + {"x": 1.5, "y": 1}, + {"x": 2.5, "y": 1}, + {"x": 3.5, "y": 1}, + {"x": 4.5, "y": 1}, + {"x": 5.5, "y": 1}, + {"x": 6.5, "y": 1}, + {"x": 7.5, "y": 1}, + {"x": 8.5, "y": 1}, + {"x": 9.5, "y": 1}, + {"x": 10.5, "y": 1}, + {"x": 11.5, "y": 1}, + {"x": 12.5, "y": 1}, + {"x": 13.5, "y": 1, "w": 1.5}, + {"x": 15, "y": 1}, + + {"x": 0, "y": 2, "w": 1.75}, + {"x": 1.75, "y": 2}, + {"x": 2.75, "y": 2}, + {"x": 3.75, "y": 2}, + {"x": 4.75, "y": 2}, + {"x": 5.75, "y": 2}, + {"x": 6.75, "y": 2}, + {"x": 7.75, "y": 2}, + {"x": 8.75, "y": 2}, + {"x": 9.75, "y": 2}, + {"x": 10.75, "y": 2}, + {"x": 11.75, "y": 2}, + {"x": 12.75, "y": 2, "w": 2.25}, + {"x": 15, "y": 2}, + + {"x": 0, "y": 3, "w": 2.25}, + {"x": 2.25, "y": 3}, + {"x": 3.25, "y": 3}, + {"x": 4.25, "y": 3}, + {"x": 5.25, "y": 3}, + {"x": 6.25, "y": 3}, + {"x": 7.25, "y": 3}, + {"x": 8.25, "y": 3}, + {"x": 9.25, "y": 3}, + {"x": 10.25, "y": 3}, + {"x": 11.25, "y": 3}, + {"x": 12.25, "y": 3, "w": 1.75}, + {"x": 14, "y": 3}, + {"x": 15, "y": 3}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + + {"x": 13, "y": 4}, + {"x": 14, "y": 4}, + {"x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "y": 0, "w": 2}, + {"x": 15, "y": 0}, + + {"x": 0, "y": 1, "w": 1.5}, + {"x": 1.5, "y": 1}, + {"x": 2.5, "y": 1}, + {"x": 3.5, "y": 1}, + {"x": 4.5, "y": 1}, + {"x": 5.5, "y": 1}, + {"x": 6.5, "y": 1}, + {"x": 7.5, "y": 1}, + {"x": 8.5, "y": 1}, + {"x": 9.5, "y": 1}, + {"x": 10.5, "y": 1}, + {"x": 11.5, "y": 1}, + {"x": 12.5, "y": 1}, + {"x": 15, "y": 1}, + + {"x": 0, "y": 2, "w": 1.75}, + {"x": 1.75, "y": 2}, + {"x": 2.75, "y": 2}, + {"x": 3.75, "y": 2}, + {"x": 4.75, "y": 2}, + {"x": 5.75, "y": 2}, + {"x": 6.75, "y": 2}, + {"x": 7.75, "y": 2}, + {"x": 8.75, "y": 2}, + {"x": 9.75, "y": 2}, + {"x": 10.75, "y": 2}, + {"x": 11.75, "y": 2}, + {"x": 12.75, "y": 2}, + {"x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"x": 15, "y": 2}, + + {"x": 0, "y": 3, "w": 1.25}, + {"x": 1.25, "y": 3}, + {"x": 2.25, "y": 3}, + {"x": 3.25, "y": 3}, + {"x": 4.25, "y": 3}, + {"x": 5.25, "y": 3}, + {"x": 6.25, "y": 3}, + {"x": 7.25, "y": 3}, + {"x": 8.25, "y": 3}, + {"x": 9.25, "y": 3}, + {"x": 10.25, "y": 3}, + {"x": 11.25, "y": 3}, + {"x": 12.25, "y": 3, "w": 1.75}, + {"x": 14, "y": 3}, + {"x": 15, "y": 3}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + {"x": 13, "y": 4}, + {"x": 14, "y": 4}, + {"x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/gray_studio/space65r3/keymaps/default/keymap.c b/keyboards/gray_studio/space65r3/keymaps/default/keymap.c new file mode 100644 index 000000000000..93dcb0f9a423 --- /dev/null +++ b/keyboards/gray_studio/space65r3/keymaps/default/keymap.c @@ -0,0 +1,49 @@ +// Copyright 2022 Yizhen Liu (@edwardslau) +// SPDX-License-Identifier: GPL-2.0 +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_HOME, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; +const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0,2, HSV_WHITE} +); +const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( + my_capslock_layer +); + +void keyboard_post_init_user(void) { + // Enable the LED layers + rgblight_layers = my_rgb_layers; +} +bool led_update_user(led_t led_state) { + rgblight_set_layer_state(0, led_state.caps_lock); + return true; +} diff --git a/keyboards/gray_studio/space65r3/keymaps/via/keymap.c b/keyboards/gray_studio/space65r3/keymaps/via/keymap.c new file mode 100644 index 000000000000..93dcb0f9a423 --- /dev/null +++ b/keyboards/gray_studio/space65r3/keymaps/via/keymap.c @@ -0,0 +1,49 @@ +// Copyright 2022 Yizhen Liu (@edwardslau) +// SPDX-License-Identifier: GPL-2.0 +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_HOME, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; +const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0,2, HSV_WHITE} +); +const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( + my_capslock_layer +); + +void keyboard_post_init_user(void) { + // Enable the LED layers + rgblight_layers = my_rgb_layers; +} +bool led_update_user(led_t led_state) { + rgblight_set_layer_state(0, led_state.caps_lock); + return true; +} diff --git a/keyboards/gray_studio/space65r3/keymaps/via/rules.mk b/keyboards/gray_studio/space65r3/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/gray_studio/space65r3/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/gray_studio/space65r3/readme.md b/keyboards/gray_studio/space65r3/readme.md new file mode 100644 index 000000000000..4f89d3851a5b --- /dev/null +++ b/keyboards/gray_studio/space65r3/readme.md @@ -0,0 +1,20 @@ +# Gray Studio 65 R3 + +A 65% keyboard by Graystudio. PCB designed and manufactured by DEMO Studio. + +* Keyboard Maintainer: [edwardslau](https://github.com/edwardslau) +* Hardware Supported: Space65 R3 +* Hardware Availability: [Graystudio.club](https://graystudio.club/products/gb-space60-%E2%85%B2) + +Make example for this keyboard (after setting up your build environment): + + make gray_studio space65r3:default + +Flashing example for this keyboard: + + make gray_studio space65r3: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). \ No newline at end of file diff --git a/keyboards/gray_studio/space65r3/rules.mk b/keyboards/gray_studio/space65r3/rules.mk new file mode 100644 index 000000000000..1d1c49183e7c --- /dev/null +++ b/keyboards/gray_studio/space65r3/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = STM32F103 + +# Bootloader selection +BOOTLOADER = stm32duino + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output on port C6 + +LAYOUTS = 65_ansi_blocker 65_iso_blocker diff --git a/keyboards/gray_studio/space65r3/space65r3.c b/keyboards/gray_studio/space65r3/space65r3.c new file mode 100644 index 000000000000..8cc0c7ad3eba --- /dev/null +++ b/keyboards/gray_studio/space65r3/space65r3.c @@ -0,0 +1,3 @@ +// Copyright 2022 Yizhen Liu (@edwardslau) +// SPDX-License-Identifier: GPL-2.0 +#include "space65r3.h" diff --git a/keyboards/gray_studio/space65r3/space65r3.h b/keyboards/gray_studio/space65r3/space65r3.h new file mode 100644 index 000000000000..05ca1b686c9c --- /dev/null +++ b/keyboards/gray_studio/space65r3/space65r3.h @@ -0,0 +1,57 @@ +// Copyright 2022 Yizhen Liu (@edwardslau) +// SPDX-License-Identifier: GPL-2.0 +#pragma once + +#include "quantum.h" + +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + 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, k3F, \ + k40, k41, k43, k47, k4A, k4B, 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,KC_NO, k47,KC_NO, KC_NO,k4A, k4B, KC_NO, k4D, k4E, k4F }, \ +} + +#define LAYOUT_65_ansi_blocker( \ + 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, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3D, k3E, k3F, \ + k40, k41, k43, k47, k4A, k4B, k4D, k4E, k4F \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, KC_NO, 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, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, KC_NO, k3D, k3E, k3F }, \ + { k40, k41, KC_NO, k43, KC_NO, KC_NO, KC_NO, k47, KC_NO, KC_NO, k4A, k4B, KC_NO, k4D, k4E, k4F }, \ +} + +#define LAYOUT_65_iso_blocker( \ + 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, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, K3F, \ + K40, K41, K43, K47, K4A, K4B, K4D, K4E, K4F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, KC_NO, 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, KC_NO, K47, KC_NO, KC_NO, K4A, K4B, KC_NO, K4D, K4E, K4F }, \ +} From 943aae85d5edfbcc7277d5ca5fc2867c4132a5e6 Mon Sep 17 00:00:00 2001 From: BBBNBBB <110104157+BBBNBBB@users.noreply.github.com> Date: Sat, 31 Dec 2022 21:23:17 +0000 Subject: [PATCH 011/139] Fixes unicode_map declaration example (#19450) If the previous example was used the incorrect codepoints are produced. Changes the order of arguments the declaration of the unicode_map --- docs/feature_unicode.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/feature_unicode.md b/docs/feature_unicode.md index a93e9ad2bab4..f6ef70d57d02 100644 --- a/docs/feature_unicode.md +++ b/docs/feature_unicode.md @@ -51,7 +51,7 @@ enum unicode_names { SNEK }; -const uint32_t PROGMEM unicode_map[] = { +const uint32_t unicode_map[] PROGMEM = { [BANG] = 0x203D, // ‽ [IRONY] = 0x2E2E, // ⸮ [SNEK] = 0x1F40D, // 🐍 From 20bafb931340e29af11fbc8ba5fba818df92adf4 Mon Sep 17 00:00:00 2001 From: Jesus Climent Date: Sat, 31 Dec 2022 19:38:44 -0500 Subject: [PATCH 012/139] Atreyu rev2 (#19443) --- keyboards/atreyu/atreyu.h | 2 + keyboards/atreyu/rev2/config.h | 70 ++++++++++++++++++++++++++++++ keyboards/atreyu/rev2/info.json | 77 +++++++++++++++++++++++++++++++++ keyboards/atreyu/rev2/rev2.c | 41 ++++++++++++++++++ keyboards/atreyu/rev2/rev2.h | 40 +++++++++++++++++ keyboards/atreyu/rev2/rules.mk | 1 + 6 files changed, 231 insertions(+) create mode 100644 keyboards/atreyu/rev2/config.h create mode 100644 keyboards/atreyu/rev2/info.json create mode 100644 keyboards/atreyu/rev2/rev2.c create mode 100644 keyboards/atreyu/rev2/rev2.h create mode 100644 keyboards/atreyu/rev2/rules.mk diff --git a/keyboards/atreyu/atreyu.h b/keyboards/atreyu/atreyu.h index 92471092ef6c..64db24a4eea5 100644 --- a/keyboards/atreyu/atreyu.h +++ b/keyboards/atreyu/atreyu.h @@ -18,4 +18,6 @@ #if defined(KEYBOARD_atreyu_rev1) # include "rev1.h" +#elif defined(KEYBOARD_atreyu_rev2) +# include "rev2.h" #endif diff --git a/keyboards/atreyu/rev2/config.h b/keyboards/atreyu/rev2/config.h new file mode 100644 index 000000000000..c87807dee9d5 --- /dev/null +++ b/keyboards/atreyu/rev2/config.h @@ -0,0 +1,70 @@ +/* Copyright 2022 Jesus Climent (@climent) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "config_common.h" + +/* key matrix size */ +#define MATRIX_ROWS 10 +#define MATRIX_COLS 6 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { D7, E6, B4, B5, F6, F7, B1, B3, B6, B2 } +#define MATRIX_COL_PINS { F4, F5, C6, D4, D2, D3 } + +/* encoder support */ +#define ENCODERS_PAD_A { D5, D5 } +#define ENCODERS_PAD_B { B7, C7 } +#define ENCODER_RESOLUTION 4 + +/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */ +#define DIODE_DIRECTION COL2ROW + +/* 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 + +/* + * 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/atreyu/rev2/info.json b/keyboards/atreyu/rev2/info.json new file mode 100644 index 000000000000..45324ce73ea1 --- /dev/null +++ b/keyboards/atreyu/rev2/info.json @@ -0,0 +1,77 @@ +{ + "keyboard_name": "Atreyu", + "manufacturer": "Heyzeus", + "url": "https://github.com/climent/atreyu", + "maintainer": "Jesus Climent ", + "usb": { + "vid": "0xFEED", + "pid": "0x0001", + "device_version": "0.0.2" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"x":0, "y":0.5}, + {"x":1, "y":0.375}, + {"x":2, "y":0.125}, + {"x":3, "y":0}, + {"x":4, "y":0.125}, + {"x":5, "y":0.25}, + {"x":10.5, "y":0.25}, + {"x":11.5, "y":0.125}, + {"x":12.5, "y":0}, + {"x":13.5, "y":0.125}, + {"x":14.5, "y":0.375}, + {"x":15.5, "y":0.5}, + {"x":0, "y":1.5}, + {"x":1, "y":1.375}, + {"x":2, "y":1.125}, + {"x":3, "y":1}, + {"x":4, "y":1.125}, + {"x":5, "y":1.25}, + {"x":10.5, "y":1.25}, + {"x":11.5, "y":1.125}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1.125}, + {"x":14.5, "y":1.375}, + {"x":15.5, "y":1.5}, + {"x":0, "y":2.5}, + {"x":1, "y":2.375}, + {"x":2, "y":2.125}, + {"x":3, "y":2}, + {"x":4, "y":2.125}, + {"x":5, "y":2.25}, + {"x":10.5, "y":2.25}, + {"x":11.5, "y":2.125}, + {"x":12.5, "y":2}, + {"x":13.5, "y":2.125}, + {"x":14.5, "y":2.375}, + {"x":15.5, "y":2.5}, + {"x":0, "y":3.5}, + {"x":1, "y":3.375}, + {"x":2, "y":3.125}, + {"x":3, "y":3}, + {"x":4, "y":3.125}, + {"x":5, "y":3.25}, + {"x":6, "y":2.75}, + {"x":9.5, "y":2.75}, + {"x":10.5, "y":3.25}, + {"x":11.5, "y":3.125}, + {"x":12.5, "y":3}, + {"x":13.5, "y":3.125}, + {"x":14.5, "y":3.375}, + {"x":15.5, "y":3.5}, + {"x":0, "y":4.5}, + {"x":2.5, "y":4.125}, + {"x":3.5, "y":4.15}, + {"x":4.5, "y":4.25}, + {"x":6, "y":4.25, "h":1.25}, + {"x":9.5, "y":4.25, "h":1.25}, + {"x":11, "y":4.25}, + {"x":12, "y":4.15}, + {"x":13, "y":4.125}, + {"x":14.5, "y":4.5} + ] + } + } +} diff --git a/keyboards/atreyu/rev2/rev2.c b/keyboards/atreyu/rev2/rev2.c new file mode 100644 index 000000000000..38d3e9bc0298 --- /dev/null +++ b/keyboards/atreyu/rev2/rev2.c @@ -0,0 +1,41 @@ +/* Copyright 2022 Jesus Climent (@climent) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "rev2.h" + +#ifdef ENCODER_ENABLE +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { + return false; + } + + if (index == 1) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + if (index == 0) { + if (clockwise) { + tap_code(KC_WH_U); + } else { + tap_code(KC_WH_D); + } + } + return true; +} +#endif diff --git a/keyboards/atreyu/rev2/rev2.h b/keyboards/atreyu/rev2/rev2.h new file mode 100644 index 000000000000..4f6852593f24 --- /dev/null +++ b/keyboards/atreyu/rev2/rev2.h @@ -0,0 +1,40 @@ +/* Copyright 2022 Jesus Climent (@climent) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for 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, 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 },\ + { k12, k13, k14, k15, k16, k17 },\ + { k24, k25, k26, k27, k28, k29 },\ + { k36, k37, k38, k39, k40, k41 },\ + { k11, k10, k09, k08, k07, k06 },\ + { k23, k22, k21, k20, k19, k18 },\ + { k35, k34, k33, k32, k31, k30 },\ + { k47, k46, k45, k44, k43, k42 },\ + { k48, k49, k50, k51, k52, k53 },\ + { k59, k58, k57, k56, k55, k54 } \ +} + diff --git a/keyboards/atreyu/rev2/rules.mk b/keyboards/atreyu/rev2/rules.mk new file mode 100644 index 000000000000..6e7633bfe015 --- /dev/null +++ b/keyboards/atreyu/rev2/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank From 53100496c327697cea879cfa2f7235541fdbde47 Mon Sep 17 00:00:00 2001 From: DOIO2022 <116554792+DOIO2022@users.noreply.github.com> Date: Sun, 1 Jan 2023 08:40:01 +0800 Subject: [PATCH 013/139] Add KB30 keyboard (#19395) Co-authored-by: Drashna Jaelre --- keyboards/doio/kb30/chconf.h | 30 ++ keyboards/doio/kb30/config.h | 139 ++++++++++ keyboards/doio/kb30/halconf.h | 34 +++ keyboards/doio/kb30/info.json | 57 ++++ keyboards/doio/kb30/kb30.c | 271 +++++++++++++++++++ keyboards/doio/kb30/kb30.h | 45 +++ keyboards/doio/kb30/keymaps/default/keymap.c | 84 ++++++ keyboards/doio/kb30/keymaps/via/keymap.c | 73 +++++ keyboards/doio/kb30/keymaps/via/rules.mk | 4 + keyboards/doio/kb30/mcuconf.h | 35 +++ keyboards/doio/kb30/rules.mk | 26 ++ 11 files changed, 798 insertions(+) create mode 100644 keyboards/doio/kb30/chconf.h create mode 100644 keyboards/doio/kb30/config.h create mode 100644 keyboards/doio/kb30/halconf.h create mode 100644 keyboards/doio/kb30/info.json create mode 100644 keyboards/doio/kb30/kb30.c create mode 100644 keyboards/doio/kb30/kb30.h create mode 100644 keyboards/doio/kb30/keymaps/default/keymap.c create mode 100644 keyboards/doio/kb30/keymaps/via/keymap.c create mode 100644 keyboards/doio/kb30/keymaps/via/rules.mk create mode 100644 keyboards/doio/kb30/mcuconf.h create mode 100644 keyboards/doio/kb30/rules.mk diff --git a/keyboards/doio/kb30/chconf.h b/keyboards/doio/kb30/chconf.h new file mode 100644 index 000000000000..7d024910fd23 --- /dev/null +++ b/keyboards/doio/kb30/chconf.h @@ -0,0 +1,30 @@ +/* Copyright 2022 DOIO + * Copyright 2022 DOIO2022 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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/doio/kb30/chconf.h -r platforms/chibios/common/configs/chconf.h` + */ + +#pragma once + +#define CH_CFG_ST_TIMEDELTA 0 + +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE + +#include_next + diff --git a/keyboards/doio/kb30/config.h b/keyboards/doio/kb30/config.h new file mode 100644 index 000000000000..21f210940129 --- /dev/null +++ b/keyboards/doio/kb30/config.h @@ -0,0 +1,139 @@ +/* Copyright 2022 DOIO + * Copyright 2022 DOIO2022 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "config_common.h" + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 7 + +#define MATRIX_ROW_PINS { B3, B4, B9, B8, A5, A6 } +#define MATRIX_COL_PINS { B14, B13, B12, B0, A7, A9, A8 } +#define DIODE_DIRECTION COL2ROW // COL2ROW or ROW2COL + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +// #define LED_NUM_LOCK_PIN A8 +// #define LED_CAPS_LOCK_PIN B14 +// #define LED_SCROLL_LOCK_PIN A9 +// #define LED_PIN_ON_STATE 0 + +/* key encoders pins*/ +#define ENCODERS_PAD_A { B5 , A1 , A3 } +#define ENCODERS_PAD_B { B6 , A2 , A4 } +#define ENCODER_RESOLUTIONS \ + { 4, 4, 2 } + +// #define QMK_KEYS_PER_SCAN 12 +// #define FORCE_NKRO + + +/* OLED */ +#ifdef OLED_ENABLE +# define OLED_BRIGHTNESS 5 +# define OLED_TIMEOUT 10000000 +/* Mapping I2C2 for OLED */ +# define I2C1_SCL_PIN B10 +# define I2C1_SDA_PIN B11 +# define I2C_DRIVER I2CD2 +#endif + +#ifdef RGB_MATRIX_ENABLE + /* RGB Matrix config */ + #define RGB_DI_PIN A10 + #define RGB_MATRIX_LED_COUNT 36 + #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 + #define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS + #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_UP_DOWN +# define RGB_DISABLE_WHEN_USB_SUSPENDED +# 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_CYCLE_OUT_IN +#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +#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_FRACTAL +// #define ENABLE_RGB_MATRIX_PIXEL_RAIN +#define ENABLE_RGB_MATRIX_TYPING_HEATMAP +#define ENABLE_RGB_MATRIX_DIGITAL_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 + + + +// #define DYNAMIC_KEYMAP_LAYER_COUNT 4 +/* + * 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/doio/kb30/halconf.h b/keyboards/doio/kb30/halconf.h new file mode 100644 index 000000000000..596b0f613ce7 --- /dev/null +++ b/keyboards/doio/kb30/halconf.h @@ -0,0 +1,34 @@ +/* Copyright 2022 DOIO + * Copyright 2022 DOIO2022 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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/doio/kb30/halconf.h -r platforms/chibios/common/configs/halconf.h` + */ + +#pragma once + +#define HAL_USE_I2C TRUE + +#define HAL_USE_PWM TRUE + +#define HAL_USE_SPI TRUE + +#define HAL_USE_ADC TRUE + +#include_next + diff --git a/keyboards/doio/kb30/info.json b/keyboards/doio/kb30/info.json new file mode 100644 index 000000000000..c8307ce80b1f --- /dev/null +++ b/keyboards/doio/kb30/info.json @@ -0,0 +1,57 @@ +{ + "keyboard_name": "KB30-01", + "manufacturer": "DOIO", + "url": "", + "maintainer": "Alice", + "usb": { + "vid": "0xD010", + "pid": "0x3001", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"K00", "x":0, "y":0}, + {"label":"K01", "x":1, "y":0}, + {"label":"K02", "x":2, "y":0}, + {"label":"K03", "x":3, "y":0}, + {"label":"K04", "x":4.25, "y":0}, + {"label":"K05", "x":5.25, "y":0}, + {"label":"K06", "x":6.25, "y":0}, + + {"label":"K10", "x":0, "y":1}, + {"label":"K11", "x":1, "y":1}, + {"label":"K12", "x":2, "y":1}, + {"label":"K13", "x":3, "y":1, "h":2}, + {"label":"K14", "x":4.25, "y":1}, + {"label":"K15", "x":5.25, "y":1}, + {"label":"K16", "x":6.25, "y":1}, + + {"label":"Encoder 1", "x":8.25, "y":2}, + + {"label":"K20", "x":0, "y":2}, + {"label":"K21", "x":1, "y":2}, + {"label":"K22", "x":2, "y":2}, + {"label":"K23", "x":4.25, "y":2}, + {"label":"K24", "x":5.25, "y":2}, + {"label":"K25", "x":6.25, "y":2}, + + {"label":"Encoder 2", "x":11, "y":2}, + + {"label":"K30", "x":0, "y":3}, + {"label":"K31", "x":1, "y":3}, + {"label":"K32", "x":2, "y":3}, + {"label":"K33", "x":4.25, "y":3, "h":2}, + {"label":"K35", "x":5.25, "y":3}, + + {"label":"Encoder 3", "x":9, "y":4}, + + {"label":"K40", "x":0, "y":4, "w":2}, + {"label":"K41", "x":2, "y":4}, + {"label":"K42", "x":4.25, "y":4}, + {"label":"K43", "x":5.25, "y":4}, + {"label":"K44", "x":6.25, "y":4} + ] + } + } +} diff --git a/keyboards/doio/kb30/kb30.c b/keyboards/doio/kb30/kb30.c new file mode 100644 index 000000000000..3272863ad133 --- /dev/null +++ b/keyboards/doio/kb30/kb30.c @@ -0,0 +1,271 @@ +/* Copyright 2022 DOIO + * Copyright 2022 DOIO2022 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "kb30.h" + + +#ifdef RGB_MATRIX_ENABLE + + led_config_t g_led_config = { { + // Key Matrix to LED Index + { 0, 1, 2, 3, 4, 5, 6}, + { 7, 8, 9, 10, 11, 12, 13}, + { 14, 15, 16, 17, 18, 19, NO_LED }, + { 20, 21, 22, 23, NO_LED, 24, NO_LED}, + { 25, 26, 27, 28, 29, NO_LED, NO_LED}, + { 30, 31, 32, 33, 34, 35} +}, { +{0,0}, {37,0}, {75,0}, {112,0}, {149,0}, {187,0}, {224,0}, +{0,16}, {37,16}, {75,16}, {112,16}, {149,16}, {187,16}, {224,16}, +{0,32}, {37,32}, {75,32}, {112,32}, {149,32}, {187,32}, +{0,48}, {37,48}, {75,48}, {112,48}, {187,48}, +{0,64}, {37,64}, {65,64}, {112,64}, {149,64}, +{187,64}, {173,64}, {186,64}, {198,64}, {211,64},{224,64}, +}, { + 4,4,4,4,4,4,4, + 4,4,4,4,4,4,4, + 4,4,4,4,4,4, + 4,4,4,4,4, + 4,4,4,4,4, + 4,4,4,4,4,4 +} }; +#endif + +/* OLED */ +#ifdef OLED_ENABLE +uint16_t startup_timer = 0; + +oled_rotation_t oled_init_kb(oled_rotation_t rotation) { + startup_timer = timer_read(); + return OLED_ROTATION_90; +} + +static void render_logo(void) { + static const char PROGMEM raw_logo[] = { +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xF8, 0x78, 0x78, 0x78, 0x78, +0x78, 0x78, 0x78, 0x78, 0x78, 0xF8, 0xF8, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xF8, 0xE0, 0xE0, 0xC0, +0xC0, 0xC0, 0xC0, 0xE0, 0xF0, 0xFF, 0x7F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC1, 0xE1, 0xE3, 0xE3, +0xF3, 0xF3, 0xE3, 0xE1, 0xE1, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xFF, 0xFF, 0xC7, 0x03, 0x01, 0x01, +0x01, 0x01, 0x01, 0x01, 0x83, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0F, 0x0F, 0x1F, 0x1E, +0x1E, 0x1E, 0x1E, 0x0F, 0x0F, 0x87, 0x03, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x3C, 0x3C, 0x3C, 0x3C, +0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF0, 0x78, 0x78, +0x78, 0x78, 0x78, 0xF8, 0xF0, 0xE0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xE3, 0xC0, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0xE1, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x07, 0x07, +0x07, 0x07, 0x07, 0x07, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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(raw_logo, sizeof(raw_logo)); +} + +static void render_layer(void) { + + +static const char PROGMEM OLED_LAY0[] = { +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xE0, 0xF0, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, +0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF0, 0xE0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0F, 0x0F, 0x0F, +0x0F, 0x0F, 0x0F, 0x03, 0x07, 0x07, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFC, 0xFC, +0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xF8, 0xF8, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, +0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, +0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x01, 0x01, 0x01, 0xFF, 0xFF, +0x80, 0x00, 0x03, 0x03, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, +0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, +0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xF0, 0xF0, 0xE0, 0xE0, 0xFF, 0xFF, +0xE0, 0xE0, 0xE0, 0xC0, 0xFF, 0xFF, 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, +0x01, 0x01, 0x01, 0x03, 0x03, 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, 0xFF, 0xFF, 0x0F, 0x1E, 0x1E, +0x1E, 0x3C, 0x3C, 0x3C, 0x3C, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x1E, 0x1E, 0x7F, 0x7F, 0x1E, 0x1E, 0x1E, +0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const char PROGMEM OLED_LAY1[] = { +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +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, 0xE0, 0xE0, +0xE0, 0xE0, 0xE0, 0xE8, 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, 0x01, 0x01, 0x01, +0x01, 0x01, 0x01, 0x01, 0x03, 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, 0xE0, 0xF0, 0xF8, 0xFC, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x1E, +0xFE, 0xFE, 0x1E, 0x1E, 0x1E, 0x1E, 0x3E, 0xFC, 0xF8, 0xF0, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0xFC, 0x00, 0x00, 0x00, +0x7F, 0x7F, 0x78, 0x78, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x1F, 0x3F, 0x7F, 0xFF, 0xF8, 0xF8, 0xF8, 0xF3, 0xFF, 0xFF, 0xF0, 0xF0, 0xF0, +0xF0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xFF, 0x7F, 0x3F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, +0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, +0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xF0, 0xF0, 0xE0, 0xE0, 0xFF, 0xFF, +0xE0, 0xE0, 0xE0, 0xC0, 0xFF, 0xFF, 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, +0x01, 0x01, 0x01, 0x03, 0x03, 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, 0xFF, 0xFF, 0x0F, 0x1E, 0x1E, +0x1E, 0x3C, 0x3C, 0x3C, 0x3C, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x1E, 0x1E, 0x7F, 0x7F, 0x1E, 0x1E, 0x1E, +0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const char PROGMEM OLED_LAY2[] = { +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +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, 0xE0, 0xE0, +0xE0, 0xE0, 0xE0, 0xE8, 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, 0x01, 0x01, 0x01, +0x01, 0x01, 0x01, 0x01, 0x03, 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, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, +0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x01, 0x01, 0x01, 0xFF, 0xFF, +0x80, 0x00, 0x03, 0x03, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, +0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, +0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xFC, 0xFE, 0xFF, 0xFF, 0x01, 0x01, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x07, +0x07, 0xFF, 0xFF, 0xFF, 0x07, 0x07, 0x07, 0xFF, 0xFF, 0xFE, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x07, 0x0F, 0x0F, 0x0F, 0x00, 0x00, +0x00, 0x0F, 0x1F, 0x1F, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3C, 0x3C, 0x3C, +0x3C, 0x3C, 0x3C, 0x3C, 0x38, 0x38, 0x38, 0x1F, 0x0F, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x0F, 0x1E, 0x1E, +0x1E, 0x3C, 0x3C, 0x3C, 0x3C, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x1E, 0x1E, 0x7F, 0x7F, 0x1E, 0x1E, 0x1E, +0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const char PROGMEM OLED_LAY3[] = { +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +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, 0xE0, 0xE0, +0xE0, 0xE0, 0xE0, 0xE8, 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, 0x01, 0x01, 0x01, +0x01, 0x01, 0x01, 0x01, 0x03, 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, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, +0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x01, 0x01, 0x01, 0xFF, 0xFF, +0x80, 0x00, 0x03, 0x03, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, +0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, +0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xF0, 0xF0, 0xE0, 0xE0, 0xFF, 0xFF, +0xE0, 0xE0, 0xE0, 0xC0, 0xFF, 0xFF, 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, +0x01, 0x01, 0x01, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xF0, 0xF0, 0xF0, 0x70, 0x70, 0x70, 0x70, 0xF0, 0xF0, +0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xE0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xE0, 0xC0, 0xC0, +0xC0, 0x81, 0x81, 0x81, 0x83, 0x03, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0xE0, 0xE0, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xC1, +0xC1, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, +0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + + switch (get_highest_layer(layer_state)) { + case 0: + oled_write_raw_P(OLED_LAY0,1024); + break; + case 1: + oled_write_raw_P(OLED_LAY1,1024); + break; + case 2: + oled_write_raw_P(OLED_LAY2,1024); + break; + case 3: + oled_write_raw_P(OLED_LAY3,1024); + break; + } +} + +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + + static bool finished_timer = false; + if (!finished_timer && (timer_elapsed(startup_timer) < 3000)) { + render_logo(); + } else { + if (!finished_timer) { + oled_clear(); + finished_timer = true; + } + render_layer(); + } + return false; +} +#endif diff --git a/keyboards/doio/kb30/kb30.h b/keyboards/doio/kb30/kb30.h new file mode 100644 index 000000000000..1a294c973582 --- /dev/null +++ b/keyboards/doio/kb30/kb30.h @@ -0,0 +1,45 @@ +/* Copyright 2022 DOIO + * Copyright 2022 DOIO2022 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ + +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, \ + K10, K11, K12, K13, K14, K15, K16, \ + K20, K21, K22, K23, K24, K25, \ + K30, K31, K32, K33, K35, \ + K40, K41, K42, K43, K44, \ + K54, K55, K56 \ +) { \ + { K00, K01, K02, K03, K04, K05, K06 }, \ + { K10, K11, K12, K13, K14, K15, K16 }, \ + { K20, K21, K22, K23, K24, K25, KC_NO}, \ + { K30, K31, K32, K33, KC_NO, K35, KC_NO}, \ + { K40, K41, K42, K43, K44, KC_NO, KC_NO}, \ + { KC_NO, KC_NO, KC_NO, KC_NO, K54, K55, K56 } \ +} diff --git a/keyboards/doio/kb30/keymaps/default/keymap.c b/keyboards/doio/kb30/keymaps/default/keymap.c new file mode 100644 index 000000000000..6ff863a1033e --- /dev/null +++ b/keyboards/doio/kb30/keymaps/default/keymap.c @@ -0,0 +1,84 @@ +/* Copyright 2022 DOIO + * Copyright 2022 DOIO2022 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 { +_LAY0, +_LAY1, +_LAY2, +_LAY3 +}; + + + + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_LAY0] = LAYOUT( + KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_PSCR, KC_SCRL, KC_PAUSE, + KC_P7, KC_P8, KC_P9, KC_PPLS, KC_INS, KC_HOME, KC_PGUP, + KC_P4, KC_P5, KC_P6, KC_DEL, KC_END, KC_PGDN, + KC_P1, KC_P2, KC_P3, LT(3,KC_PENT), KC_UP, + KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, + KC_MPLY, TO(1), KC_TRNS), + [_LAY1] = 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, TO(2), KC_TRNS), + [_LAY2] = 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, TO(3), KC_TRNS), + [_LAY3] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SAI, RGB_SPI, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUD, RGB_SAD, RGB_SPD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, + KC_TRNS, KC_TRNS, RGB_VAD, RGB_TOG, RGB_VAI, + KC_TRNS, TO(0), KC_TRNS) + +}; + + + + + + + + + + + + + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [_LAY0] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, + [_LAY1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [_LAY2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [_LAY3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, +}; +#endif diff --git a/keyboards/doio/kb30/keymaps/via/keymap.c b/keyboards/doio/kb30/keymaps/via/keymap.c new file mode 100644 index 000000000000..98b5a119c2c4 --- /dev/null +++ b/keyboards/doio/kb30/keymaps/via/keymap.c @@ -0,0 +1,73 @@ +/* Copyright 2022 DOIO + * Copyright 2022 DOIO2022 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 { +_LAY0, +_LAY1, +_LAY2, +_LAY3 +}; + + + + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_LAY0] = LAYOUT( + KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_PSCR, KC_SCRL, KC_PAUSE, + KC_P7, KC_P8, KC_P9, KC_PPLS, KC_INS, KC_HOME, KC_PGUP, + KC_P4, KC_P5, KC_P6, KC_DEL, KC_END, KC_PGDN, + KC_P1, KC_P2, KC_P3, LT(3,KC_PENT), KC_UP, + KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, + KC_MPLY, TO(1), KC_TRNS), + [_LAY1] = 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, TO(2), KC_TRNS), + [_LAY2] = 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, TO(3), KC_TRNS), + [_LAY3] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SAI, RGB_SPI, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUD, RGB_SAD, RGB_SPD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, + KC_TRNS, KC_TRNS, RGB_VAD, RGB_TOG, RGB_VAI, + KC_TRNS, TO(0), KC_TRNS) + +}; + + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [_LAY0] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, + [_LAY1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [_LAY2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [_LAY3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, +}; +#endif diff --git a/keyboards/doio/kb30/keymaps/via/rules.mk b/keyboards/doio/kb30/keymaps/via/rules.mk new file mode 100644 index 000000000000..d76c12896fc0 --- /dev/null +++ b/keyboards/doio/kb30/keymaps/via/rules.mk @@ -0,0 +1,4 @@ +VIA_ENABLE = yes + +# Encoder enabled +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/doio/kb30/mcuconf.h b/keyboards/doio/kb30/mcuconf.h new file mode 100644 index 000000000000..a1a040a2354d --- /dev/null +++ b/keyboards/doio/kb30/mcuconf.h @@ -0,0 +1,35 @@ +/* Copyright 2022 DOIO + * Copyright 2022 DOIO2022 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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/doio/kb30/mcuconf.h -r platforms/chibios/STM32_F103_STM32DUINO/configs/mcuconf.h` + */ + +#pragma once + +#include_next + +#undef STM32_I2C_USE_I2C2 +#define STM32_I2C_USE_I2C2 TRUE + +#undef STM32_PWM_USE_TIM1 +#define STM32_PWM_USE_TIM1 TRUE + +#undef STM32_ADC_USE_ADC1 +#define STM32_ADC_USE_ADC1 TRUE + diff --git a/keyboards/doio/kb30/rules.mk b/keyboards/doio/kb30/rules.mk new file mode 100644 index 000000000000..7d16bb3a10ef --- /dev/null +++ b/keyboards/doio/kb30/rules.mk @@ -0,0 +1,26 @@ +# 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 = 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 +RGB_MATRIX_DRIVER = WS2812 +OLED_ENABLE = yes +OLED_DRIVER = SSD1306 +ENCODER_ENABLE = yes + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE From c7c44de32fee2c793eb2570e1b4d8570792c682f Mon Sep 17 00:00:00 2001 From: TommyZ <60314626+tommyamoszhao@users.noreply.github.com> Date: Sun, 1 Jan 2023 08:41:58 +0800 Subject: [PATCH 014/139] [Keyboard] Add Quarkeys Z60, reorganized keyboard file directory (#19404) Co-authored-by: Joel Challis Co-authored-by: jack <0x6a73@protonmail.com> --- keyboards/quarkeys/z60/hotswap/config.h | 47 ++++++++++ keyboards/quarkeys/z60/hotswap/hotswap.c | 15 ++++ keyboards/quarkeys/z60/hotswap/hotswap.h | 32 +++++++ keyboards/quarkeys/z60/hotswap/info.json | 82 +++++++++++++++++ .../z60/hotswap/keymaps/default/keymap.c | 69 ++++++++++++++ .../quarkeys/z60/hotswap/keymaps/via/keymap.c | 69 ++++++++++++++ .../quarkeys/z60/hotswap/keymaps/via/rules.mk | 1 + keyboards/quarkeys/z60/hotswap/rules.mk | 16 ++++ keyboards/quarkeys/z60/readme.md | 20 +++++ keyboards/quarkeys/z60/solder/config.h | 49 ++++++++++ keyboards/quarkeys/z60/solder/info.json | 86 ++++++++++++++++++ .../z60/solder/keymaps/default/keymap.c | 89 +++++++++++++++++++ .../quarkeys/z60/solder/keymaps/via/keymap.c | 89 +++++++++++++++++++ .../quarkeys/z60/solder/keymaps/via/rules.mk | 1 + keyboards/quarkeys/z60/solder/rules.mk | 16 ++++ keyboards/quarkeys/z60/solder/solder.c | 15 ++++ keyboards/quarkeys/z60/solder/solder.h | 33 +++++++ 17 files changed, 729 insertions(+) create mode 100644 keyboards/quarkeys/z60/hotswap/config.h create mode 100644 keyboards/quarkeys/z60/hotswap/hotswap.c create mode 100644 keyboards/quarkeys/z60/hotswap/hotswap.h create mode 100644 keyboards/quarkeys/z60/hotswap/info.json create mode 100644 keyboards/quarkeys/z60/hotswap/keymaps/default/keymap.c create mode 100644 keyboards/quarkeys/z60/hotswap/keymaps/via/keymap.c create mode 100644 keyboards/quarkeys/z60/hotswap/keymaps/via/rules.mk create mode 100644 keyboards/quarkeys/z60/hotswap/rules.mk create mode 100644 keyboards/quarkeys/z60/readme.md create mode 100644 keyboards/quarkeys/z60/solder/config.h create mode 100644 keyboards/quarkeys/z60/solder/info.json create mode 100644 keyboards/quarkeys/z60/solder/keymaps/default/keymap.c create mode 100644 keyboards/quarkeys/z60/solder/keymaps/via/keymap.c create mode 100644 keyboards/quarkeys/z60/solder/keymaps/via/rules.mk create mode 100644 keyboards/quarkeys/z60/solder/rules.mk create mode 100644 keyboards/quarkeys/z60/solder/solder.c create mode 100644 keyboards/quarkeys/z60/solder/solder.h diff --git a/keyboards/quarkeys/z60/hotswap/config.h b/keyboards/quarkeys/z60/hotswap/config.h new file mode 100644 index 000000000000..1478ca142ef7 --- /dev/null +++ b/keyboards/quarkeys/z60/hotswap/config.h @@ -0,0 +1,47 @@ +/* +/ Copyright 2022 quarkeys +/ This program is free software: you can redistribute it and/or modify +/ it under the terms of the GNU General Public License as published by +/ the Free Software Foundation, either version 2 of the License, or +/ (at your option) any later version. +/ This program is distributed in the hope that it will be useful, +/ but WITHOUT ANY WARRANTY; without even the implied warranty of +/ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/ GNU General Public License for more details. +/ You should have received a copy of the GNU General Public License +/ along with this program. If not, see . +*/ + +#pragma once +#include "config_common.h" + +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 +#define DIODE_DIRECTION COL2ROW + +#define MATRIX_ROW_PINS { B0, B1, B2, B3, B4 } +#define MATRIX_COL_PINS { E6, F0, F7, F1, F6, F5, F4, C7, B7, D5, C6, B6, B5, D7, D4 } + +#define DEBOUNCE 5 + +#define RGB_DI_PIN D6 +#define RGBLED_NUM 80 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#define RGBLIGHT_LIMIT_VAL 140 + +#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_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) + +#define RGBLIGHT_LAYERS +#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF +#define RGBLIGHT_SLEEP diff --git a/keyboards/quarkeys/z60/hotswap/hotswap.c b/keyboards/quarkeys/z60/hotswap/hotswap.c new file mode 100644 index 000000000000..b45286e8ba72 --- /dev/null +++ b/keyboards/quarkeys/z60/hotswap/hotswap.c @@ -0,0 +1,15 @@ +/* +/ Copyright 2022 quarkeys +/ This program is free software: you can redistribute it and/or modify +/ it under the terms of the GNU General Public License as published by +/ the Free Software Foundation, either version 2 of the License, or +/ (at your option) any later version. +/ This program is distributed in the hope that it will be useful, +/ but WITHOUT ANY WARRANTY; without even the implied warranty of +/ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/ GNU General Public License for more details. +/ You should have received a copy of the GNU General Public License +/ along with this program. If not, see . +*/ + +#include "hotswap.h" diff --git a/keyboards/quarkeys/z60/hotswap/hotswap.h b/keyboards/quarkeys/z60/hotswap/hotswap.h new file mode 100644 index 000000000000..25510861cb69 --- /dev/null +++ b/keyboards/quarkeys/z60/hotswap/hotswap.h @@ -0,0 +1,32 @@ +/* +/ Copyright 2022 quarkeys +/ This program is free software: you can redistribute it and/or modify +/ it under the terms of the GNU General Public License as published by +/ the Free Software Foundation, either version 2 of the License, or +/ (at your option) any later version. +/ This program is distributed in the hope that it will be useful, +/ but WITHOUT ANY WARRANTY; without even the implied warranty of +/ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/ GNU General Public License for more details. +/ You should have received a copy of the GNU General Public License +/ along with this program. If not, see . +*/ + +#pragma once +#include "quantum.h" +#define XXXX KC_NO + +#define LAYOUT( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K014, \ + K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ + K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \ + K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314, \ + K400, K402, K403, K407, K411, K413, K414 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, XXXX, K014 }, \ + { K100, XXXX, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ + { K200, XXXX, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, XXXX }, \ + { XXXX, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, XXXX, K313, K314 }, \ + { K400, XXXX, K402, K403, XXXX, XXXX, XXXX, K407, XXXX, XXXX, XXXX, K411, XXXX, K413, K414 } \ +} + diff --git a/keyboards/quarkeys/z60/hotswap/info.json b/keyboards/quarkeys/z60/hotswap/info.json new file mode 100644 index 000000000000..bc8d02841400 --- /dev/null +++ b/keyboards/quarkeys/z60/hotswap/info.json @@ -0,0 +1,82 @@ +{ + "keyboard_name": "Z60 Hotswap", + "manufacturer": "Quarkeys Stuidio", + "url": "www.quarkeys.com", + "maintainer": "TommyZ", + "usb": { + "vid": "0x8490", + "pid": "0x3C02", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT": { + "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":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"{", "x":11.5, "y":1}, + {"label":"}", "x":12.5, "y":1}, + {"label":"|", "x":13.5, "y":1, "w":1.5}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":":", "x":10.75, "y":2}, + {"label":"\"", "x":11.75, "y":2}, + {"label":"Enter", "x":12.75, "y":2, "w":2.25}, + + {"label":"Shift", "x":0, "y":3, "w":2.25}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":"<", "x":9.25, "y":3}, + {"label":">", "x":10.25, "y":3}, + {"label":"?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"Fn", "x":14, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.5}, + {"label":"Win", "x":1.5, "y":4}, + {"label":"Alt", "x":2.5, "y":4, "w":1.5}, + {"x":4, "y":4, "w":7}, + {"label":"Alt", "x":11, "y":4, "w":1.5}, + {"label":"Win", "x":12.5, "y":4}, + {"label":"Ctrl", "x":13.5, "y":4, "w":1.5} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/quarkeys/z60/hotswap/keymaps/default/keymap.c b/keyboards/quarkeys/z60/hotswap/keymaps/default/keymap.c new file mode 100644 index 000000000000..7e546cead32f --- /dev/null +++ b/keyboards/quarkeys/z60/hotswap/keymaps/default/keymap.c @@ -0,0 +1,69 @@ +/* +/ Copyright 2022 quarkeys +/ This program is free software: you can redistribute it and/or modify +/ it under the terms of the GNU General Public License as published by +/ the Free Software Foundation, either version 2 of the License, or +/ (at your option) any later version. +/ This program is distributed in the hope that it will be useful, +/ but WITHOUT ANY WARRANTY; without even the implied warranty of +/ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/ GNU General Public License for more details. +/ You should have received a copy of the GNU General Public License +/ along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_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, RSFT_T(KC_UP), MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, RALT_T(KC_LEFT), RGUI_T(KC_DOWN), RCTL_T(KC_RGHT)), + + [1] = LAYOUT( + QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + [2] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + [3] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; + +const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS({23, 1, HSV_RED}); +const rgblight_segment_t PROGMEM my_ar_numpad_layer[] = RGBLIGHT_LAYER_SEGMENTS({40, 2, HSV_WHITE}); +const rgblight_segment_t PROGMEM my_symbol_layer[] = RGBLIGHT_LAYER_SEGMENTS({26, 2, HSV_WHITE}); +const rgblight_segment_t PROGMEM my_other_layer[] = RGBLIGHT_LAYER_SEGMENTS({13, 2, HSV_WHITE}); + +const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( + my_capslock_layer, // Caplock indicator + my_ar_numpad_layer, // Arrow keys & Numpad, Operator keys, reset key, RGB control and media control + my_symbol_layer, // F1-F12 keys & Symbols + my_other_layer // Self-Defined +); + +void keyboard_post_init_user(void) { + rgblight_layers = my_rgb_layers; +} + +layer_state_t layer_state_set_user(layer_state_t state) { + rgblight_set_layer_state(1, layer_state_cmp(state, 1)); + rgblight_set_layer_state(2, layer_state_cmp(state, 2)); + rgblight_set_layer_state(3, layer_state_cmp(state, 3)); + return state; +} diff --git a/keyboards/quarkeys/z60/hotswap/keymaps/via/keymap.c b/keyboards/quarkeys/z60/hotswap/keymaps/via/keymap.c new file mode 100644 index 000000000000..324a163e5adb --- /dev/null +++ b/keyboards/quarkeys/z60/hotswap/keymaps/via/keymap.c @@ -0,0 +1,69 @@ +/* +/ Copyright 2022 quarkeys +/ This program is free software: you can redistribute it and/or modify +/ it under the terms of the GNU General Public License as published by +/ the Free Software Foundation, either version 2 of the License, or +/ (at your option) any later version. +/ This program is distributed in the hope that it will be useful, +/ but WITHOUT ANY WARRANTY; without even the implied warranty of +/ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/ GNU General Public License for more details. +/ You should have received a copy of the GNU General Public License +/ along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_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, RSFT_T(KC_UP), MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, RALT_T(KC_LEFT), RGUI_T(KC_DOWN), RCTL_T(KC_RGHT)), + + [1] = LAYOUT( + QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + [2] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + [3] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; + +const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS({23, 1, HSV_RED}); +const rgblight_segment_t PROGMEM my_ar_numpad_layer[] = RGBLIGHT_LAYER_SEGMENTS({40, 2, HSV_WHITE}); +const rgblight_segment_t PROGMEM my_symbol_layer[] = RGBLIGHT_LAYER_SEGMENTS({26, 2, HSV_WHITE}); +const rgblight_segment_t PROGMEM my_other_layer[] = RGBLIGHT_LAYER_SEGMENTS({13, 2, HSV_WHITE}); + +const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( + my_capslock_layer, // Caplock indicator + my_ar_numpad_layer, // Arrow keys & Numpad, Operator keys, reset key, RGB control and media control + my_symbol_layer, // F1-F12 keys & Symbols + my_other_layer // Self-Defined +); + +void keyboard_post_init_user(void) { + rgblight_layers = my_rgb_layers; +} + +layer_state_t layer_state_set_user(layer_state_t state) { + rgblight_set_layer_state(1, layer_state_cmp(state, 1)); + rgblight_set_layer_state(2, layer_state_cmp(state, 2)); + rgblight_set_layer_state(3, layer_state_cmp(state, 3)); + return state; +} diff --git a/keyboards/quarkeys/z60/hotswap/keymaps/via/rules.mk b/keyboards/quarkeys/z60/hotswap/keymaps/via/rules.mk new file mode 100644 index 000000000000..036bd6d1c3ec --- /dev/null +++ b/keyboards/quarkeys/z60/hotswap/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/quarkeys/z60/hotswap/rules.mk b/keyboards/quarkeys/z60/hotswap/rules.mk new file mode 100644 index 000000000000..1049ac1af775 --- /dev/null +++ b/keyboards/quarkeys/z60/hotswap/rules.mk @@ -0,0 +1,16 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/quarkeys/z60/readme.md b/keyboards/quarkeys/z60/readme.md new file mode 100644 index 000000000000..abca6e034c9f --- /dev/null +++ b/keyboards/quarkeys/z60/readme.md @@ -0,0 +1,20 @@ +# Quarkeys Z60 Keyboard + +A 60% Gasket keyboard with innovated top enclosure made by Quarkeys, second of out projects. + +* Keyboard Maintainer: [Quarkeys Studio](www.quarkeys.com) +* Hardware Supported: Z60-ACR, Z60-Evolve +* Hardware Specs: Solder version with per-key RGBs, layer & Capslock indicators + Hotswap version with per-key RGBs, layer & Capslock indicators + +Make example for this keyboard solder version keymap(after setting up your build environment): + + make quarkeys/z60/solder:default + +Flashing example for this keyboard: + + make quarkeys/z60/solder:default:flash + +**Bootloader:** Press the `QK_BOOT` keycode at ESC position of layer 1. + +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/quarkeys/z60/solder/config.h b/keyboards/quarkeys/z60/solder/config.h new file mode 100644 index 000000000000..b500a4c18fe3 --- /dev/null +++ b/keyboards/quarkeys/z60/solder/config.h @@ -0,0 +1,49 @@ +/* +/ Copyright 2022 quarkeys +/ This program is free software: you can redistribute it and/or modify +/ it under the terms of the GNU General Public License as published by +/ the Free Software Foundation, either version 2 of the License, or +/ (at your option) any later version. +/ This program is distributed in the hope that it will be useful, +/ but WITHOUT ANY WARRANTY; without even the implied warranty of +/ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/ GNU General Public License for more details. +/ You should have received a copy of the GNU General Public License +/ along with this program. If not, see . +*/ + +#pragma once + +#include "config_common.h" + +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 +#define DIODE_DIRECTION COL2ROW + +#define MATRIX_ROW_PINS { B0, B1, B2, B3, B4 } +#define MATRIX_COL_PINS { E6, F0, F7, F1, F6, F5, F4, C7, B7, D5, C6, B6, B5, D7, D4 } + +#define DEBOUNCE 5 + +#define RGB_DI_PIN D6 +#define RGBLED_NUM 77 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 + +#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_LAYERS +#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF +#define RGBLIGHT_LIMIT_VAL 180 +#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) + +#define RGBLIGHT_SLEEP diff --git a/keyboards/quarkeys/z60/solder/info.json b/keyboards/quarkeys/z60/solder/info.json new file mode 100644 index 000000000000..0921044cf05e --- /dev/null +++ b/keyboards/quarkeys/z60/solder/info.json @@ -0,0 +1,86 @@ +{ + "keyboard_name": "Z60 Solder", + "manufacturer": "Quarkeys Stuidio", + "url": "www.quarkeys.com", + "maintainer": "TommyZ", + "usb": { + "vid": "0x8490", + "pid": "0x3C01", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT": { + "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":"Back", "x":13, "y":0}, + {"label":"Del", "x":14, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"{", "x":11.5, "y":1}, + {"label":"}", "x":12.5, "y":1}, + {"label":"|", "x":13.5, "y":1, "w":1.5}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":":", "x":10.75, "y":2}, + {"label":"\"", "x":11.75, "y":2}, + {"label":"~", "x":12.75, "y":2}, + {"label":"Enter", "x":13.75, "y":2, "w":1.25}, + + {"label":"Shift", "x":0, "y":3, "w":1.25}, + {"label":"|", "x":1.25, "y":3}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":"<", "x":9.25, "y":3}, + {"label":">", "x":10.25, "y":3}, + {"label":"?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"Fn", "x":14, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"label":"Win", "x":1.25, "y":4, "w":1.25}, + {"label":"Alt", "x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"label":"Alt", "x":10, "y":4, "w":1.25}, + {"label":"Win", "x":11.25, "y":4, "w":1.25}, + {"label":"Menu", "x":12.5, "y":4, "w":1.25}, + {"label":"Ctrl", "x":13.75, "y":4, "w":1.25} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/quarkeys/z60/solder/keymaps/default/keymap.c b/keyboards/quarkeys/z60/solder/keymaps/default/keymap.c new file mode 100644 index 000000000000..6bf614d30e72 --- /dev/null +++ b/keyboards/quarkeys/z60/solder/keymaps/default/keymap.c @@ -0,0 +1,89 @@ +/* +/ Copyright 2022 quarkeys +/ This program is free software: you can redistribute it and/or modify +/ it under the terms of the GNU General Public License as published by +/ the Free Software Foundation, either version 2 of the License, or +/ (at your option) any later version. +/ This program is distributed in the hope that it will be useful, +/ but WITHOUT ANY WARRANTY; without even the implied warranty of +/ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/ GNU General Public License for more 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] + * ,--------------------------------------------------------------------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | + | Back | Del | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | { | } | \ | + * |---------+------+------+------+------+------+------+------+------+------+------+------+------+----------| + * | Capslock | A | S | D | F | G | H | J | K | L | ; | " | ~ | Enter | + * |------------+------+------+------+------+------|------+------+------+------+------+------+--------------| + * | SHIFT | \ | Z | X | C | V | B | N | M | , | . | / | Shift | Fn | + * |--------+------+------+------+------+------+------+------+------+------+------+------+-----------+------| + * | Ctrl | Win | ALT | SPACE | ALT | Win | Manu | Ctrl | + * `--------+--------+--------+--------------------------------------------+-------+-------+-------+--------' + */ + [0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_HASH, KC_ENT, + KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_UP), MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(2), RALT_T(KC_LEFT), RGUI_T(KC_DOWN), RCTL_T(KC_RGHT)), + + [1] = LAYOUT( + QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + [2] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + [3] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) + +}; + +const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS({23, 1, HSV_RED}); + +const rgblight_segment_t PROGMEM my_ar_numpad_layer[] = RGBLIGHT_LAYER_SEGMENTS({42, 2, HSV_WHITE}); + +const rgblight_segment_t PROGMEM my_symbol_layer[] = RGBLIGHT_LAYER_SEGMENTS({28, 2, HSV_WHITE}); + +const rgblight_segment_t PROGMEM my_other_layer[] = RGBLIGHT_LAYER_SEGMENTS({15, 2, HSV_WHITE}); + +const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( + my_capslock_layer, + my_ar_numpad_layer, // Arrow keys & Numpad, Operator keys, reset key, RGB control and media control + my_symbol_layer, // F1-F12 keys & Symbols + my_other_layer // Self-Defined +); + +void keyboard_post_init_user(void) { + rgblight_layers = my_rgb_layers; +} + +bool led_update_user(led_t led_state) { + rgblight_set_layer_state(0, led_state.caps_lock); + return true; +} +layer_state_t layer_state_set_user(layer_state_t state) { + rgblight_set_layer_state(1, layer_state_cmp(state, 1)); + rgblight_set_layer_state(2, layer_state_cmp(state, 2)); + rgblight_set_layer_state(3, layer_state_cmp(state, 3)); + return state; +} diff --git a/keyboards/quarkeys/z60/solder/keymaps/via/keymap.c b/keyboards/quarkeys/z60/solder/keymaps/via/keymap.c new file mode 100644 index 000000000000..6bf614d30e72 --- /dev/null +++ b/keyboards/quarkeys/z60/solder/keymaps/via/keymap.c @@ -0,0 +1,89 @@ +/* +/ Copyright 2022 quarkeys +/ This program is free software: you can redistribute it and/or modify +/ it under the terms of the GNU General Public License as published by +/ the Free Software Foundation, either version 2 of the License, or +/ (at your option) any later version. +/ This program is distributed in the hope that it will be useful, +/ but WITHOUT ANY WARRANTY; without even the implied warranty of +/ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/ GNU General Public License for more 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] + * ,--------------------------------------------------------------------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | + | Back | Del | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | { | } | \ | + * |---------+------+------+------+------+------+------+------+------+------+------+------+------+----------| + * | Capslock | A | S | D | F | G | H | J | K | L | ; | " | ~ | Enter | + * |------------+------+------+------+------+------|------+------+------+------+------+------+--------------| + * | SHIFT | \ | Z | X | C | V | B | N | M | , | . | / | Shift | Fn | + * |--------+------+------+------+------+------+------+------+------+------+------+------+-----------+------| + * | Ctrl | Win | ALT | SPACE | ALT | Win | Manu | Ctrl | + * `--------+--------+--------+--------------------------------------------+-------+-------+-------+--------' + */ + [0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_HASH, KC_ENT, + KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_UP), MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(2), RALT_T(KC_LEFT), RGUI_T(KC_DOWN), RCTL_T(KC_RGHT)), + + [1] = LAYOUT( + QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + [2] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + [3] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) + +}; + +const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS({23, 1, HSV_RED}); + +const rgblight_segment_t PROGMEM my_ar_numpad_layer[] = RGBLIGHT_LAYER_SEGMENTS({42, 2, HSV_WHITE}); + +const rgblight_segment_t PROGMEM my_symbol_layer[] = RGBLIGHT_LAYER_SEGMENTS({28, 2, HSV_WHITE}); + +const rgblight_segment_t PROGMEM my_other_layer[] = RGBLIGHT_LAYER_SEGMENTS({15, 2, HSV_WHITE}); + +const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( + my_capslock_layer, + my_ar_numpad_layer, // Arrow keys & Numpad, Operator keys, reset key, RGB control and media control + my_symbol_layer, // F1-F12 keys & Symbols + my_other_layer // Self-Defined +); + +void keyboard_post_init_user(void) { + rgblight_layers = my_rgb_layers; +} + +bool led_update_user(led_t led_state) { + rgblight_set_layer_state(0, led_state.caps_lock); + return true; +} +layer_state_t layer_state_set_user(layer_state_t state) { + rgblight_set_layer_state(1, layer_state_cmp(state, 1)); + rgblight_set_layer_state(2, layer_state_cmp(state, 2)); + rgblight_set_layer_state(3, layer_state_cmp(state, 3)); + return state; +} diff --git a/keyboards/quarkeys/z60/solder/keymaps/via/rules.mk b/keyboards/quarkeys/z60/solder/keymaps/via/rules.mk new file mode 100644 index 000000000000..036bd6d1c3ec --- /dev/null +++ b/keyboards/quarkeys/z60/solder/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/quarkeys/z60/solder/rules.mk b/keyboards/quarkeys/z60/solder/rules.mk new file mode 100644 index 000000000000..181a43452972 --- /dev/null +++ b/keyboards/quarkeys/z60/solder/rules.mk @@ -0,0 +1,16 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/quarkeys/z60/solder/solder.c b/keyboards/quarkeys/z60/solder/solder.c new file mode 100644 index 000000000000..1aacc5168eb2 --- /dev/null +++ b/keyboards/quarkeys/z60/solder/solder.c @@ -0,0 +1,15 @@ +/* +/ Copyright 2022 quarkeys +/ This program is free software: you can redistribute it and/or modify +/ it under the terms of the GNU General Public License as published by +/ the Free Software Foundation, either version 2 of the License, or +/ (at your option) any later version. +/ This program is distributed in the hope that it will be useful, +/ but WITHOUT ANY WARRANTY; without even the implied warranty of +/ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/ GNU General Public License for more details. +/ You should have received a copy of the GNU General Public License +/ along with this program. If not, see . +*/ + +#include "solder.h" diff --git a/keyboards/quarkeys/z60/solder/solder.h b/keyboards/quarkeys/z60/solder/solder.h new file mode 100644 index 000000000000..828dc29b7805 --- /dev/null +++ b/keyboards/quarkeys/z60/solder/solder.h @@ -0,0 +1,33 @@ +/* +/ Copyright 2022 quarkeys +/ This program is free software: you can redistribute it and/or modify +/ it under the terms of the GNU General Public License as published by +/ the Free Software Foundation, either version 2 of the License, or +/ (at your option) any later version. +/ This program is distributed in the hope that it will be useful, +/ but WITHOUT ANY WARRANTY; without even the implied warranty of +/ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/ GNU General Public License for more details. +/ You should have received a copy of the GNU General Public License +/ along with this program. If not, see . +*/ + + +#pragma once +#include "quantum.h" +#define XXXX KC_NO + +#define LAYOUT( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ + K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ + K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, \ + K400, K401, K403, K406, K410, K411, K412, K413 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ + { XXXX, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ + { XXXX, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, XXXX }, \ + { K400, K401, XXXX, K403, XXXX, XXXX, K406, XXXX, XXXX, XXXX, K410, K411, K412, K413, XXXX } \ +} + From 61696fda83be949c0a3ef46eec9bf6a206a4ffac Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sun, 1 Jan 2023 00:43:30 +0000 Subject: [PATCH 015/139] CLI flashers should allow files outside qmk_firmware folder (#19454) --- lib/python/qmk/flashers.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/python/qmk/flashers.py b/lib/python/qmk/flashers.py index a9cf726b448b..6b48b9406c9d 100644 --- a/lib/python/qmk/flashers.py +++ b/lib/python/qmk/flashers.py @@ -178,25 +178,25 @@ def flasher(mcu, file): # Add a small sleep to avoid race conditions time.sleep(1) if bl == 'atmel-dfu': - _flash_atmel_dfu(details, file.name) + _flash_atmel_dfu(details, file) elif bl == 'caterina': - if _flash_caterina(details, file.name): + if _flash_caterina(details, file): return (True, "The Caterina bootloader was found but is not writable. Check 'qmk doctor' output for advice.") elif bl == 'hid-bootloader': if mcu: - if _flash_hid_bootloader(mcu, details, file.name): + if _flash_hid_bootloader(mcu, details, file): return (True, "Please make sure 'teensy_loader_cli' or 'hid_bootloader_cli' is available on your system.") else: return (True, "Specifying the MCU with '-m' is necessary for HalfKay/HID bootloaders!") elif bl == 'stm32-dfu' or bl == 'apm32-dfu' or bl == 'gd32v-dfu' or bl == 'kiibohd': - _flash_dfu_util(details, file.name) + _flash_dfu_util(details, file) elif bl == 'usbasploader' or bl == 'usbtinyisp': if mcu: - _flash_isp(mcu, bl, file.name) + _flash_isp(mcu, bl, file) else: return (True, "Specifying the MCU with '-m' is necessary for ISP flashing!") elif bl == 'md-boot': - _flash_mdloader(file.name) + _flash_mdloader(file) else: return (True, "Known bootloader found but flashing not currently supported!") From b8e12eed8038d172aacfd7381785643f2da9664c Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sun, 1 Jan 2023 00:44:33 +0000 Subject: [PATCH 016/139] WSL `qmk flash firmware.bin` workaround (#19434) --- lib/python/qmk/flashers.py | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/lib/python/qmk/flashers.py b/lib/python/qmk/flashers.py index 6b48b9406c9d..e902e5072fe1 100644 --- a/lib/python/qmk/flashers.py +++ b/lib/python/qmk/flashers.py @@ -1,3 +1,4 @@ +import platform import shutil import time import os @@ -56,6 +57,20 @@ def _check_dfu_programmer_version(): return False +def _find_usb_device(vid_hex, pid_hex): + # WSL doesnt have access to USB - use powershell instead...? + if 'microsoft' in platform.uname().release.lower(): + ret = cli.run(['powershell.exe', '-command', 'Get-PnpDevice -PresentOnly | Select-Object -Property InstanceId']) + if f'USB\\VID_{vid_hex:04X}&PID_{pid_hex:04X}' in ret.stdout: + return (vid_hex, pid_hex) + else: + with DelayedKeyboardInterrupt(): + # PyUSB does not like to be interrupted by Ctrl-C + # therefore we catch the interrupt with a custom handler + # and only process it once pyusb finished + return usb.core.find(idVendor=vid_hex, idProduct=pid_hex) + + def _find_bootloader(): # To avoid running forever in the background, only look for bootloaders for 10min start_time = time.time() @@ -64,11 +79,7 @@ def _find_bootloader(): for vid, pid in BOOTLOADER_VIDS_PIDS[bl]: vid_hex = int(f'0x{vid}', 0) pid_hex = int(f'0x{pid}', 0) - with DelayedKeyboardInterrupt(): - # PyUSB does not like to be interrupted by Ctrl-C - # therefore we catch the interrupt with a custom handler - # and only process it once pyusb finished - dev = usb.core.find(idVendor=vid_hex, idProduct=pid_hex) + dev = _find_usb_device(vid_hex, pid_hex) if dev: if bl == 'atmel-dfu': details = _PID_TO_MCU[pid] From 2ae215514a110f053b161420ec75d9f7953000d1 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sun, 1 Jan 2023 00:53:10 +0000 Subject: [PATCH 017/139] Add docs to cover recent LAYOUT_all lint checks (#19393) --- docs/hardware_keyboard_guidelines.md | 2 ++ docs/pr_checklist.md | 2 ++ 2 files changed, 4 insertions(+) diff --git a/docs/hardware_keyboard_guidelines.md b/docs/hardware_keyboard_guidelines.md index 6df86fb0fb97..338cc9e72b21 100644 --- a/docs/hardware_keyboard_guidelines.md +++ b/docs/hardware_keyboard_guidelines.md @@ -208,6 +208,8 @@ As an example, if you have a 60% PCB that supports ANSI and ISO you might define | LAYOUT_ansi | default_ansi | An ANSI layout | | LAYOUT_iso | default_iso | An ISO layout | +?> Providing only `LAYOUT_all` is invalid - especially when implementing the additional layouts within 3rd party tooling. + ## Image/Hardware Files In an effort to keep the repo size down we're no longer accepting binary files of any format, with few exceptions. Hosting them elsewhere (such as ) and linking them in the `readme.md` is preferred. diff --git a/docs/pr_checklist.md b/docs/pr_checklist.md index 2f974c3817cd..922cb19d9c3e 100644 --- a/docs/pr_checklist.md +++ b/docs/pr_checklist.md @@ -55,6 +55,8 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard - `layout` definitions should include matrix positions, so that `LAYOUT` macros can be generated at build time - should use standard definitions if applicable - use the Community Layout macro names where they apply (preferred above `LAYOUT`/`LAYOUT_all`) + - use of `LAYOUT_all` is only valid when providing additional layout macros + - providing only `LAYOUT_all` is invalid - especially when implementing the additional layouts within 3rd party tooling - `readme.md` - standard template should be present -- [link to template](https://github.com/qmk/qmk_firmware/blob/master/data/templates/keyboard/readme.md) - flash command is present, and has `:flash` at end From b4d5c22ed4731abdd89eec373b922da7c7dbff7c Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Sat, 31 Dec 2022 16:57:15 -0800 Subject: [PATCH 018/139] Keyboard/fix work louder micro (#18968) --- keyboards/work_louder/micro/config.h | 4 +- .../work_louder/micro/keymaps/via/keymap.c | 63 +++++++++------- .../work_louder/micro/keymaps/via/rules.mk | 4 +- keyboards/work_louder/micro/micro.c | 73 +++++++------------ keyboards/work_louder/micro/micro.h | 1 + keyboards/work_louder/micro/rules.mk | 2 - 6 files changed, 69 insertions(+), 78 deletions(-) diff --git a/keyboards/work_louder/micro/config.h b/keyboards/work_louder/micro/config.h index 0f1c76ff41cd..2c37e9b4ec0e 100644 --- a/keyboards/work_louder/micro/config.h +++ b/keyboards/work_louder/micro/config.h @@ -84,6 +84,6 @@ #define ENCODERS_PAD_B \ { D6, B1 } -#define WORK_LOUDER_LED_PIN_1 B7 -#define WORK_LOUDER_LED_PIN_2 B6 +#define WORK_LOUDER_LED_PIN_1 B6 +#define WORK_LOUDER_LED_PIN_2 B7 #define WORK_LOUDER_LED_PIN_3 B5 diff --git a/keyboards/work_louder/micro/keymaps/via/keymap.c b/keyboards/work_louder/micro/keymaps/via/keymap.c index da910af6b227..d4be308b2ac7 100644 --- a/keyboards/work_louder/micro/keymaps/via/keymap.c +++ b/keyboards/work_louder/micro/keymaps/via/keymap.c @@ -4,30 +4,29 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - LAYOUT( - KC_MPLY, KC_9, KC_0, KC_NO, - KC_5, KC_6, KC_7, KC_8, - KC_1, KC_2, KC_3, KC_4, - TO(1), KC_DOT, KC_COMM, USER09 + [0] = LAYOUT( + KC_MPLY, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RGB_TOG, XXXXXXX, XXXXXXX, 0x5011 ), - LAYOUT( - _______, _______, _______, _______, - _______, _______, _______, _______, - _______, _______, _______, _______, - TO(2), _______, _______, _______ - + [1] = LAYOUT( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, 0x5012 ), - LAYOUT( - _______, _______, _______, _______, - _______, _______, _______, _______, - _______, _______, _______, _______, - TO(3), _______, _______, _______ + [2] = LAYOUT( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, 0x5013 ), - LAYOUT( - _______, _______, _______, _______, - _______, _______, _______, _______, - _______, _______, _______, _______, - TO(0), _______, _______, _______ + [3] = LAYOUT( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + USER00, USER01, USER03, USER05, + XXXXXXX, USER02, USER04, USER06, + XXXXXXX, XXXXXXX, XXXXXXX, 0x5010 ) }; @@ -51,22 +50,28 @@ typedef union { work_louder_config_t work_louder_config; bool process_record_user(uint16_t keycode, keyrecord_t *record) { -#ifdef CONSOLE_ENABLE - uprintf("KL: kc: 0x%04X, col: %2u, row: %2u, pressed: %b, time: %5u, int: %b, count: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed, record->event.time, record->tap.interrupted, record->tap.count); -#endif - switch (keycode) { case USER09: if (record->event.pressed) { work_louder_config.led_level++; if (work_louder_config.led_level > 4) { - work_louder_config.led_level = 0; + work_louder_config.led_level = 1; } work_louder_micro_led_all_set((uint8_t)(work_louder_config.led_level * 255 / 4)); eeconfig_update_user(work_louder_config.raw); layer_state_set_kb(layer_state); } break; + case 0x5000 ... 0x500F: + if (record->event.pressed) { + layer_move(keycode - 0x5000); + } + return false; break; + case 0x5010 ... 0x501F: + if (record->event.pressed) { + layer_move(keycode - 0x5010); + } + return false; break; } return true; } @@ -86,7 +91,11 @@ void eeconfig_init_user(void) { eeconfig_update_user(work_louder_config.raw); } -void matrix_init_user(void) { +void keyboard_post_init_user(void) { work_louder_config.raw = eeconfig_read_user(); work_louder_micro_led_all_set((uint8_t)(work_louder_config.led_level * 255 / 4)); } + +void suspend_wakeup_init_user(void) { + layer_state_set_user(layer_state); +} diff --git a/keyboards/work_louder/micro/keymaps/via/rules.mk b/keyboards/work_louder/micro/keymaps/via/rules.mk index f1adcab005e8..a067e071fe99 100644 --- a/keyboards/work_louder/micro/keymaps/via/rules.mk +++ b/keyboards/work_louder/micro/keymaps/via/rules.mk @@ -1,2 +1,4 @@ -VIA_ENABLE = yes +VIA_ENABLE = yes ENCODER_MAP_ENABLE = yes +MAGIC_ENABLE = no +SPACE_CADET_ENABLE = no diff --git a/keyboards/work_louder/micro/micro.c b/keyboards/work_louder/micro/micro.c index 80d39274178c..42bc2db52980 100644 --- a/keyboards/work_louder/micro/micro.c +++ b/keyboards/work_louder/micro/micro.c @@ -49,22 +49,28 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { #endif void work_louder_micro_led_1_on(void) { + setPinOutput(WORK_LOUDER_LED_PIN_1); writePin(WORK_LOUDER_LED_PIN_1, true); } void work_louder_micro_led_2_on(void) { + setPinOutput(WORK_LOUDER_LED_PIN_2); writePin(WORK_LOUDER_LED_PIN_2, true); } void work_louder_micro_led_3_on(void) { + setPinOutput(WORK_LOUDER_LED_PIN_3); writePin(WORK_LOUDER_LED_PIN_3, true); } void work_louder_micro_led_1_off(void) { + setPinInput(WORK_LOUDER_LED_PIN_1); writePin(WORK_LOUDER_LED_PIN_1, false); } void work_louder_micro_led_2_off(void) { + setPinInput(WORK_LOUDER_LED_PIN_2); writePin(WORK_LOUDER_LED_PIN_2, false); } void work_louder_micro_led_3_off(void) { + setPinInput(WORK_LOUDER_LED_PIN_3); writePin(WORK_LOUDER_LED_PIN_3, false); } @@ -81,15 +87,15 @@ void work_louder_micro_led_all_off(void) { } void work_louder_micro_led_1_set(uint8_t n) { -#if WORK_LOUDER_LED_PIN_1 == B7 - OCR1C = n; +#if WORK_LOUDER_LED_PIN_1 == B6 + OCR1B = n; #else n ? work_louder_micro_led_1_on() : work_louder_micro_led_1_off(); #endif } void work_louder_micro_led_2_set(uint8_t n) { -#if WORK_LOUDER_LED_PIN_2 == B6 - OCR1B = n; +#if WORK_LOUDER_LED_PIN_2 == B7 + OCR1C = n; #else n ? work_louder_micro_led_2_on() : work_louder_micro_led_2_off(); #endif @@ -108,49 +114,16 @@ void work_louder_micro_led_all_set(uint8_t n) { work_louder_micro_led_3_set(n); } -#ifdef DEFER_EXEC_ENABLE -uint32_t startup_animation(uint32_t trigger_time, void *cb_arg) { - static uint8_t index = 0; - - switch (index) { - case 0: - work_louder_micro_led_1_on(); - break; - case 1: - work_louder_micro_led_2_on(); - break; - case 2: - work_louder_micro_led_3_on(); - break; - case 3: - work_louder_micro_led_1_off(); - break; - case 4: - work_louder_micro_led_2_off(); - break; - case 5: - work_louder_micro_led_3_off(); - break; - default: - return 0; - } - index++; - return 100; +void keyboard_post_init_kb(void) { + TCCR1A = 0b10101001; // set and configure fast PWM + TCCR1B = 0b00001001; // set and configure fast PWM + + keyboard_post_init_user(); } -#endif -void matrix_init_kb(void) { +void work_louder_led_init_animation(void) { + work_louder_micro_led_all_off(); - setPinOutput(WORK_LOUDER_LED_PIN_1); // left led - writePin(WORK_LOUDER_LED_PIN_1, false); - setPinOutput(WORK_LOUDER_LED_PIN_2); // middle led - writePin(WORK_LOUDER_LED_PIN_2, false); - setPinOutput(WORK_LOUDER_LED_PIN_3); // right led - writePin(WORK_LOUDER_LED_PIN_3, false); - -#ifdef DEFER_EXEC_ENABLE - defer_exec(500, startup_animation, NULL); -#else wait_ms(500); work_louder_micro_led_1_on(); wait_ms(100); @@ -164,7 +137,15 @@ void matrix_init_kb(void) { wait_ms(100); work_louder_micro_led_3_off(); wait_ms(200); -#endif - matrix_init_user(); +} + + +void suspend_power_down_kb(void) { + suspend_power_down_user(); + work_louder_micro_led_all_off(); +} +void suspend_wakeup_init_kb(void) { + work_louder_led_init_animation(); + suspend_wakeup_init_user(); } diff --git a/keyboards/work_louder/micro/micro.h b/keyboards/work_louder/micro/micro.h index 715b09eb33af..1d25b91c80d2 100644 --- a/keyboards/work_louder/micro/micro.h +++ b/keyboards/work_louder/micro/micro.h @@ -20,3 +20,4 @@ extern void work_louder_micro_led_2_set(uint8_t n); extern void work_louder_micro_led_3_set(uint8_t n); extern void work_louder_micro_led_all_set(uint8_t n); +void work_louder_led_init_animation(void); diff --git a/keyboards/work_louder/micro/rules.mk b/keyboards/work_louder/micro/rules.mk index 757b87cfe4ee..bf0aa919117f 100644 --- a/keyboards/work_louder/micro/rules.mk +++ b/keyboards/work_louder/micro/rules.mk @@ -2,5 +2,3 @@ RGB_MATRIX_DRIVER = WS2812 SRC += rgb_functions.c \ matrix.c - -DEFERRED_EXEC_ENABLE = yes From 867e4fc11ccfb402c799f7610c4613764b33f69a Mon Sep 17 00:00:00 2001 From: Byron Clark Date: Sun, 1 Jan 2023 09:05:57 -0700 Subject: [PATCH 019/139] [Keyboard] Add community layout support to Piantor (#19455) --- keyboards/beekeeb/piantor/info.json | 1 + 1 file changed, 1 insertion(+) diff --git a/keyboards/beekeeb/piantor/info.json b/keyboards/beekeeb/piantor/info.json index 623e60be15fb..2234c976c0d1 100644 --- a/keyboards/beekeeb/piantor/info.json +++ b/keyboards/beekeeb/piantor/info.json @@ -22,6 +22,7 @@ "split": { "enabled": true }, + "community_layouts": ["split_3x6_3"], "layouts": { "LAYOUT_split_3x6_3": { "layout": [ From ff73cb6290271db473899118200a2fbf725cbc85 Mon Sep 17 00:00:00 2001 From: theamarin <36608650+theamarin@users.noreply.github.com> Date: Sun, 1 Jan 2023 18:31:25 +0100 Subject: [PATCH 020/139] [Keymap] Add Neo2-based keymap for Planck keyboard (#19173) Co-authored-by: christian --- .../community/ortho_4x12/neo2marin/config.h | 23 +++ .../community/ortho_4x12/neo2marin/keymap.c | 175 ++++++++++++++++++ .../community/ortho_4x12/neo2marin/readme.md | 105 +++++++++++ .../community/ortho_4x12/neo2marin/rules.mk | 6 + 4 files changed, 309 insertions(+) create mode 100644 layouts/community/ortho_4x12/neo2marin/config.h create mode 100644 layouts/community/ortho_4x12/neo2marin/keymap.c create mode 100644 layouts/community/ortho_4x12/neo2marin/readme.md create mode 100644 layouts/community/ortho_4x12/neo2marin/rules.mk diff --git a/layouts/community/ortho_4x12/neo2marin/config.h b/layouts/community/ortho_4x12/neo2marin/config.h new file mode 100644 index 000000000000..1062aa2d83e7 --- /dev/null +++ b/layouts/community/ortho_4x12/neo2marin/config.h @@ -0,0 +1,23 @@ +/* Copyright 2018-2022 TheAmarin (@theamarin) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +// Tune the tapping term for dual-use `y`/`MOD3` key +#define TAPPING_TERM 150 + +#define NO_ACTION_ONESHOT +#define NO_MUSIC_MODE diff --git a/layouts/community/ortho_4x12/neo2marin/keymap.c b/layouts/community/ortho_4x12/neo2marin/keymap.c new file mode 100644 index 000000000000..d6aa2eec38d0 --- /dev/null +++ b/layouts/community/ortho_4x12/neo2marin/keymap.c @@ -0,0 +1,175 @@ +/* Copyright 2018-2022 TheAmarin (@theamarin) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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_german.h" + +enum custom_keycodes { + NEO2 = SAFE_RANGE, + QWERTZ, +}; + +enum custom_layers { + L_NEO, // NEO2 + L_QWZ, // QWERTZ + L_COD, // NEO2 Layer 3 (Coding layer using right MOD3) + L_COD_AT, // NEO2 Layer 3 (Coding layer using left MOD3, with @) + L_MOV, // NEO2 Layer 4 (Movements) + L_FUN, // Function and media keys +}; + +#define MCOD MO(L_COD) +#define MCODAT MO(L_COD_AT) +#define MMOV MO(L_MOV) +#define MFUN MO(L_FUN) +#define YMCOD LT(L_COD, DE_Y) +#define AEMCOD MT(DE_HASH, DE_ADIA) +#define RALTF LM(L_FUN, MOD_RALT) + +#define LALTTAB LALT(KC_TAB) +#define RALTTAB RALT(KC_TAB) +#define ME_MAXM LCTL(LGUI(KC_UP)) + +#if defined(SWAP_HANDS_ENABLE) +#define SWAPH SH_MON +#else +#define SWAPH KC_TRNS +#endif + +#define ____ KC_TRNS + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [L_NEO] = LAYOUT_ortho_4x12( + //,-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------. + KC_TAB , DE_X , DE_V , DE_L , DE_C , DE_W , DE_K , DE_H , DE_G , DE_F , DE_Q , DE_SS , + //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + MCODAT , DE_U , DE_I , DE_A , DE_E , DE_O , DE_S , DE_N , DE_R , DE_T , DE_D , YMCOD , + //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + KC_LSFT,DE_UDIA,DE_ODIA,DE_ADIA, DE_P , DE_Z , DE_B , DE_M ,DE_COMM, DE_DOT, DE_J ,KC_RSFT, + //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + KC_LCTL,KC_LGUI,KC_LALT, SWAPH , MFUN , MMOV , KC_SPACE, SWAPH , MFUN , KC_APP, RALTF ,KC_RCTL + //`-------+-------+-------+-------+-------+-------' `-------+-------+-------+-------+-------+-------' + ), + + [L_QWZ] = LAYOUT_ortho_4x12( + //,-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------. + KC_TAB , DE_Q , DE_W , DE_E , DE_R , DE_T , DE_Z , DE_U , DE_I , DE_O , DE_P ,DE_UDIA, + //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + KC_CAPS, DE_A , DE_S , DE_D , DE_F , DE_G , DE_H , DE_J , DE_K , DE_L ,DE_ODIA,AEMCOD , + //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + KC_LSFT, DE_Y , DE_X , DE_C , DE_V , DE_B , DE_N , DE_M ,DE_COMM, DE_DOT, DE_SS ,KC_RSFT, + //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + KC_LCTL,KC_LGUI,KC_LALT, ____ , MFUN , MMOV , KC_SPACE, ____ ,KC_RALT,KC_APP , RALTF ,KC_RCTL + //`-------+-------+-------+-------+-------+-------' `-------+-------+-------+-------+-------+-------' + ), + + [L_COD] = LAYOUT_ortho_4x12( + //,-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------. + DE_ACUT,DE_EURO,DE_UNDS,DE_LBRC,DE_RBRC,DE_CIRC, DE_EXLM,DE_LABK,DE_RABK,DE_EQL, DE_AMPR, DE_GRV, + //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + ____ ,DE_BSLS,DE_SLSH,DE_LCBR,DE_RCBR,DE_ASTR, DE_QUES,DE_LPRN,DE_RPRN,DE_MINS,DE_COLN, ____ , + //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + ____ ,DE_HASH, DE_DLR,DE_PIPE,DE_TILD,DE_ACUT, DE_PLUS,DE_PERC,DE_DQUO,DE_QUOT,DE_SCLN, ____ , + //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + ____ , ____ , ____ , ____ , ____ , ____ , ____ , ____ , ____ , ____ , ____ , ____ + //`-------+-------+-------+-------+-------+-------' `-------+-------+-------+-------+-------+-------' + ), + + [L_COD_AT] = LAYOUT_ortho_4x12( + //,-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------. + DE_ACUT,DE_EURO,DE_UNDS,DE_LBRC,DE_RBRC,DE_CIRC, DE_EXLM,DE_LABK,DE_RABK,DE_EQL, DE_AMPR, DE_GRV, + //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + ____ ,DE_BSLS,DE_SLSH,DE_LCBR,DE_RCBR,DE_ASTR, DE_QUES,DE_LPRN,DE_RPRN,DE_MINS,DE_COLN, DE_AT , + //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + ____ ,DE_HASH, DE_DLR,DE_PIPE,DE_TILD,DE_ACUT, DE_PLUS,DE_PERC,DE_DQUO,DE_QUOT,DE_SCLN, ____ , + //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + ____ , ____ , ____ , ____ , ____ , ____ , ____ , ____ , ____ , ____ , ____ , ____ + //`-------+-------+-------+-------+-------+-------' `-------+-------+-------+-------+-------+-------' + ), + + [L_MOV] = LAYOUT_ortho_4x12( + //,-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------. + ____ ,KC_PGUP,KC_BSPC, KC_UP ,KC_DEL, KC_PGDN, ____ , KC_7 , KC_8 , KC_9 ,DE_PLUS,DE_MINS, + //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + ____ ,KC_HOME,KC_LEFT,KC_DOWN,KC_RGHT,KC_END , ____ , KC_4 , KC_5 , KC_6 ,DE_COMM, DE_DOT, + //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + ____ ,KC_ESC ,KC_TAB ,KC_INS, KC_ENTER,____ , KC_0 , KC_1 , KC_2 , KC_3 ,DE_SCLN, ____ , + //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + ____ , ____ , ____ , ____ , ____ , ____ , ____ , KC_0 , ____ , ____ , ____ , ____ + //`-------+-------+-------+-------+-------+-------' `-------+-------+-------+-------+-------+-------' + ), + + [L_FUN] = LAYOUT_ortho_4x12( + //,-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------. + ____ , AU_ON ,KC_VOLD,ME_MAXM,KC_VOLU, ____ , DM_REC1, KC_F7 , KC_F8 , KC_F9 , KC_F12,KC_PSCR, + //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + ____ ,KC_MSTP,KC_MPRV,KC_MPLY,KC_MNXT, NEO2 , DM_RSTP, KC_F4 , KC_F5 , KC_F6 , KC_F11,KC_BRK , + //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + ____ , AU_OFF,KC_TAB ,KC_INS ,KC_ENTER,QWERTZ, DM_PLY1, KC_F1 , KC_F2 , KC_F3 , KC_F10, ____ , + //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + ____ , ____ , ____ , ____ , ____ , ____ , ____ , ____ , ____ , ____ , ____ , ____ + //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + ), + +}; + +#if defined(AUDIO_ENABLE) +float SONG_QWERTZ[][2] = SONG(QWERTY_SOUND); +float SONG_NEO2[][2] = SONG(DVORAK_SOUND); +#endif + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTZ: + if (record->event.pressed) { + default_layer_set(1UL<event.pressed) { + default_layer_set(1UL< | = | & | ` | +|----+----+----+----+----+----| |----+----+----+----+----+----| +|MOD3, \ | / | { | } | * | | ? | ( | ) | - | : | @ | +|----+----+----+----+----+----| |----+----+----+----+----+----| +|LSFT, # | $ | | | ~ | ' | | + | % | " | ' | ; |RSFT| +|----+----+----+----+----+----| |----+----+----+----+----+----| +|LCTL|LGUI|LALT|SWAP|MOD5|MOD4| |SPC |SWAP|MOD5|APP |RALT|RCTL| +|----+----+----+----+----+----| |----+----+----+----+----+----| +``` + +Because `y` and `MOD3` have to share a key, we need two variants of the MOD3 layer (as can be seen in the keymap). + + + +## MOD4: The Movements Layer + +``` +|----+----+----+----+----+----| |----+----+----+----+----+----| +| |PGUP|BSPC| UP |DEL |PGDN| | | 7 | 8 | 9 | + | - | +|----+----+----+----+----+----| |----+----+----+----+----+----| +| |HOME|LEFT|DOWN|RGHT|END | | | 4 | 5 | 6 | , | . | +|----+----+----+----+----+----| |----+----+----+----+----+----| +| |ESC |TAB |INS |ENTR| | | 0 | 1 | 2 | 3 | ; | | +|----+----+----+----+----+----| |----+----+----+----+----+----| +| | | | | | | | | 0 | | | | | +|----+----+----+----+----+----| |----+----+----+----+----+----| +``` + + +## MOD5: The Fun(ctions) Layer + +``` +|----+----+----+----+----+----| |----+----+----+----+----+----| +| |AUD1|VOLD|MAXM|VOLU| | |M1R | F7 | F8 | F9 |F12 |PSCR| +|----+----+----+----+----+----| |----+----+----+----+----+----| +| |MSTP|MPRV|MPLY|MNXT|NEO2| |M1S | F4 | F5 | F6 |F11 |BRK | +|----+----+----+----+----+----| |----+----+----+----+----+----| +| |AUD0|TAB |INS |ENTR|QWERTZ |M1P | F1 | F2 | F3 |F10 | | +|----+----+----+----+----+----| |----+----+----+----+----+----| +| | | | | | | | | | | | | | +|----+----+----+----+----+----| |----+----+----+----+----+----| +``` + + +Have fun! + +[Your feedback is appreciated](https://github.com/theamarin/qmk_firmware/issues)! diff --git a/layouts/community/ortho_4x12/neo2marin/rules.mk b/layouts/community/ortho_4x12/neo2marin/rules.mk new file mode 100644 index 000000000000..7c91bc8c2ae0 --- /dev/null +++ b/layouts/community/ortho_4x12/neo2marin/rules.mk @@ -0,0 +1,6 @@ +DYNAMIC_MACRO_ENABLE = yes + +ifeq ($(strip $(KEYBOARD)), planck/rev5) + AUDIO_ENABLE = yes + BACKLIGHT_ENABLE = yes +endif From 975d64cc2b344cc785f5c207740381acbd1d1d39 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 2 Jan 2023 22:12:25 +0000 Subject: [PATCH 021/139] adpenrose/akemipad fixes (#19477) --- keyboards/adpenrose/akemipad/akemipad.c | 23 +++++++++++++++++++ .../akemipad/keymaps/default/keymap.c | 19 --------------- .../akemipad/keymaps/oled_bongocat/config.h | 2 ++ .../akemipad/keymaps/oled_bongocat/keymap.c | 19 --------------- .../adpenrose/akemipad/keymaps/via/keymap.c | 19 --------------- 5 files changed, 25 insertions(+), 57 deletions(-) diff --git a/keyboards/adpenrose/akemipad/akemipad.c b/keyboards/adpenrose/akemipad/akemipad.c index 9c5319bc8115..647740927c7b 100644 --- a/keyboards/adpenrose/akemipad/akemipad.c +++ b/keyboards/adpenrose/akemipad/akemipad.c @@ -2,3 +2,26 @@ // SPDX-License-Identifier: GPL-2.0-or-later #include "akemipad.h" + +#ifdef RGB_MATRIX_ENABLE + +/* Setting up the LED matrix */ +led_config_t g_led_config = { { + // Key Matrix to LED Index + { 0, 1, 2, 3, NO_LED }, + { 4, 5, 6, 7, NO_LED }, + { 8, 9, 10, 11, 12 }, + { 13, 14, 15, 16, NO_LED }, + { 17, 18, 19, 20, 21 }, + { 22, 23, 24, 25, 26 }, +}, { + // LED Index to Physical Position + { 0,0 }, { 37,0 }, { 74,0 }, {111,0 }, { 0,34 }, { 37,34 }, { 74,34 }, {111,34 }, { 0,62 }, { 37,62 }, + { 74,62 }, {111,62 }, {120,75 }, { 0,89 }, { 37,89 }, { 74,89 }, {111,89 }, { 0,117}, { 37,117}, { 74,117}, + {111,117}, {120,130}, { 0,137}, { 18,144}, { 37,137}, { 74,144}, {111,144} +}, { + // LED Index to Flag + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 +} }; + +#endif diff --git a/keyboards/adpenrose/akemipad/keymaps/default/keymap.c b/keyboards/adpenrose/akemipad/keymaps/default/keymap.c index 2a6ed46c708f..2a3de42e2d22 100644 --- a/keyboards/adpenrose/akemipad/keymaps/default/keymap.c +++ b/keyboards/adpenrose/akemipad/keymaps/default/keymap.c @@ -3,25 +3,6 @@ #include QMK_KEYBOARD_H -/* Setting up the LED matrix */ -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 0, 1, 2, 3, NO_LED }, - { 4, 5, 6, 7, NO_LED }, - { 8, 9, 10, 11, 12 }, - { 13, 14, 15, 16, NO_LED }, - { 17, 18, 19, 20, 21 }, - { 22, 23, 24, 25, 26 }, -}, { - // LED Index to Physical Position - { 0,0 }, { 37,0 }, { 74,0 }, {111,0 }, { 0,34 }, { 37,34 }, { 74,34 }, {111,34 }, { 0,62 }, { 37,62 }, - { 74,62 }, {111,62 }, {120,75 }, { 0,89 }, { 37,89 }, { 74,89 }, {111,89 }, { 0,117}, { 37,117}, { 74,117}, - {111,117}, {120,130}, { 0,137}, { 18,144}, { 37,137}, { 74,144}, {111,144} -}, { - // LED Index to Flag - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 -} }; - /* Keymap */ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_all( diff --git a/keyboards/adpenrose/akemipad/keymaps/oled_bongocat/config.h b/keyboards/adpenrose/akemipad/keymaps/oled_bongocat/config.h index 2a70bc5c9a40..8667314cd4e2 100644 --- a/keyboards/adpenrose/akemipad/keymaps/oled_bongocat/config.h +++ b/keyboards/adpenrose/akemipad/keymaps/oled_bongocat/config.h @@ -1,6 +1,8 @@ // Copyright 2022 Arturo Avila (@ADPenrose) // SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + #ifdef AUDIO_ENABLE # define NO_MUSIC_MODE #endif diff --git a/keyboards/adpenrose/akemipad/keymaps/oled_bongocat/keymap.c b/keyboards/adpenrose/akemipad/keymaps/oled_bongocat/keymap.c index be0d94a67676..5839acbbfee8 100644 --- a/keyboards/adpenrose/akemipad/keymaps/oled_bongocat/keymap.c +++ b/keyboards/adpenrose/akemipad/keymaps/oled_bongocat/keymap.c @@ -16,25 +16,6 @@ typedef union { via_layout_t via_layouts; -/* Setting up the LED matrix */ -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 0, 1, 2, 3, NO_LED }, - { 4, 5, 6, 7, NO_LED }, - { 8, 9, 10, 11, 12 }, - { 13, 14, 15, 16, NO_LED }, - { 17, 18, 19, 20, 21 }, - { 22, 23, 24, 25, 26 }, -}, { - // LED Index to Physical Position - { 0,0 }, { 37,0 }, { 74,0 }, {111,0 }, { 0,34 }, { 37,34 }, { 74,34 }, {111,34 }, { 0,62 }, { 37,62 }, - { 74,62 }, {111,62 }, {120,75 }, { 0,89 }, { 37,89 }, { 74,89 }, {111,89 }, { 0,117}, { 37,117}, { 74,117}, - {111,117}, {120,130}, { 0,137}, { 18,144}, { 37,137}, { 74,144}, {111,144} -}, { - // LED Index to Flag - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 -} }; - /* Keymap */ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_all( diff --git a/keyboards/adpenrose/akemipad/keymaps/via/keymap.c b/keyboards/adpenrose/akemipad/keymaps/via/keymap.c index 6395b361c912..fa3673b8cba5 100644 --- a/keyboards/adpenrose/akemipad/keymaps/via/keymap.c +++ b/keyboards/adpenrose/akemipad/keymaps/via/keymap.c @@ -15,25 +15,6 @@ typedef union { via_layout_t via_layouts; -/* Setting up the LED matrix */ -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 0, 1, 2, 3, NO_LED }, - { 4, 5, 6, 7, NO_LED }, - { 8, 9, 10, 11, 12 }, - { 13, 14, 15, 16, NO_LED }, - { 17, 18, 19, 20, 21 }, - { 22, 23, 24, 25, 26 }, -}, { - // LED Index to Physical Position - { 0,0 }, { 37,0 }, { 74,0 }, {111,0 }, { 0,34 }, { 37,34 }, { 74,34 }, {111,34 }, { 0,62 }, { 37,62 }, - { 74,62 }, {111,62 }, {120,75 }, { 0,89 }, { 37,89 }, { 74,89 }, {111,89 }, { 0,117}, { 37,117}, { 74,117}, - {111,117}, {120,130}, { 0,137}, { 18,144}, { 37,137}, { 74,144}, {111,144} -}, { - // LED Index to Flag - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 -} }; - /* Keymap */ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_all( From 5962ebaba100db1cfbe8678045bedd14e3d28ad2 Mon Sep 17 00:00:00 2001 From: Jesus Climent Date: Mon, 2 Jan 2023 17:51:32 -0500 Subject: [PATCH 022/139] Fix github URL for the atreyu maintainer. (#19476) --- keyboards/atreyu/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/atreyu/readme.md b/keyboards/atreyu/readme.md index 1de288ea88a2..674f207b707c 100644 --- a/keyboards/atreyu/readme.md +++ b/keyboards/atreyu/readme.md @@ -4,7 +4,7 @@ An unsplit, modified version of a Lily58 having a baby with a Sofle keyboard -* Keyboard Maintainer: [Jesus Climent](https://github.com/Jesus Climent) +* Keyboard Maintainer: [Jesus Climent](https://github.com/climent) * Hardware Supported: AtreyuKeyboard PCB, ProMicro * Hardware Availability: [PCB and case data](https://github.com/climent/atreyu) From 46ed46e3841017554daf027809c419b565f99d2f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 3 Jan 2023 19:36:22 +0000 Subject: [PATCH 023/139] Bump anothrNick/github-tag-action from 1.55.0 to 1.56.0 (#19494) Bumps [anothrNick/github-tag-action](https://github.com/anothrNick/github-tag-action) from 1.55.0 to 1.56.0. - [Release notes](https://github.com/anothrNick/github-tag-action/releases) - [Commits](https://github.com/anothrNick/github-tag-action/compare/1.55.0...1.56.0) --- updated-dependencies: - dependency-name: anothrNick/github-tag-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/auto_tag.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/auto_tag.yml b/.github/workflows/auto_tag.yml index d1776c058dca..a480bd93cc98 100644 --- a/.github/workflows/auto_tag.yml +++ b/.github/workflows/auto_tag.yml @@ -31,7 +31,7 @@ jobs: fetch-depth: 0 - name: Bump version and push tag - uses: anothrNick/github-tag-action@1.55.0 + uses: anothrNick/github-tag-action@1.56.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} DEFAULT_BUMP: 'patch' From 691668340cccdc84164d37501885d509db88f113 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Wed, 4 Jan 2023 15:10:18 +1100 Subject: [PATCH 024/139] Add `qmk mass-compile`, which intends to supercede `qmk multibuild` whilst providing support for filtering as per data-driven definitions. (#18971) --- docs/chibios_upgrade_instructions.md | 2 +- lib/python/qmk/cli/__init__.py | 1 + lib/python/qmk/cli/mass_compile.py | 165 +++++++++++++++++++++++++++ 3 files changed, 167 insertions(+), 1 deletion(-) create mode 100755 lib/python/qmk/cli/mass_compile.py diff --git a/docs/chibios_upgrade_instructions.md b/docs/chibios_upgrade_instructions.md index b0a71142a39b..14afe2c74343 100644 --- a/docs/chibios_upgrade_instructions.md +++ b/docs/chibios_upgrade_instructions.md @@ -51,7 +51,7 @@ ChibiOS and ChibiOS-Contrib need to be updated in tandem -- the latter has a bra * `./util/chibios_conf_updater.sh` * Build everything * `cd $QMK_FIRMWARE` - * `qmk multibuild -j4` + * `qmk mass-compile -j 4` * Make sure there are no errors * Push to the repo * `git commit -am 'Update ChibiOS to 99.9.9'` diff --git a/lib/python/qmk/cli/__init__.py b/lib/python/qmk/cli/__init__.py index 9190af4e5078..1da4d257411d 100644 --- a/lib/python/qmk/cli/__init__.py +++ b/lib/python/qmk/cli/__init__.py @@ -71,6 +71,7 @@ 'qmk.cli.list.keymaps', 'qmk.cli.list.layouts', 'qmk.cli.kle2json', + 'qmk.cli.mass_compile', 'qmk.cli.multibuild', 'qmk.cli.new.keyboard', 'qmk.cli.new.keymap', diff --git a/lib/python/qmk/cli/mass_compile.py b/lib/python/qmk/cli/mass_compile.py new file mode 100755 index 000000000000..b5f12c502657 --- /dev/null +++ b/lib/python/qmk/cli/mass_compile.py @@ -0,0 +1,165 @@ +"""Compile all keyboards. + +This will compile everything in parallel, for testing purposes. +""" +import logging +import multiprocessing +import os +import re +from pathlib import Path +from subprocess import DEVNULL +from dotty_dict import dotty +from milc import cli + +from qmk.constants import QMK_FIRMWARE +from qmk.commands import _find_make, get_make_parallel_args +from qmk.info import keymap_json +import qmk.keyboard +import qmk.keymap + + +def _set_log_level(level): + cli.acquire_lock() + old = cli.log_level + cli.log_level = level + cli.log.setLevel(level) + logging.root.setLevel(level) + cli.release_lock() + return old + + +def _all_keymaps(keyboard): + old = _set_log_level(logging.CRITICAL) + keymaps = qmk.keymap.list_keymaps(keyboard) + _set_log_level(old) + return (keyboard, keymaps) + + +def _keymap_exists(keyboard, keymap): + old = _set_log_level(logging.CRITICAL) + ret = keyboard if qmk.keymap.locate_keymap(keyboard, keymap) is not None else None + _set_log_level(old) + return ret + + +def _load_keymap_info(keyboard, keymap): + old = _set_log_level(logging.CRITICAL) + ret = (keyboard, keymap, keymap_json(keyboard, keymap)) + _set_log_level(old) + return ret + + +@cli.argument('-t', '--no-temp', arg_only=True, action='store_true', help="Remove temporary files during build.") +@cli.argument('-j', '--parallel', type=int, default=1, help="Set the number of parallel make jobs; 0 means unlimited.") +@cli.argument('-c', '--clean', arg_only=True, action='store_true', help="Remove object files before compiling.") +@cli.argument( + '-f', + '--filter', + arg_only=True, + action='append', + default=[], + help="Filter the list of keyboards based on the supplied value in rules.mk. Matches info.json structure, and accepts the format 'features.rgblight=true'. May be passed multiple times, all filters need to match." +) +@cli.argument('-km', '--keymap', type=str, default='default', help="The keymap name to build. Default is 'default'.") +@cli.argument('-e', '--env', arg_only=True, action='append', default=[], help="Set a variable to be passed to make. May be passed multiple times.") +@cli.subcommand('Compile QMK Firmware for all keyboards.', hidden=False if cli.config.user.developer else True) +def mass_compile(cli): + """Compile QMK Firmware against all keyboards. + """ + make_cmd = _find_make() + if cli.args.clean: + cli.run([make_cmd, 'clean'], capture_output=False, stdin=DEVNULL) + + builddir = Path(QMK_FIRMWARE) / '.build' + makefile = builddir / 'parallel_kb_builds.mk' + + targets = [] + + with multiprocessing.Pool() as pool: + cli.log.info(f'Retrieving list of keyboards with keymap "{cli.args.keymap}"...') + target_list = [] + if cli.args.keymap == 'all': + kb_to_kms = pool.map(_all_keymaps, qmk.keyboard.list_keyboards()) + for targets in kb_to_kms: + keyboard = targets[0] + keymaps = targets[1] + target_list.extend([(keyboard, keymap) for keymap in keymaps]) + else: + target_list = [(kb, cli.args.keymap) for kb in filter(lambda kb: kb is not None, pool.starmap(_keymap_exists, [(kb, cli.args.keymap) for kb in qmk.keyboard.list_keyboards()]))] + + if len(cli.args.filter) == 0: + targets = target_list + else: + cli.log.info('Parsing data for all matching keyboard/keymap combinations...') + valid_keymaps = [(e[0], e[1], dotty(e[2])) for e in pool.starmap(_load_keymap_info, target_list)] + + filter_re = re.compile(r'^(?P[a-zA-Z0-9_\.]+)\s*=\s*(?P[^#]+)$') + for filter_txt in cli.args.filter: + f = filter_re.match(filter_txt) + if f is not None: + key = f.group('key') + value = f.group('value') + cli.log.info(f'Filtering on condition ("{key}" == "{value}")...') + + def _make_filter(k, v): + def f(e): + lhs = e[2].get(k) + lhs = str(False if lhs is None else lhs).lower() + rhs = str(v).lower() + return lhs == rhs + + return f + + valid_keymaps = filter(_make_filter(key, value), valid_keymaps) + + targets = [(e[0], e[1]) for e in valid_keymaps] + + if len(targets) == 0: + return + + builddir.mkdir(parents=True, exist_ok=True) + with open(makefile, "w") as f: + for target in sorted(targets): + keyboard_name = target[0] + keymap_name = target[1] + keyboard_safe = keyboard_name.replace('/', '_') + # yapf: disable + f.write( + f"""\ +all: {keyboard_safe}_{keymap_name}_binary +{keyboard_safe}_{keymap_name}_binary: + @rm -f "{QMK_FIRMWARE}/.build/failed.log.{keyboard_safe}.{keymap_name}" || true + @echo "Compiling QMK Firmware for target: '{keyboard_name}:{keymap_name}'..." >>"{QMK_FIRMWARE}/.build/build.log.{os.getpid()}.{keyboard_safe}" + +@$(MAKE) -C "{QMK_FIRMWARE}" -f "{QMK_FIRMWARE}/builddefs/build_keyboard.mk" KEYBOARD="{keyboard_name}" KEYMAP="{keymap_name}" REQUIRE_PLATFORM_KEY= COLOR=true SILENT=false {' '.join(cli.args.env)} \\ + >>"{QMK_FIRMWARE}/.build/build.log.{os.getpid()}.{keyboard_safe}.{keymap_name}" 2>&1 \\ + || cp "{QMK_FIRMWARE}/.build/build.log.{os.getpid()}.{keyboard_safe}.{keymap_name}" "{QMK_FIRMWARE}/.build/failed.log.{os.getpid()}.{keyboard_safe}.{keymap_name}" + @{{ grep '\[ERRORS\]' "{QMK_FIRMWARE}/.build/build.log.{os.getpid()}.{keyboard_safe}.{keymap_name}" >/dev/null 2>&1 && printf "Build %-64s \e[1;31m[ERRORS]\e[0m\\n" "{keyboard_name}:{keymap_name}" ; }} \\ + || {{ grep '\[WARNINGS\]' "{QMK_FIRMWARE}/.build/build.log.{os.getpid()}.{keyboard_safe}.{keymap_name}" >/dev/null 2>&1 && printf "Build %-64s \e[1;33m[WARNINGS]\e[0m\\n" "{keyboard_name}:{keymap_name}" ; }} \\ + || printf "Build %-64s \e[1;32m[OK]\e[0m\\n" "{keyboard_name}:{keymap_name}" + @rm -f "{QMK_FIRMWARE}/.build/build.log.{os.getpid()}.{keyboard_safe}.{keymap_name}" || true +"""# noqa + ) + # yapf: enable + + if cli.args.no_temp: + # yapf: disable + f.write( + f"""\ + @rm -rf "{QMK_FIRMWARE}/.build/{keyboard_safe}_{keymap_name}.elf" 2>/dev/null || true + @rm -rf "{QMK_FIRMWARE}/.build/{keyboard_safe}_{keymap_name}.map" 2>/dev/null || true + @rm -rf "{QMK_FIRMWARE}/.build/{keyboard_safe}_{keymap_name}.hex" 2>/dev/null || true + @rm -rf "{QMK_FIRMWARE}/.build/{keyboard_safe}_{keymap_name}.bin" 2>/dev/null || true + @rm -rf "{QMK_FIRMWARE}/.build/{keyboard_safe}_{keymap_name}.uf2" 2>/dev/null || true + @rm -rf "{QMK_FIRMWARE}/.build/obj_{keyboard_safe}" || true + @rm -rf "{QMK_FIRMWARE}/.build/obj_{keyboard_safe}_{keymap_name}" || true +"""# noqa + ) + # yapf: enable + f.write('\n') + + cli.run([make_cmd, *get_make_parallel_args(cli.args.parallel), '-f', makefile.as_posix(), 'all'], capture_output=False, stdin=DEVNULL) + + # Check for failures + failures = [f for f in builddir.glob(f'failed.log.{os.getpid()}.*')] + if len(failures) > 0: + return False From 8e869da1dac0c656cad4a628b5035f8ecbcbd4fa Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Wed, 4 Jan 2023 16:07:13 +1100 Subject: [PATCH 025/139] Allow for specifying the number of symbols to output. (#19497) --- builddefs/build_keyboard.mk | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/builddefs/build_keyboard.mk b/builddefs/build_keyboard.mk index 499e6ffc69f5..8999ac80ad52 100644 --- a/builddefs/build_keyboard.mk +++ b/builddefs/build_keyboard.mk @@ -491,16 +491,21 @@ check-size: build check-md5: build objs-size: build +ifneq ($(strip $(TOP_SYMBOLS)),) ifeq ($(strip $(TOP_SYMBOLS)),yes) +NUM_TOP_SYMBOLS := 10 +else +NUM_TOP_SYMBOLS := $(strip $(TOP_SYMBOLS)) +endif all: top-symbols check-size: top-symbols top-symbols: build echo "###########################################" echo "# Highest flash usage:" - $(NM) -Crtd --size-sort $(BUILD_DIR)/$(TARGET).elf | grep -i ' [t] ' | head -n10 | sed -e 's#^0000000# #g' -e 's#^000000# #g' -e 's#^00000# #g' -e 's#^0000# #g' -e 's#^000# #g' -e 's#^00# #g' -e 's#^0# #g' + $(NM) -Crtd --size-sort $(BUILD_DIR)/$(TARGET).elf | grep -i ' [t] ' | head -n$(NUM_TOP_SYMBOLS) | sed -e 's#^0000000# #g' -e 's#^000000# #g' -e 's#^00000# #g' -e 's#^0000# #g' -e 's#^000# #g' -e 's#^00# #g' -e 's#^0# #g' echo "###########################################" echo "# Highest RAM usage:" - $(NM) -Crtd --size-sort $(BUILD_DIR)/$(TARGET).elf | grep -i ' [dbv] ' | head -n10 | sed -e 's#^0000000# #g' -e 's#^000000# #g' -e 's#^00000# #g' -e 's#^0000# #g' -e 's#^000# #g' -e 's#^00# #g' -e 's#^0# #g' + $(NM) -Crtd --size-sort $(BUILD_DIR)/$(TARGET).elf | grep -i ' [dbv] ' | head -n$(NUM_TOP_SYMBOLS) | sed -e 's#^0000000# #g' -e 's#^000000# #g' -e 's#^00000# #g' -e 's#^0000# #g' -e 's#^000# #g' -e 's#^00# #g' -e 's#^0# #g' echo "###########################################" endif From 04dcf81d1e2a8b7a12606044ccd646c11c43aa0b Mon Sep 17 00:00:00 2001 From: Paul James Date: Wed, 4 Jan 2023 06:21:03 +0100 Subject: [PATCH 026/139] [Keyboard] Stop LED1 from flashing on layer change (#19427) --- keyboards/peej/lumberjack/lumberjack.c | 1 - 1 file changed, 1 deletion(-) diff --git a/keyboards/peej/lumberjack/lumberjack.c b/keyboards/peej/lumberjack/lumberjack.c index 34e5a2848c27..2bdb49f6e3d4 100644 --- a/keyboards/peej/lumberjack/lumberjack.c +++ b/keyboards/peej/lumberjack/lumberjack.c @@ -23,7 +23,6 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { } layer_state_t layer_state_set_kb(layer_state_t state) { - writePinLow(LED1); writePin(LED2, state); return layer_state_set_user(state); From be024a1d43fcf73ca395b7eb74ef777b3c5515bd Mon Sep 17 00:00:00 2001 From: Carlo Date: Wed, 4 Jan 2023 06:21:32 +0100 Subject: [PATCH 027/139] feat(kprepublic/bm60hsrgb_poker): update carlosala keymap (#19426) --- .../rev1/keymaps/carlosala/config.h | 4 +++- .../rev1/keymaps/carlosala/keymap.c | 20 +++++++++---------- .../rev1/keymaps/carlosala/rules.mk | 1 + 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev1/keymaps/carlosala/config.h b/keyboards/kprepublic/bm60hsrgb_poker/rev1/keymaps/carlosala/config.h index 4eba7eea7d0b..816e95d1c1a3 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev1/keymaps/carlosala/config.h +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev1/keymaps/carlosala/config.h @@ -3,5 +3,7 @@ #pragma once -#define TAPPING_TERM 175 +#define FORCE_NKRO +#define TAPPING_FORCE_HOLD +#define TAPPING_TERM 150 #define UNICODE_SELECTED_MODES UNICODE_MODE_LINUX diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev1/keymaps/carlosala/keymap.c b/keyboards/kprepublic/bm60hsrgb_poker/rev1/keymaps/carlosala/keymap.c index 7f0b366304e3..c58517e8b600 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev1/keymaps/carlosala/keymap.c +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev1/keymaps/carlosala/keymap.c @@ -11,15 +11,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_CAPS), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL), [1] = LAYOUT_60_ansi( - KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, - KC_TRNS, RGB_MOD, RGB_SPI, RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_HOME, KC_END, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_RMOD, RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_TOG, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_BRID, KC_BRIU, KC_TRNS, KC_TRNS, KC_TRNS, LALT(KC_F4), - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, + _______, RGB_MOD, RGB_SPI, RGB_HUI, RGB_SAI, RGB_VAI, _______, KC_HOME, KC_END, _______, KC_PSCR, _______, _______, _______, + _______, RGB_RMOD, RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_BRID, KC_BRIU, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______), [2] = LAYOUT_60_ansi( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UC(0x00B7), KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT) + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, + _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, UC(0x00B7), _______, _______, + _______, _______, _______, _______, _______, _______, _______, QK_BOOT) }; diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev1/keymaps/carlosala/rules.mk b/keyboards/kprepublic/bm60hsrgb_poker/rev1/keymaps/carlosala/rules.mk index 12dd57c5576b..f5c69561fcd8 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev1/keymaps/carlosala/rules.mk +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev1/keymaps/carlosala/rules.mk @@ -1,3 +1,4 @@ +LTO_ENABLE = yes MOUSEKEY_ENABLE = no NKRO_ENABLE = yes UNICODE_ENABLE = yes From 6a02eb2874d2a5a724185dd30cd28cf6d7181cb0 Mon Sep 17 00:00:00 2001 From: SapuSeven Date: Wed, 4 Jan 2023 07:18:16 +0100 Subject: [PATCH 028/139] Add SapuSeven MacroPad12 (#19466) * Add SapuSeven MacroPad12 * Update image url Co-authored-by: Drashna Jaelre * Remove unnecessary layers Co-authored-by: Joel Challis Co-authored-by: Drashna Jaelre Co-authored-by: Joel Challis --- keyboards/sapuseven/macropad12/info.json | 43 +++++++++++++++++++ .../macropad12/keymaps/default/keymap.c | 25 +++++++++++ .../sapuseven/macropad12/keymaps/via/keymap.c | 40 +++++++++++++++++ .../sapuseven/macropad12/keymaps/via/rules.mk | 1 + keyboards/sapuseven/macropad12/readme.md | 28 ++++++++++++ keyboards/sapuseven/macropad12/rules.mk | 1 + 6 files changed, 138 insertions(+) create mode 100644 keyboards/sapuseven/macropad12/info.json create mode 100644 keyboards/sapuseven/macropad12/keymaps/default/keymap.c create mode 100644 keyboards/sapuseven/macropad12/keymaps/via/keymap.c create mode 100644 keyboards/sapuseven/macropad12/keymaps/via/rules.mk create mode 100644 keyboards/sapuseven/macropad12/readme.md create mode 100644 keyboards/sapuseven/macropad12/rules.mk diff --git a/keyboards/sapuseven/macropad12/info.json b/keyboards/sapuseven/macropad12/info.json new file mode 100644 index 000000000000..72559982a245 --- /dev/null +++ b/keyboards/sapuseven/macropad12/info.json @@ -0,0 +1,43 @@ +{ + "manufacturer": "SapuSeven", + "keyboard_name": "MacroPad12", + "maintainer": "SapuSeven", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["B7", "B6", "B5", "B4"], + "rows": ["D6", "D5", "D4"] + }, + "processor": "atmega32u2", + "usb": { + "device_version": "1.0.0", + "vid": "0x1209", + "pid": "0x7337" + }, + "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/sapuseven/macropad12/keymaps/default/keymap.c b/keyboards/sapuseven/macropad12/keymaps/default/keymap.c new file mode 100644 index 000000000000..1cfa2601037e --- /dev/null +++ b/keyboards/sapuseven/macropad12/keymaps/default/keymap.c @@ -0,0 +1,25 @@ +/* Copyright 2023 SapuSeven + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_1, KC_2, KC_3, KC_PLUS, + KC_4, KC_5, KC_6, KC_MINUS, + KC_7, KC_8, KC_9, KC_0 + ) +}; diff --git a/keyboards/sapuseven/macropad12/keymaps/via/keymap.c b/keyboards/sapuseven/macropad12/keymaps/via/keymap.c new file mode 100644 index 000000000000..771c3efc9a37 --- /dev/null +++ b/keyboards/sapuseven/macropad12/keymaps/via/keymap.c @@ -0,0 +1,40 @@ +/* Copyright 2023 SapuSeven + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_1, KC_2, KC_3, KC_PLUS, + KC_4, KC_5, KC_6, KC_MINUS, + KC_7, KC_8, KC_9, KC_0 + ), + [1] = LAYOUT( + KC_F1, KC_F2, KC_F3, KC_F4, + KC_F5, KC_F6, KC_F7, KC_F8, + KC_F9, KC_F10, KC_F11, KC_F12 + ), + [2] = LAYOUT( + KC_F13, KC_F14, KC_F15, KC_F16, + KC_F17, KC_F18, KC_F19, KC_F20, + KC_F21, KC_F22, KC_F23, KC_F24 + ), + [3] = LAYOUT( + KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO + ) +}; diff --git a/keyboards/sapuseven/macropad12/keymaps/via/rules.mk b/keyboards/sapuseven/macropad12/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/sapuseven/macropad12/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/sapuseven/macropad12/readme.md b/keyboards/sapuseven/macropad12/readme.md new file mode 100644 index 000000000000..e7d4195454df --- /dev/null +++ b/keyboards/sapuseven/macropad12/readme.md @@ -0,0 +1,28 @@ +# macropad + +![macropad12](https://i.imgur.com/StqDhH8h.png) + +A simple, configurable 12-key MacroPad. + +* Keyboard Maintainer: [SapuSeven](https://github.com/SapuSeven) +* Hardware Supported: MacroPad12 PCB v2.0 +* Hardware Availability: *coming soon* + +Make example for this keyboard (after setting up your build environment): + + make sapuseven/macropad12:default + +Flashing example for this keyboard: + + make sapuseven/macropad12:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. +Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the top left key and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB using a thin long object while the keyboard is connected +* **Keycode in layout**: Press the key mapped to `BOOTLOADER` if it is available diff --git a/keyboards/sapuseven/macropad12/rules.mk b/keyboards/sapuseven/macropad12/rules.mk new file mode 100644 index 000000000000..6e7633bfe015 --- /dev/null +++ b/keyboards/sapuseven/macropad12/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank From e2ef3c8cc9df49132b59894ad63bb3cfbd530f77 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 5 Jan 2023 06:41:20 +1100 Subject: [PATCH 029/139] Bump anothrNick/github-tag-action from 1.56.0 to 1.57.0 (#19502) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/auto_tag.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/auto_tag.yml b/.github/workflows/auto_tag.yml index a480bd93cc98..62f3ec6acbd9 100644 --- a/.github/workflows/auto_tag.yml +++ b/.github/workflows/auto_tag.yml @@ -31,7 +31,7 @@ jobs: fetch-depth: 0 - name: Bump version and push tag - uses: anothrNick/github-tag-action@1.56.0 + uses: anothrNick/github-tag-action@1.57.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} DEFAULT_BUMP: 'patch' From 84a642266c55407175456ebad5712ef12f59448f Mon Sep 17 00:00:00 2001 From: Paul Massendari Date: Thu, 5 Jan 2023 16:12:46 +0100 Subject: [PATCH 030/139] A comma was missing (#19507) --- docs/feature_combo.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/feature_combo.md b/docs/feature_combo.md index 2696ff68334c..3af8b83643ba 100644 --- a/docs/feature_combo.md +++ b/docs/feature_combo.md @@ -55,7 +55,7 @@ const uint16_t PROGMEM sd_combo[] = {KC_S, KC_D, COMBO_END}; combo_t key_combos[COMBO_COUNT] = { [AB_ESC] = COMBO(ab_combo, KC_ESC), [JK_TAB] = COMBO(jk_combo, KC_TAB), - [QW_SFT] = COMBO(qw_combo, KC_LSFT) + [QW_SFT] = COMBO(qw_combo, KC_LSFT), [SD_LAYER] = COMBO(sd_combo, MO(_LAYER)), }; ``` From 64508caa76ec6d01ffb33116f6c1c0c4d52093f1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 5 Jan 2023 19:32:57 +0000 Subject: [PATCH 031/139] Bump anothrNick/github-tag-action from 1.57.0 to 1.58.0 (#19509) Bumps [anothrNick/github-tag-action](https://github.com/anothrNick/github-tag-action) from 1.57.0 to 1.58.0. - [Release notes](https://github.com/anothrNick/github-tag-action/releases) - [Commits](https://github.com/anothrNick/github-tag-action/compare/1.57.0...1.58.0) --- updated-dependencies: - dependency-name: anothrNick/github-tag-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/auto_tag.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/auto_tag.yml b/.github/workflows/auto_tag.yml index 62f3ec6acbd9..3574eee2f15f 100644 --- a/.github/workflows/auto_tag.yml +++ b/.github/workflows/auto_tag.yml @@ -31,7 +31,7 @@ jobs: fetch-depth: 0 - name: Bump version and push tag - uses: anothrNick/github-tag-action@1.57.0 + uses: anothrNick/github-tag-action@1.58.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} DEFAULT_BUMP: 'patch' From 4a7d65b9d74af40fd5f92b58aad250f33f1af86a Mon Sep 17 00:00:00 2001 From: Sergey Vlasov Date: Fri, 6 Jan 2023 02:40:53 +0300 Subject: [PATCH 032/139] Fix MATRIX_COLS and MATRIX_ROWS generation for custom matrix (#19508) The code which generated the MATRIX_COLS and MATRIX_ROWS defines from the JSON information was checking the presence of the `matrix_pins` key, which may not exist if a custom matrix is used. Check the presence of `matrix_size` instead. --- lib/python/qmk/cli/generate/config_h.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/python/qmk/cli/generate/config_h.py b/lib/python/qmk/cli/generate/config_h.py index 31b8d7063511..c256ec453101 100755 --- a/lib/python/qmk/cli/generate/config_h.py +++ b/lib/python/qmk/cli/generate/config_h.py @@ -62,7 +62,7 @@ def matrix_pins(matrix_pins, postfix=''): def generate_matrix_size(kb_info_json, config_h_lines): """Add the matrix size to the config.h. """ - if 'matrix_pins' in kb_info_json: + if 'matrix_size' in kb_info_json: config_h_lines.append(generate_define('MATRIX_COLS', kb_info_json['matrix_size']['cols'])) config_h_lines.append(generate_define('MATRIX_ROWS', kb_info_json['matrix_size']['rows'])) From b56ffc8920b6b66f39bacef2610266ccdc2592c9 Mon Sep 17 00:00:00 2001 From: Daniel Schaefer Date: Sat, 7 Jan 2023 01:12:30 +0800 Subject: [PATCH 033/139] docs: Fix IS31FL3743A driver name (#19518) Incorrectly documented. See: `builddefs/common_features.mk` --- docs/feature_led_matrix.md | 2 +- docs/feature_rgb_matrix.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/feature_led_matrix.md b/docs/feature_led_matrix.md index b91a47ae43e6..1cde9b66e1ac 100644 --- a/docs/feature_led_matrix.md +++ b/docs/feature_led_matrix.md @@ -82,7 +82,7 @@ Where `` is the applicable LED driver chip as below | Driver Name | Data Sheet | Capability | |-------------|------------|------------| | `IS31FL3742A` | [datasheet](https://www.lumissil.com/assets/pdf/core/IS31FL3742A_DS.pdf) | 180 LED, 30x6 Matrix | -| `ISSIFL3743A` | [datasheet](https://www.lumissil.com/assets/pdf/core/IS31FL3743A_DS.pdf) | 198 LED, 18x11 Matrix | +| `IS31FL3743A` | [datasheet](https://www.lumissil.com/assets/pdf/core/IS31FL3743A_DS.pdf) | 198 LED, 18x11 Matrix | | `IS31FL3745` | [datasheet](https://www.lumissil.com/assets/pdf/core/IS31FL3745_DS.pdf) | 144 LED, 18x8 Matrix | | `IS31FL3746A` | [datasheet](https://www.lumissil.com/assets/pdf/core/IS31FL3746A_DS.pdf) | 72 LED, 18x4 Matrix | diff --git a/docs/feature_rgb_matrix.md b/docs/feature_rgb_matrix.md index f5653b99e01a..bc51b63c71cf 100644 --- a/docs/feature_rgb_matrix.md +++ b/docs/feature_rgb_matrix.md @@ -252,7 +252,7 @@ Where `` is the applicable LED driver chip as below | Driver Name | Data Sheet | Capability | |-------------|------------|------------| | `IS31FL3742A` | [datasheet](https://www.lumissil.com/assets/pdf/core/IS31FL3742A_DS.pdf) | 60 RGB, 30x6 Matrix | -| `ISSIFL3743A` | [datasheet](https://www.lumissil.com/assets/pdf/core/IS31FL3743A_DS.pdf) | 66 RGB, 18x11 Matrix | +| `IS31FL3743A` | [datasheet](https://www.lumissil.com/assets/pdf/core/IS31FL3743A_DS.pdf) | 66 RGB, 18x11 Matrix | | `IS31FL3745` | [datasheet](https://www.lumissil.com/assets/pdf/core/IS31FL3745_DS.pdf) | 48 RGB, 18x8 Matrix | | `IS31FL3746A` | [datasheet](https://www.lumissil.com/assets/pdf/core/IS31FL3746A_DS.pdf) | 24 RGB, 18x4 Matrix | From 97910fac06d89dac5bd9791d7d544966f976e591 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 6 Jan 2023 21:45:23 +0000 Subject: [PATCH 034/139] Bump anothrNick/github-tag-action from 1.58.0 to 1.61.0 (#19519) Bumps [anothrNick/github-tag-action](https://github.com/anothrNick/github-tag-action) from 1.58.0 to 1.61.0. - [Release notes](https://github.com/anothrNick/github-tag-action/releases) - [Commits](https://github.com/anothrNick/github-tag-action/compare/1.58.0...1.61.0) --- updated-dependencies: - dependency-name: anothrNick/github-tag-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/auto_tag.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/auto_tag.yml b/.github/workflows/auto_tag.yml index 3574eee2f15f..07490a046456 100644 --- a/.github/workflows/auto_tag.yml +++ b/.github/workflows/auto_tag.yml @@ -31,7 +31,7 @@ jobs: fetch-depth: 0 - name: Bump version and push tag - uses: anothrNick/github-tag-action@1.58.0 + uses: anothrNick/github-tag-action@1.61.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} DEFAULT_BUMP: 'patch' From c5e3275299e5dc8f5da14df8115272875d38151c Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sat, 7 Jan 2023 17:02:40 +0000 Subject: [PATCH 035/139] Fix `handwired/onekey/kb2040` WS2812 pin (#19517) --- keyboards/handwired/onekey/kb2040/info.json | 2 +- keyboards/handwired/onekey/kb2040/rules.mk | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/keyboards/handwired/onekey/kb2040/info.json b/keyboards/handwired/onekey/kb2040/info.json index 7982db46782f..37ec3cf8c0a0 100644 --- a/keyboards/handwired/onekey/kb2040/info.json +++ b/keyboards/handwired/onekey/kb2040/info.json @@ -6,6 +6,6 @@ "rows": ["GP5"] }, "rgblight": { - "pin": "A1" + "pin": "GP17" } } diff --git a/keyboards/handwired/onekey/kb2040/rules.mk b/keyboards/handwired/onekey/kb2040/rules.mk index a5429ba9935e..df9735288286 100644 --- a/keyboards/handwired/onekey/kb2040/rules.mk +++ b/keyboards/handwired/onekey/kb2040/rules.mk @@ -1,4 +1,6 @@ OLED_ENABLE = yes OLED_DRIVER = SSD1306 +WS2812_DRIVER = vendor + OPT_DEFS += -DHAL_USE_I2C=TRUE From f6023a36bc439a582cd643b6c4b87c3a1dcf4b31 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sat, 7 Jan 2023 17:07:19 +0000 Subject: [PATCH 036/139] Remove invalid pin_compatible config from defaults (#19512) --- data/mappings/defaults.hjson | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/data/mappings/defaults.hjson b/data/mappings/defaults.hjson index 10657e5aa06e..13835721d409 100644 --- a/data/mappings/defaults.hjson +++ b/data/mappings/defaults.hjson @@ -13,38 +13,32 @@ "elite_pi": { "processor": "RP2040", "bootloader": "rp2040", - "board": "QMK_PM2040", - "pin_compatible": "promicro" + "board": "QMK_PM2040" }, "proton_c": { "processor": "STM32F303", "bootloader": "stm32-dfu", - "board": "QMK_PROTON_C", - "pin_compatible": "promicro" + "board": "QMK_PROTON_C" }, "kb2040": { "processor": "RP2040", "bootloader": "rp2040", - "board": "QMK_PM2040", - "pin_compatible": "promicro" + "board": "QMK_PM2040" }, "promicro_rp2040": { "processor": "RP2040", "bootloader": "rp2040", - "board": "QMK_PM2040", - "pin_compatible": "promicro" + "board": "QMK_PM2040" }, "blok": { "processor": "RP2040", "bootloader": "rp2040", - "board": "QMK_PM2040", - "pin_compatible": "promicro" + "board": "QMK_PM2040" }, "bit_c_pro": { "processor": "RP2040", "bootloader": "rp2040", - "board": "QMK_PM2040", - "pin_compatible": "promicro" + "board": "QMK_PM2040" }, "bluepill": { "processor": "STM32F103", @@ -64,14 +58,12 @@ "stemcell": { "processor": "STM32F411", "bootloader": "tinyuf2", - "board": "STEMCELL", - "pin_compatible": "promicro" + "board": "STEMCELL" }, "bonsai_c4": { "processor": "STM32F411", "bootloader": "stm32-dfu", - "board": "BONSAI_C4", - "pin_compatible": "promicro" + "board": "BONSAI_C4" } } } From 1c024bfa91196ac450aa8ac8baae845dc617cde1 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sun, 8 Jan 2023 15:26:37 +0000 Subject: [PATCH 037/139] Add some missing layout data (#19539) --- keyboards/acheron/shark/beta/info.json | 54 +++++++++++++++++ keyboards/edi/hardlight/mk1/info.json | 70 ++++++++++++++++++++++ keyboards/edi/hardlight/mk2/info.json | 70 ++++++++++++++++++++++ keyboards/handwired/pytest/info.json | 9 ++- keyboards/thevankeyboards/jetvan/info.json | 10 ++++ 5 files changed, 212 insertions(+), 1 deletion(-) diff --git a/keyboards/acheron/shark/beta/info.json b/keyboards/acheron/shark/beta/info.json index 5d0c6557e768..e763f04484cf 100644 --- a/keyboards/acheron/shark/beta/info.json +++ b/keyboards/acheron/shark/beta/info.json @@ -3,5 +3,59 @@ "usb": { "pid": "0x5369", "device_version": "0.0.2" + }, + "layouts": { + "LAYOUT_ortho_4x12": { + "layout": [ + { "x": 0, "y": 0 }, + { "x": 1, "y": 0 }, + { "x": 2, "y": 0 }, + { "x": 3, "y": 0 }, + { "x": 4, "y": 0 }, + { "x": 5, "y": 0 }, + { "x": 6, "y": 0 }, + { "x": 7, "y": 0 }, + { "x": 8, "y": 0 }, + { "x": 9, "y": 0 }, + { "x": 10, "y": 0 }, + { "x": 11, "y": 0 }, + { "x": 0, "y": 1 }, + { "x": 1, "y": 1 }, + { "x": 2, "y": 1 }, + { "x": 3, "y": 1 }, + { "x": 4, "y": 1 }, + { "x": 5, "y": 1 }, + { "x": 6, "y": 1 }, + { "x": 7, "y": 1 }, + { "x": 8, "y": 1 }, + { "x": 9, "y": 1 }, + { "x": 10, "y": 1 }, + { "x": 11, "y": 1 }, + { "x": 0, "y": 2 }, + { "x": 1, "y": 2 }, + { "x": 2, "y": 2 }, + { "x": 3, "y": 2 }, + { "x": 4, "y": 2 }, + { "x": 5, "y": 2 }, + { "x": 6, "y": 2 }, + { "x": 7, "y": 2 }, + { "x": 8, "y": 2 }, + { "x": 9, "y": 2 }, + { "x": 10, "y": 2 }, + { "x": 11, "y": 2 }, + { "x": 0, "y": 3 }, + { "x": 1, "y": 3 }, + { "x": 2, "y": 3 }, + { "x": 3, "y": 3 }, + { "x": 4, "y": 3 }, + { "x": 5, "y": 3 }, + { "x": 6, "y": 3 }, + { "x": 7, "y": 3 }, + { "x": 8, "y": 3 }, + { "x": 9, "y": 3 }, + { "x": 10, "y": 3 }, + { "x": 11, "y": 3 } + ] + } } } diff --git a/keyboards/edi/hardlight/mk1/info.json b/keyboards/edi/hardlight/mk1/info.json index f0ff1b915ff1..e8daa42a1c8f 100644 --- a/keyboards/edi/hardlight/mk1/info.json +++ b/keyboards/edi/hardlight/mk1/info.json @@ -5,5 +5,75 @@ "vid": "0xF7E0", "pid": "0x2401", "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT_ortho_4x16": { + "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 }, + { "x": 1, "y": 1 }, + { "x": 2, "y": 1 }, + { "x": 3, "y": 1 }, + { "x": 4, "y": 1 }, + { "x": 5, "y": 1 }, + { "x": 6, "y": 1 }, + { "x": 7, "y": 1 }, + { "x": 8, "y": 1 }, + { "x": 9, "y": 1 }, + { "x": 10, "y": 1 }, + { "x": 11, "y": 1 }, + { "x": 12, "y": 1 }, + { "x": 13, "y": 1 }, + { "x": 14, "y": 1 }, + { "x": 15, "y": 1 }, + { "x": 0, "y": 2 }, + { "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": 15, "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": 15, "y": 3 } + ] + } } } diff --git a/keyboards/edi/hardlight/mk2/info.json b/keyboards/edi/hardlight/mk2/info.json index 25e9b06d4975..5d09a0f2964f 100644 --- a/keyboards/edi/hardlight/mk2/info.json +++ b/keyboards/edi/hardlight/mk2/info.json @@ -5,5 +5,75 @@ "vid": "0xF7E0", "pid": "0x2408", "device_version": "0.0.7" + }, + "layouts": { + "LAYOUT_ortho_4x16": { + "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 }, + { "x": 1, "y": 1 }, + { "x": 2, "y": 1 }, + { "x": 3, "y": 1 }, + { "x": 4, "y": 1 }, + { "x": 5, "y": 1 }, + { "x": 6, "y": 1 }, + { "x": 7, "y": 1 }, + { "x": 8, "y": 1 }, + { "x": 9, "y": 1 }, + { "x": 10, "y": 1 }, + { "x": 11, "y": 1 }, + { "x": 12, "y": 1 }, + { "x": 13, "y": 1 }, + { "x": 14, "y": 1 }, + { "x": 15, "y": 1 }, + { "x": 0, "y": 2 }, + { "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": 15, "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": 15, "y": 3 } + ] + } } } diff --git a/keyboards/handwired/pytest/info.json b/keyboards/handwired/pytest/info.json index 2ba7d34d5232..11442461d446 100644 --- a/keyboards/handwired/pytest/info.json +++ b/keyboards/handwired/pytest/info.json @@ -8,5 +8,12 @@ "device_version": "0.0.1" }, "processor": "atmega32u4", - "bootloader": "atmel-dfu" + "bootloader": "atmel-dfu", + "layouts": { + "LAYOUT_ortho_1x1": { + "layout": [ + { "w": 1, "x": 0, "y": 0 } + ] + } + } } diff --git a/keyboards/thevankeyboards/jetvan/info.json b/keyboards/thevankeyboards/jetvan/info.json index f017d743dd3e..8a9d4c699198 100644 --- a/keyboards/thevankeyboards/jetvan/info.json +++ b/keyboards/thevankeyboards/jetvan/info.json @@ -7,5 +7,15 @@ "vid": "0xFEAE", "pid": "0x8858", "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0, "w":1.75}, + {"x":0, "y":1, "w":1.25}, {"x":1.25, "y":1}, {"x":2.25, "y":1}, {"x":3.25, "y":1}, {"x":4.25, "y":1}, {"x":5.25, "y":1}, {"x":6.25, "y":1}, {"x":7.25, "y":1}, {"x":8.25, "y":1}, {"x":9.25, "y":1}, {"x":10.25, "y":1}, {"x":11.25, "y":1, "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":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3, "w":1.25}, {"x":3.5, "w":6.25, "y":3}, {"x":9.75, "y":3}, {"x":10.75, "y":3}, {"x":11.75, "y":3} + ] + } } } From 2891d901c3f51145290ed7bdc614830ceb93d1e3 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Tue, 10 Jan 2023 07:19:20 +1100 Subject: [PATCH 038/139] New ChibiOS SVN URL, added new release. (#19493) --- util/update_chibios_mirror.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/util/update_chibios_mirror.sh b/util/update_chibios_mirror.sh index bd4c5c152980..05e22fa2eaa9 100755 --- a/util/update_chibios_mirror.sh +++ b/util/update_chibios_mirror.sh @@ -7,7 +7,7 @@ chibios_branches="trunk stable_20.3.x stable_21.11.x" # The ChibiOS tags to mirror -chibios_tags="ver20.3.1 ver20.3.2 ver20.3.3 ver20.3.4 ver21.11.1 ver21.11.2" +chibios_tags="ver20.3.1 ver20.3.2 ver20.3.3 ver20.3.4 ver21.11.1 ver21.11.2 ver21.11.3" # The ChibiOS-Contrib branches to mirror contrib_branches="chibios-20.3.x chibios-21.11.x" @@ -32,7 +32,7 @@ contrib_git_config=$(realpath "$contrib_git_location/config") cd "$chibios_dir" if [[ -z "$(cat "$chibios_git_config" | grep '\[svn-remote "svn"\]')" ]] ; then - git svn init --stdlayout --prefix='svn/' http://svn.osdn.net/svnroot/chibios/ + git svn init --stdlayout --prefix='svn/' https://svn.code.sf.net/p/chibios/code/ fi if [[ -z "$(cat "$chibios_git_config" | grep '\[remote "qmk"\]')" ]] ; then From 01de98428c0c7e44e7a3cb82e2e077f84e92cb22 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Tue, 10 Jan 2023 08:33:28 +1100 Subject: [PATCH 039/139] [Keychron Q5] Build failures: recursive function call. (#19553) --- keyboards/keychron/q5/q5.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/keychron/q5/q5.c b/keyboards/keychron/q5/q5.c index f1ccf482149b..4130dcebe390 100644 --- a/keyboards/keychron/q5/q5.c +++ b/keyboards/keychron/q5/q5.c @@ -69,7 +69,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { return true; } -bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { +bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) { return false; } // RGB_MATRIX_INDICATOR_SET_COLOR(index, red, green, blue); # if defined(CAPS_LOCK_LED_INDEX) From 0becd33c4d3fabcfb0ccb37ae5bc7e0dda9e9d79 Mon Sep 17 00:00:00 2001 From: Manna Harbour <51143715+manna-harbour@users.noreply.github.com> Date: Tue, 10 Jan 2023 10:50:18 +1100 Subject: [PATCH 040/139] [keyboard] Enable community layout support (#19499) --- keyboards/dailycraft/wings42/rev1/info.json | 3 +++ keyboards/janus/info.json | 5 ++++- keyboards/obosob/steal_this_keyboard/info.json | 3 +++ keyboards/reviung/reviung34/info.json | 6 ++++++ keyboards/splitkb/aurora/sweep/rev1/info.json | 3 +++ 5 files changed, 19 insertions(+), 1 deletion(-) diff --git a/keyboards/dailycraft/wings42/rev1/info.json b/keyboards/dailycraft/wings42/rev1/info.json index 72ece409da20..a2fb5ddcf4c1 100644 --- a/keyboards/dailycraft/wings42/rev1/info.json +++ b/keyboards/dailycraft/wings42/rev1/info.json @@ -8,6 +8,9 @@ "pid": "0x0003", "device_version": "0.0.1" }, + "community_layouts": [ + "split_3x6_3" + ], "layouts": { "LAYOUT_split_3x6_3": { "layout": [ diff --git a/keyboards/janus/info.json b/keyboards/janus/info.json index 6169dc6ed5d9..c5feb8504e0e 100644 --- a/keyboards/janus/info.json +++ b/keyboards/janus/info.json @@ -27,6 +27,9 @@ "split": { "enabled": true }, + "community_layouts": [ + "split_3x5_2" + ], "layouts": { "LAYOUT_split_3x5_2": { "layout": [ @@ -72,4 +75,4 @@ "pid": "0x9A25", "vid": "0xFEED" } -} \ No newline at end of file +} diff --git a/keyboards/obosob/steal_this_keyboard/info.json b/keyboards/obosob/steal_this_keyboard/info.json index a20119208dc0..969439687316 100644 --- a/keyboards/obosob/steal_this_keyboard/info.json +++ b/keyboards/obosob/steal_this_keyboard/info.json @@ -8,6 +8,9 @@ "pid": "0x50AD", "device_version": "0.0.1" }, + "community_layouts": [ + "split_3x5_2" + ], "layouts": { "LAYOUT_split_3x5_2": { "layout": [ diff --git a/keyboards/reviung/reviung34/info.json b/keyboards/reviung/reviung34/info.json index 2738014d21a5..c11eef91b1d7 100755 --- a/keyboards/reviung/reviung34/info.json +++ b/keyboards/reviung/reviung34/info.json @@ -8,6 +8,12 @@ "pid": "0x4E03", "device_version": "0.0.1" }, + "community_layouts": [ + "split_3x5_2" + ], + "layout_aliases": { + "LAYOUT_split_3x5_2": "LAYOUT_reviung34" + }, "layouts": { "LAYOUT_reviung34": { "layout": [ diff --git a/keyboards/splitkb/aurora/sweep/rev1/info.json b/keyboards/splitkb/aurora/sweep/rev1/info.json index 104879b28e84..57b2754eac67 100644 --- a/keyboards/splitkb/aurora/sweep/rev1/info.json +++ b/keyboards/splitkb/aurora/sweep/rev1/info.json @@ -56,6 +56,9 @@ ] } }, + "community_layouts": [ + "split_3x5_2" + ], "diode_direction": "ROW2COL", "matrix_pins": { "rows": ["F6", "F5", "F7", "B1"], From caca029e121feb0695f20433dff29429a239e77c Mon Sep 17 00:00:00 2001 From: Dennis Kruyt Date: Tue, 10 Jan 2023 01:48:11 +0100 Subject: [PATCH 041/139] [Keyboard] add YMDK40 AIR40 (#19276) Co-authored-by: jack <0x6a73@protonmail.com> Co-authored-by: Drashna Jaelre --- keyboards/ymdk/ymd40/air40/air40.c | 43 +++ keyboards/ymdk/ymd40/air40/air40.h | 79 +++++ keyboards/ymdk/ymd40/air40/config.h | 94 ++++++ keyboards/ymdk/ymd40/air40/info.json | 284 ++++++++++++++++++ .../ymdk/ymd40/air40/keymaps/default/keymap.c | 55 ++++ .../ymdk/ymd40/air40/keymaps/via/keymap.c | 44 +++ .../ymdk/ymd40/air40/keymaps/via/rules.mk | 2 + keyboards/ymdk/ymd40/air40/readme.md | 19 ++ keyboards/ymdk/ymd40/air40/rules.mk | 26 ++ 9 files changed, 646 insertions(+) create mode 100644 keyboards/ymdk/ymd40/air40/air40.c create mode 100644 keyboards/ymdk/ymd40/air40/air40.h create mode 100644 keyboards/ymdk/ymd40/air40/config.h create mode 100644 keyboards/ymdk/ymd40/air40/info.json create mode 100644 keyboards/ymdk/ymd40/air40/keymaps/default/keymap.c create mode 100644 keyboards/ymdk/ymd40/air40/keymaps/via/keymap.c create mode 100644 keyboards/ymdk/ymd40/air40/keymaps/via/rules.mk create mode 100644 keyboards/ymdk/ymd40/air40/readme.md create mode 100644 keyboards/ymdk/ymd40/air40/rules.mk diff --git a/keyboards/ymdk/ymd40/air40/air40.c b/keyboards/ymdk/ymd40/air40/air40.c new file mode 100644 index 000000000000..50e7ad9106d6 --- /dev/null +++ b/keyboards/ymdk/ymd40/air40/air40.c @@ -0,0 +1,43 @@ +/* Copyright 2022 Dennis Kruyt (dennis@kruyt.org) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "air40.h" + +#if defined(RGB_MATRIX_ENABLE) +led_config_t g_led_config = { + { + // Key Matrix to LED Index for center 2u + {11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0}, + {23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12}, + {35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24}, + {50, 49, 48, 47, 46, 43, 41, 40, 39, 38, 37, 36} + }, { + // LED Index to Physical Position, more positions due to extra leds for other layout options + { 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}, {85, 64}, {94, 64}, {103, 64}, {112, 64}, {122, 64}, {142, 64}, {162, 64}, {183, 64}, {203, 64}, {224, 64} + + }, { + // LED Index to Flag + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 1, 1, 1, 1, 1 ,1 ,1, 1, 1, 1, 1, 1, 1, 1 + + } +}; +#endif diff --git a/keyboards/ymdk/ymd40/air40/air40.h b/keyboards/ymdk/ymd40/air40/air40.h new file mode 100644 index 000000000000..d28f6d591aa4 --- /dev/null +++ b/keyboards/ymdk/ymd40/air40/air40.h @@ -0,0 +1,79 @@ +/* Copyright 2021 James Young (@noroadsleft) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT_ortho_4x12( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B }, \ +} + +#define LAYOUT_ortho_4x12_2x2u( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \ + K30, K31, K32, K33, K34, K37, K38, K39, K3A, K3B \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B }, \ + { K30, K31, K32, K33, K34, KC_NO, KC_NO, K37, K38, K39, K3A, K3B }, \ +} + +#define LAYOUT_ortho_4x12_1x2uR( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \ + K30, K31, K32, K33, K34, K35, K37, K38, K39, K3A, K3B \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B }, \ + { K30, K31, K32, K33, K34, K35, KC_NO, K37, K38, K39, K3A, K3B }, \ +} + +#define LAYOUT_ortho_4x12_1x2uL( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \ + K30, K31, K32, K33, K34, K36, K37, K38, K39, K3A, K3B \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B }, \ + { K30, K31, K32, K33, K34, KC_NO, K36, K37, K38, K39, K3A, K3B }, \ +} + +#define LAYOUT_ortho_4x12_1x2uC( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \ + K30, K31, K32, K33, K34, K35, K37, K38, K39, K3A, K3B \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B }, \ + { K30, K31, K32, K33, K34, K35, KC_NO, K37, K38, K39, K3A, K3B }, \ +} diff --git a/keyboards/ymdk/ymd40/air40/config.h b/keyboards/ymdk/ymd40/air40/config.h new file mode 100644 index 000000000000..78a7ba5c0483 --- /dev/null +++ b/keyboards/ymdk/ymd40/air40/config.h @@ -0,0 +1,94 @@ +/* Copyright 2021 Dennis Kruyt (dennis@kruyt.org) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "config_common.h" + +/* key matrix size */ +#define MATRIX_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 { D0, B3, B2, B1 } +#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 } + +#define DIODE_DIRECTION COL2ROW + +#define RGB_DI_PIN E2 +#define RGB_MATRIX_LED_COUNT 51 +#ifdef RGB_MATRIX_ENABLE +# define RGB_MATRIX_KEYPRESSES // reacts to keypresses +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 130 // Limit to vendor-recommended value +# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +// RGB Matrix Animation modes. Explicitly enabled +// For full list of effects, see: +// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects +# define ENABLE_RGB_MATRIX_ALPHAS_MODS +# define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN +# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +# define ENABLE_RGB_MATRIX_BREATHING +# define ENABLE_RGB_MATRIX_BAND_SAT +# define ENABLE_RGB_MATRIX_BAND_VAL +# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +# define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT +# define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL +# define ENABLE_RGB_MATRIX_CYCLE_ALL +# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +# define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN +# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN +# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +# define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL +# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL +# define ENABLE_RGB_MATRIX_DUAL_BEACON +# define ENABLE_RGB_MATRIX_RAINBOW_BEACON +# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS +# define ENABLE_RGB_MATRIX_RAINDROPS +# define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +# define ENABLE_RGB_MATRIX_HUE_BREATHING +# define ENABLE_RGB_MATRIX_HUE_PENDULUM +# define ENABLE_RGB_MATRIX_HUE_WAVE +# define ENABLE_RGB_MATRIX_PIXEL_RAIN +# define ENABLE_RGB_MATRIX_PIXEL_FLOW +# define ENABLE_RGB_MATRIX_PIXEL_FRACTAL +// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined +# define ENABLE_RGB_MATRIX_TYPING_HEATMAP +# define ENABLE_RGB_MATRIX_DIGITAL_RAIN +// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +# define ENABLE_RGB_MATRIX_SPLASH +# define ENABLE_RGB_MATRIX_MULTISPLASH +# define ENABLE_RGB_MATRIX_SOLID_SPLASH +# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH +#endif \ No newline at end of file diff --git a/keyboards/ymdk/ymd40/air40/info.json b/keyboards/ymdk/ymd40/air40/info.json new file mode 100644 index 000000000000..38cc6970ca7b --- /dev/null +++ b/keyboards/ymdk/ymd40/air40/info.json @@ -0,0 +1,284 @@ +{ + "keyboard_name": "YMDK Air40", + "manufacturer": "YMDK", + "url": "", + "maintainer": "qmk", + "usb": { + "vid": "0x45D4", + "pid": "0x0911", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT_ortho_4x12": { + "layout": [ + {"label":"K00 (D0,F1)", "x":0, "y":0}, + {"label":"K01 (D0,F0)", "x":1, "y":0}, + {"label":"K02 (D0,B0)", "x":2, "y":0}, + {"label":"K03 (D0,C7)", "x":3, "y":0}, + {"label":"K04 (D0,F4)", "x":4, "y":0}, + {"label":"K05 (D0,F5)", "x":5, "y":0}, + {"label":"K06 (D0,F6)", "x":6, "y":0}, + {"label":"K07 (D0,F7)", "x":7, "y":0}, + {"label":"K08 (D0,D4)", "x":8, "y":0}, + {"label":"K09 (D0,D6)", "x":9, "y":0}, + {"label":"K0A (D0,B4)", "x":10, "y":0}, + {"label":"K0B (D0,D7)", "x":11, "y":0}, + + {"label":"K10 (B3,F1)", "x":0, "y":1}, + {"label":"K11 (B3,F0)", "x":1, "y":1}, + {"label":"K12 (B3,B0)", "x":2, "y":1}, + {"label":"K13 (B3,C7)", "x":3, "y":1}, + {"label":"K14 (B3,F4)", "x":4, "y":1}, + {"label":"K15 (B3,F5)", "x":5, "y":1}, + {"label":"K16 (B3,F6)", "x":6, "y":1}, + {"label":"K17 (B3,F7)", "x":7, "y":1}, + {"label":"K18 (B3,D4)", "x":8, "y":1}, + {"label":"K19 (B3,D6)", "x":9, "y":1}, + {"label":"K1A (B3,B4)", "x":10, "y":1}, + {"label":"K1B (B3,D7)", "x":11, "y":1}, + + {"label":"K20 (B2,F1)", "x":0, "y":2}, + {"label":"K21 (B2,F0)", "x":1, "y":2}, + {"label":"K22 (B2,B0)", "x":2, "y":2}, + {"label":"K23 (B2,C7)", "x":3, "y":2}, + {"label":"K24 (B2,F4)", "x":4, "y":2}, + {"label":"K25 (B2,F5)", "x":5, "y":2}, + {"label":"K26 (B2,F6)", "x":6, "y":2}, + {"label":"K27 (B2,F7)", "x":7, "y":2}, + {"label":"K28 (B2,D4)", "x":8, "y":2}, + {"label":"K29 (B2,D6)", "x":9, "y":2}, + {"label":"K2A (B2,B4)", "x":10, "y":2}, + {"label":"K2B (B2,D7)", "x":11, "y":2}, + + {"label":"K30 (B1,F1)", "x":0, "y":3}, + {"label":"K31 (B1,F0)", "x":1, "y":3}, + {"label":"K32 (B1,B0)", "x":2, "y":3}, + {"label":"K33 (B1,C7)", "x":3, "y":3}, + {"label":"K34 (B1,F4)", "x":4, "y":3}, + {"label":"K35 (B1,F5)", "x":5, "y":3}, + {"label":"K36 (B1,F6)", "x":6, "y":3}, + {"label":"K37 (B1,F7)", "x":7, "y":3}, + {"label":"K38 (B1,D4)", "x":8, "y":3}, + {"label":"K39 (B1,D6)", "x":9, "y":3}, + {"label":"K3A (B1,B4)", "x":10, "y":3}, + {"label":"K3B (B1,D7)", "x":11, "y":3} + ] + }, + "LAYOUT_ortho_4x12_2x2u": { + "layout": [ + {"label":"K00 (D0,F1)", "x":0, "y":0}, + {"label":"K01 (D0,F0)", "x":1, "y":0}, + {"label":"K02 (D0,B0)", "x":2, "y":0}, + {"label":"K03 (D0,C7)", "x":3, "y":0}, + {"label":"K04 (D0,F4)", "x":4, "y":0}, + {"label":"K05 (D0,F5)", "x":5, "y":0}, + {"label":"K06 (D0,F6)", "x":6, "y":0}, + {"label":"K07 (D0,F7)", "x":7, "y":0}, + {"label":"K08 (D0,D4)", "x":8, "y":0}, + {"label":"K09 (D0,D6)", "x":9, "y":0}, + {"label":"K0A (D0,B4)", "x":10, "y":0}, + {"label":"K0B (D0,D7)", "x":11, "y":0}, + + {"label":"K10 (B3,F1)", "x":0, "y":1}, + {"label":"K11 (B3,F0)", "x":1, "y":1}, + {"label":"K12 (B3,B0)", "x":2, "y":1}, + {"label":"K13 (B3,C7)", "x":3, "y":1}, + {"label":"K14 (B3,F4)", "x":4, "y":1}, + {"label":"K15 (B3,F5)", "x":5, "y":1}, + {"label":"K16 (B3,F6)", "x":6, "y":1}, + {"label":"K17 (B3,F7)", "x":7, "y":1}, + {"label":"K18 (B3,D4)", "x":8, "y":1}, + {"label":"K19 (B3,D6)", "x":9, "y":1}, + {"label":"K1A (B3,B4)", "x":10, "y":1}, + {"label":"K1B (B3,D7)", "x":11, "y":1}, + + {"label":"K20 (B2,F1)", "x":0, "y":2}, + {"label":"K21 (B2,F0)", "x":1, "y":2}, + {"label":"K22 (B2,B0)", "x":2, "y":2}, + {"label":"K23 (B2,C7)", "x":3, "y":2}, + {"label":"K24 (B2,F4)", "x":4, "y":2}, + {"label":"K25 (B2,F5)", "x":5, "y":2}, + {"label":"K26 (B2,F6)", "x":6, "y":2}, + {"label":"K27 (B2,F7)", "x":7, "y":2}, + {"label":"K28 (B2,D4)", "x":8, "y":2}, + {"label":"K29 (B2,D6)", "x":9, "y":2}, + {"label":"K2A (B2,B4)", "x":10, "y":2}, + {"label":"K2B (B2,D7)", "x":11, "y":2}, + + {"label":"K30 (B1,F1)", "x":0, "y":3}, + {"label":"K31 (B1,F0)", "x":1, "y":3}, + {"label":"K32 (B1,B0)", "x":2, "y":3}, + {"label":"K33 (B1,C7)", "x":3, "y":3}, + {"label":"K34 (B1,F4)", "x":4, "y":3, "w":2}, + {"label":"K37 (B1,F7)", "x":6, "y":3, "w":2}, + {"label":"K38 (B1,D4)", "x":8, "y":3}, + {"label":"K39 (B1,D6)", "x":9, "y":3}, + {"label":"K3A (B1,B4)", "x":10, "y":3}, + {"label":"K3B (B1,D7)", "x":11, "y":3} + ] + }, + "LAYOUT_ortho_4x12_1x2uR": { + "layout": [ + {"label":"K00 (D0,F1)", "x":0, "y":0}, + {"label":"K01 (D0,F0)", "x":1, "y":0}, + {"label":"K02 (D0,B0)", "x":2, "y":0}, + {"label":"K03 (D0,C7)", "x":3, "y":0}, + {"label":"K04 (D0,F4)", "x":4, "y":0}, + {"label":"K05 (D0,F5)", "x":5, "y":0}, + {"label":"K06 (D0,F6)", "x":6, "y":0}, + {"label":"K07 (D0,F7)", "x":7, "y":0}, + {"label":"K08 (D0,D4)", "x":8, "y":0}, + {"label":"K09 (D0,D6)", "x":9, "y":0}, + {"label":"K0A (D0,B4)", "x":10, "y":0}, + {"label":"K0B (D0,D7)", "x":11, "y":0}, + + {"label":"K10 (B3,F1)", "x":0, "y":1}, + {"label":"K11 (B3,F0)", "x":1, "y":1}, + {"label":"K12 (B3,B0)", "x":2, "y":1}, + {"label":"K13 (B3,C7)", "x":3, "y":1}, + {"label":"K14 (B3,F4)", "x":4, "y":1}, + {"label":"K15 (B3,F5)", "x":5, "y":1}, + {"label":"K16 (B3,F6)", "x":6, "y":1}, + {"label":"K17 (B3,F7)", "x":7, "y":1}, + {"label":"K18 (B3,D4)", "x":8, "y":1}, + {"label":"K19 (B3,D6)", "x":9, "y":1}, + {"label":"K1A (B3,B4)", "x":10, "y":1}, + {"label":"K1B (B3,D7)", "x":11, "y":1}, + + {"label":"K20 (B2,F1)", "x":0, "y":2}, + {"label":"K21 (B2,F0)", "x":1, "y":2}, + {"label":"K22 (B2,B0)", "x":2, "y":2}, + {"label":"K23 (B2,C7)", "x":3, "y":2}, + {"label":"K24 (B2,F4)", "x":4, "y":2}, + {"label":"K25 (B2,F5)", "x":5, "y":2}, + {"label":"K26 (B2,F6)", "x":6, "y":2}, + {"label":"K27 (B2,F7)", "x":7, "y":2}, + {"label":"K28 (B2,D4)", "x":8, "y":2}, + {"label":"K29 (B2,D6)", "x":9, "y":2}, + {"label":"K2A (B2,B4)", "x":10, "y":2}, + {"label":"K2B (B2,D7)", "x":11, "y":2}, + + {"label":"K30 (B1,F1)", "x":0, "y":3}, + {"label":"K31 (B1,F0)", "x":1, "y":3}, + {"label":"K32 (B1,B0)", "x":2, "y":3}, + {"label":"K33 (B1,C7)", "x":3, "y":3}, + {"label":"K34 (B1,F4)", "x":4, "y":3}, + {"label":"K35 (B1,F5)", "x":5, "y":3}, + {"label":"K37 (B1,F7)", "x":6, "y":3, "w":2}, + {"label":"K38 (B1,D4)", "x":8, "y":3}, + {"label":"K39 (B1,D6)", "x":9, "y":3}, + {"label":"K3A (B1,B4)", "x":10, "y":3}, + {"label":"K3B (B1,D7)", "x":11, "y":3} + ] + }, + "LAYOUT_ortho_4x12_1x2uL": { + "layout": [ + {"label":"K00 (D0,F1)", "x":0, "y":0}, + {"label":"K01 (D0,F0)", "x":1, "y":0}, + {"label":"K02 (D0,B0)", "x":2, "y":0}, + {"label":"K03 (D0,C7)", "x":3, "y":0}, + {"label":"K04 (D0,F4)", "x":4, "y":0}, + {"label":"K05 (D0,F5)", "x":5, "y":0}, + {"label":"K06 (D0,F6)", "x":6, "y":0}, + {"label":"K07 (D0,F7)", "x":7, "y":0}, + {"label":"K08 (D0,D4)", "x":8, "y":0}, + {"label":"K09 (D0,D6)", "x":9, "y":0}, + {"label":"K0A (D0,B4)", "x":10, "y":0}, + {"label":"K0B (D0,D7)", "x":11, "y":0}, + + {"label":"K10 (B3,F1)", "x":0, "y":1}, + {"label":"K11 (B3,F0)", "x":1, "y":1}, + {"label":"K12 (B3,B0)", "x":2, "y":1}, + {"label":"K13 (B3,C7)", "x":3, "y":1}, + {"label":"K14 (B3,F4)", "x":4, "y":1}, + {"label":"K15 (B3,F5)", "x":5, "y":1}, + {"label":"K16 (B3,F6)", "x":6, "y":1}, + {"label":"K17 (B3,F7)", "x":7, "y":1}, + {"label":"K18 (B3,D4)", "x":8, "y":1}, + {"label":"K19 (B3,D6)", "x":9, "y":1}, + {"label":"K1A (B3,B4)", "x":10, "y":1}, + {"label":"K1B (B3,D7)", "x":11, "y":1}, + + {"label":"K20 (B2,F1)", "x":0, "y":2}, + {"label":"K21 (B2,F0)", "x":1, "y":2}, + {"label":"K22 (B2,B0)", "x":2, "y":2}, + {"label":"K23 (B2,C7)", "x":3, "y":2}, + {"label":"K24 (B2,F4)", "x":4, "y":2}, + {"label":"K25 (B2,F5)", "x":5, "y":2}, + {"label":"K26 (B2,F6)", "x":6, "y":2}, + {"label":"K27 (B2,F7)", "x":7, "y":2}, + {"label":"K28 (B2,D4)", "x":8, "y":2}, + {"label":"K29 (B2,D6)", "x":9, "y":2}, + {"label":"K2A (B2,B4)", "x":10, "y":2}, + {"label":"K2B (B2,D7)", "x":11, "y":2}, + + {"label":"K30 (B1,F1)", "x":0, "y":3}, + {"label":"K31 (B1,F0)", "x":1, "y":3}, + {"label":"K32 (B1,B0)", "x":2, "y":3}, + {"label":"K33 (B1,C7)", "x":3, "y":3}, + {"label":"K34 (B1,F4)", "x":4, "y":3, "w":2}, + {"label":"K36 (B1,F6)", "x":6, "y":3}, + {"label":"K37 (B1,F7)", "x":7, "y":3}, + {"label":"K38 (B1,D4)", "x":8, "y":3}, + {"label":"K39 (B1,D6)", "x":9, "y":3}, + {"label":"K3A (B1,B4)", "x":10, "y":3}, + {"label":"K3B (B1,D7)", "x":11, "y":3} + ] + }, + "LAYOUT_ortho_4x12_1x2uC": { + "layout": [ + {"label":"K00 (D0,F1)", "x":0, "y":0}, + {"label":"K01 (D0,F0)", "x":1, "y":0}, + {"label":"K02 (D0,B0)", "x":2, "y":0}, + {"label":"K03 (D0,C7)", "x":3, "y":0}, + {"label":"K04 (D0,F4)", "x":4, "y":0}, + {"label":"K05 (D0,F5)", "x":5, "y":0}, + {"label":"K06 (D0,F6)", "x":6, "y":0}, + {"label":"K07 (D0,F7)", "x":7, "y":0}, + {"label":"K08 (D0,D4)", "x":8, "y":0}, + {"label":"K09 (D0,D6)", "x":9, "y":0}, + {"label":"K0A (D0,B4)", "x":10, "y":0}, + {"label":"K0B (D0,D7)", "x":11, "y":0}, + + {"label":"K10 (B3,F1)", "x":0, "y":1}, + {"label":"K11 (B3,F0)", "x":1, "y":1}, + {"label":"K12 (B3,B0)", "x":2, "y":1}, + {"label":"K13 (B3,C7)", "x":3, "y":1}, + {"label":"K14 (B3,F4)", "x":4, "y":1}, + {"label":"K15 (B3,F5)", "x":5, "y":1}, + {"label":"K16 (B3,F6)", "x":6, "y":1}, + {"label":"K17 (B3,F7)", "x":7, "y":1}, + {"label":"K18 (B3,D4)", "x":8, "y":1}, + {"label":"K19 (B3,D6)", "x":9, "y":1}, + {"label":"K1A (B3,B4)", "x":10, "y":1}, + {"label":"K1B (B3,D7)", "x":11, "y":1}, + + {"label":"K20 (B2,F1)", "x":0, "y":2}, + {"label":"K21 (B2,F0)", "x":1, "y":2}, + {"label":"K22 (B2,B0)", "x":2, "y":2}, + {"label":"K23 (B2,C7)", "x":3, "y":2}, + {"label":"K24 (B2,F4)", "x":4, "y":2}, + {"label":"K25 (B2,F5)", "x":5, "y":2}, + {"label":"K26 (B2,F6)", "x":6, "y":2}, + {"label":"K27 (B2,F7)", "x":7, "y":2}, + {"label":"K28 (B2,D4)", "x":8, "y":2}, + {"label":"K29 (B2,D6)", "x":9, "y":2}, + {"label":"K2A (B2,B4)", "x":10, "y":2}, + {"label":"K2B (B2,D7)", "x":11, "y":2}, + + {"label":"K30 (B1,F1)", "x":0, "y":3}, + {"label":"K31 (B1,F0)", "x":1, "y":3}, + {"label":"K32 (B1,B0)", "x":2, "y":3}, + {"label":"K33 (B1,C7)", "x":3, "y":3}, + {"label":"K34 (B1,F4)", "x":4, "y":3}, + {"label":"K35 (B1,F5)", "x":5, "y":3, "w":2}, + {"label":"K37 (B1,F7)", "x":7, "y":3}, + {"label":"K38 (B1,D4)", "x":8, "y":3}, + {"label":"K39 (B1,D6)", "x":9, "y":3}, + {"label":"K3A (B1,B4)", "x":10, "y":3}, + {"label":"K3B (B1,D7)", "x":11, "y":3} + ] + } + + } +} diff --git a/keyboards/ymdk/ymd40/air40/keymaps/default/keymap.c b/keyboards/ymdk/ymd40/air40/keymaps/default/keymap.c new file mode 100644 index 000000000000..b798dce7b2bf --- /dev/null +++ b/keyboards/ymdk/ymd40/air40/keymaps/default/keymap.c @@ -0,0 +1,55 @@ +/* Copyright 2022 Dennis Kruyt (dennis@kruyt.org) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum layer_names { + _QWERTY, + _LOWER, + _RAISE, + _ADJUST +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT_ortho_4x12( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_CAPS, KC_LCTL, KC_LALT, KC_LGUI, MO(1), KC_SPC, KC_SPC, MO(2), KC_UP, KC_LEFT, KC_DOWN, KC_RGHT + ), + [_LOWER] = 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, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + [_RAISE] = LAYOUT_ortho_4x12( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + [_ADJUST] = LAYOUT_ortho_4x12( + QK_BOOT, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, DB_TOGG, + _______, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); +} diff --git a/keyboards/ymdk/ymd40/air40/keymaps/via/keymap.c b/keyboards/ymdk/ymd40/air40/keymaps/via/keymap.c new file mode 100644 index 000000000000..c7b3e4d39c5e --- /dev/null +++ b/keyboards/ymdk/ymd40/air40/keymaps/via/keymap.c @@ -0,0 +1,44 @@ +/* Copyright 2022 Dennis Kruyt (dennis@kruyt.org) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_4x12( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT, + KC_LCTL, KC_LALT, KC_LGUI, KC_PIPE, MO(1), KC_SPC, KC_SPC, MO(2), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_ortho_4x12( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, + 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_VOLU, _______, + _______, _______, _______, _______, _______, _______, _______, MO(3), _______, KC_MNXT, KC_VOLD, KC_MPLY + ), + [2] = LAYOUT_ortho_4x12( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + 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, _______, + _______, _______, _______, _______, MO(3), _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END + ), + [3] = LAYOUT_ortho_4x12( + QK_BOOT, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, DB_TOGG, + _______, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/ymdk/ymd40/air40/keymaps/via/rules.mk b/keyboards/ymdk/ymd40/air40/keymaps/via/rules.mk new file mode 100644 index 000000000000..43061db1dd46 --- /dev/null +++ b/keyboards/ymdk/ymd40/air40/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/ymdk/ymd40/air40/readme.md b/keyboards/ymdk/ymd40/air40/readme.md new file mode 100644 index 000000000000..31bf509c2f99 --- /dev/null +++ b/keyboards/ymdk/ymd40/air40/readme.md @@ -0,0 +1,19 @@ +# YMD40 AIR40 + +A 40% ortholinear keyboard with per switch LED support and USB Type C. + +* Keyboard Maintainer: [The QMK Community](https://github.com/qmk) +* Hardware Supported: YMD40 AIR40 PCB (ATmega32U4) +* Hardware Availability: [ymdkey.com](https://ymdkey.com/collections/40-mini-diy/products/air40-rgb-hot-swap-cute-40-mechanical-keyboard-assembled-qmk-via-type-c-pcb-cnc-case-plate-kit) + +Make example for this keyboard (after setting up your build environment): + + make ymdk/ymd40/air40:default + +Flashing example for this keyboard: + + make ymdk/ymd40/air40:default:flash + +To reset the board into bootloader mode, hold the key at the top left of the keyboard 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/ymdk/ymd40/air40/rules.mk b/keyboards/ymdk/ymd40/air40/rules.mk new file mode 100644 index 000000000000..3325a699df36 --- /dev/null +++ b/keyboards/ymdk/ymd40/air40/rules.mk @@ -0,0 +1,26 @@ +# 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 +RGBLIGHT_SUPPORTED = no +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812 +AUDIO_ENABLE = no # Audio output +AUDIO_SUPPORTED = no +KEY_LOCK_ENABLE = no + +LAYOUTS = ortho_4x12 + From 90fd08bf4b6e1c916379354ddb5677938180d71b Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Mon, 9 Jan 2023 19:21:38 -0800 Subject: [PATCH 042/139] [Bug] Use correct functions for RGB Matrix support in VIA (#19554) --- quantum/via.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/quantum/via.c b/quantum/via.c index 12ef6c6b2f47..8cb6eb5fc6fd 100644 --- a/quantum/via.c +++ b/quantum/via.c @@ -704,11 +704,11 @@ void via_qmk_rgb_matrix_set_value(uint8_t *data) { break; } case id_qmk_rgb_matrix_effect_speed: { - rgblight_set_speed_noeeprom(value_data[0]); + rgb_matrix_set_speed_noeeprom(value_data[0]); break; } case id_qmk_rgb_matrix_color: { - rgblight_sethsv_noeeprom(value_data[0], value_data[1], rgb_matrix_get_val()); + rgb_matrix_sethsv_noeeprom(value_data[0], value_data[1], rgb_matrix_get_val()); break; } } From 4d835834105e09b9c3a59d0f2334771bacdca2a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Pary=C5=BC?= Date: Tue, 10 Jan 2023 07:38:54 +0100 Subject: [PATCH 043/139] [Keymap] Updated Freoduo keymap (#19351) --- keyboards/handwired/freoduo/config.h | 6 +- keyboards/handwired/freoduo/freoduo.c | 16 ++ keyboards/handwired/freoduo/freoduo.h | 16 ++ .../freoduo/keymaps/default/config.h | 9 - .../freoduo/keymaps/default/keymap.c | 222 ++++++------------ .../freoduo/keymaps/default/rules.mk | 2 - 6 files changed, 112 insertions(+), 159 deletions(-) delete mode 100644 keyboards/handwired/freoduo/keymaps/default/config.h delete mode 100644 keyboards/handwired/freoduo/keymaps/default/rules.mk diff --git a/keyboards/handwired/freoduo/config.h b/keyboards/handwired/freoduo/config.h index 45d4609abfa1..4d433cdca7b3 100644 --- a/keyboards/handwired/freoduo/config.h +++ b/keyboards/handwired/freoduo/config.h @@ -39,11 +39,11 @@ along with this program. If not, see . /* ws2812 RGB LED */ #define RGB_DI_PIN D4 #if !defined(RGBLED_NUM) -# define RGBLED_NUM 18 +# define RGBLED_NUM 30 # define RGBLIGHT_SPLIT -# define RGBLED_SPLIT { 9, 9 } +# define RGBLED_SPLIT { 16, 14 } // Switch RGB sides with LED MAP. -# define RGBLIGHT_LED_MAP { 8, 7, 6, 5, 4, 3, 2, 1, 0, 17, 16, 15, 14, 13, 12, 11, 10, 9} +# define RGBLIGHT_LED_MAP { 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30} # define RGBLIGHT_LAYERS #endif #define RGBLIGHT_EFFECT_BREATHING diff --git a/keyboards/handwired/freoduo/freoduo.c b/keyboards/handwired/freoduo/freoduo.c index 7415e62607b3..f60e78f43a59 100644 --- a/keyboards/handwired/freoduo/freoduo.c +++ b/keyboards/handwired/freoduo/freoduo.c @@ -1 +1,17 @@ +/* Copyright 2021 Filip Paryż (@FilipParyz) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #include "freoduo.h" diff --git a/keyboards/handwired/freoduo/freoduo.h b/keyboards/handwired/freoduo/freoduo.h index 453d1d1cf965..3093a9362708 100644 --- a/keyboards/handwired/freoduo/freoduo.h +++ b/keyboards/handwired/freoduo/freoduo.h @@ -1,3 +1,19 @@ +/* Copyright 2021 Filip Paryż (@FilipParyz) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for 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" diff --git a/keyboards/handwired/freoduo/keymaps/default/config.h b/keyboards/handwired/freoduo/keymaps/default/config.h deleted file mode 100644 index f28e4073e7a3..000000000000 --- a/keyboards/handwired/freoduo/keymaps/default/config.h +++ /dev/null @@ -1,9 +0,0 @@ -#pragma once - -#define GRAVE_ESC_CTRL_OVERRIDE -#define RGBLED_NUM 18 -#define RGBLIGHT_SPLIT -#define RGBLED_SPLIT { 9, 9 } -// Switch RGB sides with LED MAP. -#define RGBLIGHT_LED_MAP { 8, 7, 6, 5, 4, 3, 2, 1, 0, 17, 16, 15, 14, 13, 12, 11, 10, 9} -#define RGBLIGHT_LAYERS diff --git a/keyboards/handwired/freoduo/keymaps/default/keymap.c b/keyboards/handwired/freoduo/keymaps/default/keymap.c index 90868716548b..bd01de7585f3 100644 --- a/keyboards/handwired/freoduo/keymaps/default/keymap.c +++ b/keyboards/handwired/freoduo/keymaps/default/keymap.c @@ -1,46 +1,105 @@ +/* Copyright 2021 Filip Paryż (@FilipParyz) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 LOWER_CAPS LT(_LOWER,KC_CAPS) +#define FUNC MO(_FN) +#define RAISE_QUOT LT(_RAISE, KC_QUOT) +#define SHIFT_SLASH RSFT_T(KC_SLSH) -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. enum layers { _QWERTY, + _FN, _LOWER, - _RAISE, - _ADJUST, + _RAISE }; -enum custom_keycodes { - LOWER = SAFE_RANGE, - RAISE, - ADJUST, +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* QWERTY + * ,--------------------------------------------------------------------------------------------. + * | ` ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | + * |------------+------+------+------+------+------+------+------+------+------+------+---------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Enter | + * |------------+------+------+------+------+-------------+------+------+------+------+---------| + * | Caps/LOWER | A | S | D | F | G | H | J | K | L | ; | "/RAISE | + * |------------+------+------+------+------+------|------+------+------+------+------+---------| + * | Shift | Z | X | C | V | B | N | M | , | . | Up | ?/Shift | + * |------------+------+------+------+------+------+------+------+------+------+------+---------| + * | Ctrl | FN | Alt | GUI | Space | Backspace | Alt | Left |Down | Right | + * `--------------------------------------------------------------------------------------------' + */ +[_QWERTY] = LAYOUT( + QK_GESC, 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_ENT, + LOWER_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, RAISE_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, SHIFT_SLASH, + KC_LCTL, FUNC, KC_LGUI, KC_LALT, KC_SPC, KC_BSPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT + ), + +[_LOWER] = LAYOUT( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + QK_BOOT, KC_NO, KC_HOME, KC_UP, KC_END, KC_NO, KC_NO, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + KC_TRNS, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_NUHS, KC_NUBS, KC_NO, KC_NO, KC_TRNS, + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS +), + +[_RAISE] = LAYOUT( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + KC_TRNS, KC_NO, KC_HOME, KC_UP, KC_END, KC_NO, QK_BOOT, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + KC_TRNS, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_NUHS, KC_NUBS, KC_NO, KC_NO, KC_TRNS, + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS +), + +[_FN] = 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_PSCR, KC_NO, KC_NO, RGB_HUD, RGB_HUI, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, + KC_MPRV, KC_MPLY, KC_MNXT, RGB_SAD, RGB_SAI, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, + KC_VOLD, KC_MUTE, KC_VOLU, RGB_VAD, RGB_VAI, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, RGB_TOG, RGB_RMOD, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS +) }; // Light all LEDs red when caps lock is active. Hard to ignore! const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS( - {0, RGBLED_NUM, HSV_RED} // Light all LEDs, starting with LED 0 + {0, 7, 0}, + {7, 24, HSV_RED}, + {24, RGBLED_NUM, 0} ); // Light all LEDs in green when keyboard layer 1 is active const rgblight_segment_t PROGMEM layer_lower[] = RGBLIGHT_LAYER_SEGMENTS( - {6, 6, HSV_GREEN} + {8, 16, HSV_GREEN} ); // Light all LEDs in blue when keyboard layer 2 is active const rgblight_segment_t PROGMEM layer_raise[] = RGBLIGHT_LAYER_SEGMENTS( - {6, 6, HSV_MAGENTA} + {8, 16, HSV_MAGENTA} ); // Light all LEDs in yellow when keyboard layer 3 is active -const rgblight_segment_t PROGMEM layer_adjust[] = RGBLIGHT_LAYER_SEGMENTS( - {6, 6, HSV_ORANGE} +const rgblight_segment_t PROGMEM layer_fn[] = RGBLIGHT_LAYER_SEGMENTS( + {8, 16, HSV_ORANGE} ); - // Now define the array of layers. Later layers take precedence const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( my_capslock_layer, + layer_fn, layer_lower, - layer_raise, - layer_adjust + layer_raise ); void keyboard_post_init_user(void) { @@ -60,130 +119,3 @@ bool led_update_user(led_t led_state) { rgblight_set_layer_state(0, led_state.caps_lock); return true; } - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -/* QWERTY - * ,-----------------------------------------------------------------------------------. - * |` ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | - * | | | | | | | | | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Tab | Q | W | E | R | T | Y | U | I | O | P | Enter| - * | | | | | | | | | | | | | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Caps | A | S | D | F | G | H | J | K | L | ; | " | - * | LOWER| | | | | | | | | | | RAISE| - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | N | M | , | . | Up | ? | - * | | | | | | | | | | | | Shift| - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl |ADJUST| Alt | GUI | Space | Backspace | Alt | Left |Down |Right | - * | | | | | | | | | | | - * `-----------------------------------------------------------------------------------' - */ -[_QWERTY] = LAYOUT( - QK_GESC, 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_ENT, - LT(_LOWER,KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, LT(_RAISE, KC_QUOT), - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, RSFT_T(KC_SLSH), - KC_LCTL, ADJUST, KC_LGUI, KC_LALT, KC_SPC, KC_BSPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT -), - -/* LOWER - * ,-----------------------------------------------------------------------------------. - * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | Up | | | | | - | = | [ | ] | \ | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | Left | Down | Right| | | |ISO # |ISO / | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | | | | | | | | | - * `-----------------------------------------------------------------------------------' - */ -[_LOWER] = LAYOUT( - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, - _______, _______, KC_UP, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, - _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, KC_NUHS, KC_NUBS, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -), - -/* RAISE - * ,-----------------------------------------------------------------------------------. - * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Del | | | | | | | _ | + | | \ | | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | | | | | | |ISO ~ |ISO | | | |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | | | | | | | | | - * `-----------------------------------------------------------------------------------' - */ -[_RAISE] = LAYOUT( - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, - KC_DEL, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, - _______, _______, _______, _______, _______, _______, _______, S(KC_NUHS),S(KC_NUBS),_______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -), - -/* ADJUST (LOWER + RAISE) - * ,-----------------------------------------------------------------------------------. - * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Reset|RGB Tg|RGB Md| | | | | | | | | | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | |Hue Dn|Hue Up| | | | | | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | |Sat Dn|Sat Up| | | | | | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | |Val Dn|Val Up| | | | | | | | - * `-----------------------------------------------------------------------------------' - */ -[_ADJUST] = LAYOUT( - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, - QK_BOOT , RGB_TOG, RGB_MOD, VK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RGB_HUD, RGB_HUI, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RGB_SAD, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RGB_VAD, RGB_VAI, _______, _______, _______, _______, _______, _______, _______ -) - -}; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case LOWER: - if (record->event.pressed) { - layer_on(_LOWER); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_LOWER); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } - return false; - break; - case RAISE: - if (record->event.pressed) { - layer_on(_RAISE); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_RAISE); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } - return false; - break; - case ADJUST: - if (record->event.pressed) { - layer_on(_ADJUST); - } else { - layer_off(_ADJUST); - } - return false; - break; - } - return true; -} diff --git a/keyboards/handwired/freoduo/keymaps/default/rules.mk b/keyboards/handwired/freoduo/keymaps/default/rules.mk deleted file mode 100644 index f4abb12cd1b5..000000000000 --- a/keyboards/handwired/freoduo/keymaps/default/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -RGBLIGHT_ENABLE = yes -BACKLIGHT_ENABLE = no \ No newline at end of file From aba67829e98c3e9efefbb73399edc625740cdf2a Mon Sep 17 00:00:00 2001 From: squarecut Date: Tue, 10 Jan 2023 22:05:31 +1300 Subject: [PATCH 044/139] [Keymap] Kbdfans Tiger 80 keymap & Planck keymap (#19428) Co-authored-by: Drashna Jaelre Co-authored-by: Abhishek Malavalli --- .../tiger80/keymaps/squarecut/keymap.c | 53 +++ .../tiger80/keymaps/squarecut/readme.txt | 4 + keyboards/planck/keymaps/squarecut/config.h | 46 ++ keyboards/planck/keymaps/squarecut/keymap.c | 414 ++++++++++++++++++ keyboards/planck/keymaps/squarecut/readme.md | 9 + keyboards/planck/keymaps/squarecut/rules.mk | 2 + 6 files changed, 528 insertions(+) create mode 100644 keyboards/kbdfans/tiger80/keymaps/squarecut/keymap.c create mode 100644 keyboards/kbdfans/tiger80/keymaps/squarecut/readme.txt create mode 100644 keyboards/planck/keymaps/squarecut/config.h create mode 100644 keyboards/planck/keymaps/squarecut/keymap.c create mode 100644 keyboards/planck/keymaps/squarecut/readme.md create mode 100644 keyboards/planck/keymaps/squarecut/rules.mk diff --git a/keyboards/kbdfans/tiger80/keymaps/squarecut/keymap.c b/keyboards/kbdfans/tiger80/keymaps/squarecut/keymap.c new file mode 100644 index 000000000000..99b26ab0636a --- /dev/null +++ b/keyboards/kbdfans/tiger80/keymaps/squarecut/keymap.c @@ -0,0 +1,53 @@ +/* Copyright 2022 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum layers { + _LAYER0, + _LAYER1, + _LAYER2, + _LAYER3, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_LAYER0] = 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_MUTE, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_LAYER1] = LAYOUT_tkl_f13_ansi_tsangan( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_MEDIA_PLAY_PAUSE, KC_CALC, KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP, KC_MUTE, KC_7, KC_8, KC_9, + KC_GRV, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T, KC_0, RGB_VAD, RGB_VAI, KC_ASTERISK, KC_4, KC_5, KC_6, + KC_TAB, KC_Q, RGB_MOD, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_SLSH, KC_1, KC_2, KC_3, + KC_CAPS, KC_A, RGB_RMOD, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, RGB_TOG, KC_SCLN, KC_QUOT, KC_PLUS, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_MINUS, KC_0, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + +}; + + +void eeconfig_init_user(void) { + eeconfig_update_user(0); + rgblight_disable(); +} diff --git a/keyboards/kbdfans/tiger80/keymaps/squarecut/readme.txt b/keyboards/kbdfans/tiger80/keymaps/squarecut/readme.txt new file mode 100644 index 000000000000..2351401fda9d --- /dev/null +++ b/keyboards/kbdfans/tiger80/keymaps/squarecut/readme.txt @@ -0,0 +1,4 @@ +Mostly based off default +-Add Fn key layer +-Adding Numpad +-RGB Toggle \ No newline at end of file diff --git a/keyboards/planck/keymaps/squarecut/config.h b/keyboards/planck/keymaps/squarecut/config.h new file mode 100644 index 000000000000..6e6d0f3ac731 --- /dev/null +++ b/keyboards/planck/keymaps/squarecut/config.h @@ -0,0 +1,46 @@ +/* Copyright 2015-2021 Jack Humbert + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#ifdef AUDIO_ENABLE +# define STARTUP_SONG SONG(PLANCK_SOUND) +// #define STARTUP_SONG SONG(NO_SOUND) + +# define DEFAULT_LAYER_SONGS \ + { SONG(QWERTY_SOUND), SONG(COLEMAK_SOUND), SONG(DVORAK_SOUND) } +#endif + +/* + * MIDI options + */ + +/* enable basic MIDI features: + - MIDI notes can be sent when in Music mode is on +*/ + +#define MIDI_BASIC + +/* enable advanced MIDI features: + - MIDI notes can be added to the keymap + - Octave shift and transpose + - Virtual sustain, portamento, and modulation wheel + - etc. +*/ +//#define MIDI_ADVANCED + +// Most tactile encoders have detents every 4 stages +#define ENCODER_RESOLUTION 4 diff --git a/keyboards/planck/keymaps/squarecut/keymap.c b/keyboards/planck/keymaps/squarecut/keymap.c new file mode 100644 index 000000000000..3bfb2d499e01 --- /dev/null +++ b/keyboards/planck/keymaps/squarecut/keymap.c @@ -0,0 +1,414 @@ +/* Copyright 2015-2021 Jack Humbert + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H +#include "muse.h" + + +enum planck_layers { + _QWERTY, + _OSX, + _NIXQWERTY, + _COLEMAK, + _DVORAK, + _LOWER, + _RAISE, + _PLOVER, + _ADJUST +}; + +enum planck_keycodes { + QWERTY = SAFE_RANGE, + OSX, + NIXQWERTY, + COLEMAK, + DVORAK, + PLOVER, + BACKLIT, + EXT_PLV +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) +#define SFT_ENT SFT_T(KC_ENT) // Tap for Enter, hold for Shift + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl |Brite | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = LAYOUT_planck_grid( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT, + KC_LCTL, BACKLIT, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +/* OSX - Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | CMD |Brite | Alt | CTRL |Raise | Space |Lower | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_OSX] = LAYOUT_planck_grid( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , + KC_LGUI, BACKLIT, KC_LALT, KC_LCTL, RAISE, KC_SPC, KC_SPC, LOWER, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_COLEMAK] = LAYOUT_planck_grid( + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, + KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , + BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +/* Dvorak + * ,-----------------------------------------------------------------------------------. + * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_DVORAK] = LAYOUT_planck_grid( + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, + KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT , + BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +/* NixQwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl |Brite | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_NIXQWERTY] = LAYOUT_planck_grid( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , + KC_LCTL, BACKLIT, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | Del | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ` | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Home | End | Enter| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = LAYOUT_planck_grid( + KC_DEL, 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_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_HOME, KC_END, KC_ENT, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY +), + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | Del | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ~ | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Pg Up |Pg Dn |Enter| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = LAYOUT_planck_grid( + KC_DEL, 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_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_PGUP, KC_PGDN, KC_ENT, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY +), + +/* Plover layer (http://opensteno.org) + * ,-----------------------------------------------------------------------------------. + * | # | # | # | # | # | # | # | # | # | # | # | # | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | S | T | P | H | * | * | F | P | L | T | D | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | S | K | W | R | * | * | R | B | G | S | Z | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Exit | | | A | O | | E | U | | | | + * `-----------------------------------------------------------------------------------' + */ +[_PLOVER] = LAYOUT_planck_grid( + KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 , + XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, + XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX +), + +/* Adjust (Lower + Raise) + * v------------------------RGB CONTROL--------------------v + * ,-----------------------------------------------------------------------------------. + * | | Reset|Debug | RGB |RGBMOD| HUE+ | HUE- | SAT+ | SAT- |BRGTH+|BRGTH-| Del | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | |MUSmod|Aud on|Audoff|AGnorm|AGswap|Qwerty|NixQty| OSX |Plover|Colemk| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = LAYOUT_planck_grid( + _______, QK_BOOT, DB_TOGG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL, + _______, _______, MU_NEXT, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, NIXQWERTY, OSX, PLOVER, COLEMAK, + _______, AU_PREV, AU_NEXT, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, DVORAK, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +) + +}; + +#ifdef AUDIO_ENABLE + float plover_song[][2] = SONG(PLOVER_SOUND); + float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND); +#endif + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + print("mode just switched to qwerty and this is a huge string\n"); + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case OSX: + if (record->event.pressed) { + set_single_persistent_default_layer(_OSX); + #ifdef AUDIO_ENABLE + stop_all_notes(); + PLAY_SONG(plover_song); + #endif + } + return false; + break; + case NIXQWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_NIXQWERTY); + #ifdef AUDIO_ENABLE + stop_all_notes(); + PLAY_SONG(plover_song); + #endif + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; + break; + case BACKLIT: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + #ifdef KEYBOARD_planck_rev5 + writePinLow(E6); + #endif + } else { + unregister_code(KC_RSFT); + #ifdef KEYBOARD_planck_rev5 + writePinHigh(E6); + #endif + } + return false; + break; + case PLOVER: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + stop_all_notes(); + PLAY_SONG(plover_song); + #endif + layer_off(_RAISE); + layer_off(_LOWER); + layer_off(_ADJUST); + layer_on(_PLOVER); + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + keymap_config.raw = eeconfig_read_keymap(); + keymap_config.nkro = 1; + eeconfig_update_keymap(keymap_config.raw); + } + return false; + break; + case EXT_PLV: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(plover_gb_song); + #endif + layer_off(_PLOVER); + } + return false; + break; + } + return true; +} + +bool muse_mode = false; +uint8_t last_muse_note = 0; +uint16_t muse_counter = 0; +uint8_t muse_offset = 70; +uint16_t muse_tempo = 50; + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (muse_mode) { + if (IS_LAYER_ON(_RAISE)) { + if (clockwise) { + muse_offset++; + } else { + muse_offset--; + } + } else { + if (clockwise) { + muse_tempo+=1; + } else { + muse_tempo-=1; + } + } + } else { + if (clockwise) { + #ifdef MOUSEKEY_ENABLE + tap_code(KC_MS_WH_DOWN); + #else + tap_code(KC_PGDN); + #endif + } else { + #ifdef MOUSEKEY_ENABLE + tap_code(KC_MS_WH_UP); + #else + tap_code(KC_PGUP); + #endif + } + } + return true; +} + +bool dip_switch_update_user(uint8_t index, bool active) { + switch (index) { + case 0: { +#ifdef AUDIO_ENABLE + static bool play_sound = false; +#endif + if (active) { +#ifdef AUDIO_ENABLE + if (play_sound) { PLAY_SONG(plover_song); } +#endif + layer_on(_ADJUST); + } else { +#ifdef AUDIO_ENABLE + if (play_sound) { PLAY_SONG(plover_gb_song); } +#endif + layer_off(_ADJUST); + } +#ifdef AUDIO_ENABLE + play_sound = true; +#endif + break; + } + case 1: + if (active) { + muse_mode = true; + } else { + muse_mode = false; + } + } + return true; +} + +void matrix_scan_user(void) { +#ifdef AUDIO_ENABLE + if (muse_mode) { + if (muse_counter == 0) { + uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()]; + if (muse_note != last_muse_note) { + stop_note(compute_freq_for_midi_note(last_muse_note)); + play_note(compute_freq_for_midi_note(muse_note), 0xF); + last_muse_note = muse_note; + } + } + muse_counter = (muse_counter + 1) % muse_tempo; + } else { + if (muse_counter) { + stop_all_notes(); + muse_counter = 0; + } + } +#endif +} + +bool music_mask_user(uint16_t keycode) { + switch (keycode) { + case RAISE: + case LOWER: + return false; + default: + return true; + } +} diff --git a/keyboards/planck/keymaps/squarecut/readme.md b/keyboards/planck/keymaps/squarecut/readme.md new file mode 100644 index 000000000000..2aff8d543b82 --- /dev/null +++ b/keyboards/planck/keymaps/squarecut/readme.md @@ -0,0 +1,9 @@ +# The Almost Default Planck Layout + +Simple changes right now, just some key shifts. Nothing major. + +# Based off foreveranapple keymap +Lower on left, RAISE on right +Swap Tab and Esc +Assign long press Shift, short press Enter +Continuous enter on lower/upper Enter \ No newline at end of file diff --git a/keyboards/planck/keymaps/squarecut/rules.mk b/keyboards/planck/keymaps/squarecut/rules.mk new file mode 100644 index 000000000000..87df38d49e74 --- /dev/null +++ b/keyboards/planck/keymaps/squarecut/rules.mk @@ -0,0 +1,2 @@ +SRC += muse.c +AUDIO_ENABLED = yes \ No newline at end of file From 5e5b19cf94d46db06cf43a834b7fd8a112d9e527 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Tue, 10 Jan 2023 07:09:09 -0800 Subject: [PATCH 045/139] Keychron S1 ANSI Layout Touch-Up (#19556) --- keyboards/keychron/s1/ansi/rgb/info.json | 6 +++++- keyboards/keychron/s1/ansi/rgb/keymaps/default/keymap.c | 8 ++++---- keyboards/keychron/s1/ansi/rgb/keymaps/keychron/keymap.c | 8 ++++---- keyboards/keychron/s1/ansi/rgb/keymaps/via/keymap.c | 8 ++++---- keyboards/keychron/s1/ansi/white/info.json | 6 +++++- keyboards/keychron/s1/ansi/white/keymaps/default/keymap.c | 8 ++++---- .../keychron/s1/ansi/white/keymaps/keychron/keymap.c | 8 ++++---- keyboards/keychron/s1/ansi/white/keymaps/via/keymap.c | 8 ++++---- 8 files changed, 34 insertions(+), 26 deletions(-) diff --git a/keyboards/keychron/s1/ansi/rgb/info.json b/keyboards/keychron/s1/ansi/rgb/info.json index c99da30bee08..475d3d4c6d0a 100644 --- a/keyboards/keychron/s1/ansi/rgb/info.json +++ b/keyboards/keychron/s1/ansi/rgb/info.json @@ -8,8 +8,12 @@ "pid": "0x0410", "device_version": "1.0.0" }, + "layout_aliases": { + "LAYOUT_ansi_84": "LAYOUT_75_ansi" + }, + "community_layouts": ["75_ansi"], "layouts": { - "LAYOUT_ansi_84": { + "LAYOUT_75_ansi": { "layout": [ {"matrix":[0, 0], "x":0, "y":0}, {"matrix":[0, 1], "x":1, "y":0}, diff --git a/keyboards/keychron/s1/ansi/rgb/keymaps/default/keymap.c b/keyboards/keychron/s1/ansi/rgb/keymaps/default/keymap.c index c54d80c7912d..68a5434bed70 100644 --- a/keyboards/keychron/s1/ansi/rgb/keymaps/default/keymap.c +++ b/keyboards/keychron/s1/ansi/rgb/keymaps/default/keymap.c @@ -29,7 +29,7 @@ enum layers{ #define KC_FLXP LGUI(KC_E) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [MAC_BASE] = LAYOUT_ansi_84( + [MAC_BASE] = LAYOUT_75_ansi( KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_DEL, RGB_MOD, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, @@ -37,7 +37,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - [MAC_FN] = LAYOUT_ansi_84( + [MAC_FN] = LAYOUT_75_ansi( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -45,7 +45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), - [WIN_BASE] = LAYOUT_ansi_84( + [WIN_BASE] = LAYOUT_75_ansi( KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_DEL, RGB_MOD, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, @@ -53,7 +53,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - [WIN_FN] = LAYOUT_ansi_84( + [WIN_FN] = LAYOUT_75_ansi( _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/keychron/s1/ansi/rgb/keymaps/keychron/keymap.c b/keyboards/keychron/s1/ansi/rgb/keymaps/keychron/keymap.c index cfb6a6f4c0dc..3a91b3cf7c44 100644 --- a/keyboards/keychron/s1/ansi/rgb/keymaps/keychron/keymap.c +++ b/keyboards/keychron/s1/ansi/rgb/keymaps/keychron/keymap.c @@ -27,7 +27,7 @@ enum layers { }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [MAC_BASE] = LAYOUT_ansi_84( + [MAC_BASE] = LAYOUT_75_ansi( KC_ESC, 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_SNAP, KC_DEL, RGB_MOD, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, @@ -35,7 +35,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, KC_LCTL, KC_LOPTN, KC_LCMMD, KC_SPC, KC_RCMMD,MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - [MAC_FN] = LAYOUT_ansi_84( + [MAC_FN] = LAYOUT_75_ansi( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -43,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), - [WIN_BASE] = LAYOUT_ansi_84( + [WIN_BASE] = LAYOUT_75_ansi( KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_DEL, RGB_MOD, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, @@ -51,7 +51,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - [WIN_FN] = LAYOUT_ansi_84( + [WIN_FN] = LAYOUT_75_ansi( _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/keychron/s1/ansi/rgb/keymaps/via/keymap.c b/keyboards/keychron/s1/ansi/rgb/keymaps/via/keymap.c index ddae0d93f642..869d359a1e82 100644 --- a/keyboards/keychron/s1/ansi/rgb/keymaps/via/keymap.c +++ b/keyboards/keychron/s1/ansi/rgb/keymaps/via/keymap.c @@ -29,7 +29,7 @@ enum layers { #define KC_FLXP LGUI(KC_E) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [MAC_BASE] = LAYOUT_ansi_84( + [MAC_BASE] = LAYOUT_75_ansi( KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_DEL, RGB_MOD, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, @@ -37,7 +37,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - [MAC_FN] = LAYOUT_ansi_84( + [MAC_FN] = LAYOUT_75_ansi( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -45,7 +45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), - [WIN_BASE] = LAYOUT_ansi_84( + [WIN_BASE] = LAYOUT_75_ansi( KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_DEL, RGB_MOD, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, @@ -53,7 +53,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - [WIN_FN] = LAYOUT_ansi_84( + [WIN_FN] = LAYOUT_75_ansi( _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/keychron/s1/ansi/white/info.json b/keyboards/keychron/s1/ansi/white/info.json index 67f63d46d4e4..707c7904cace 100644 --- a/keyboards/keychron/s1/ansi/white/info.json +++ b/keyboards/keychron/s1/ansi/white/info.json @@ -8,8 +8,12 @@ "pid": "0x0411", "device_version": "1.0.0" }, + "layout_aliases": { + "LAYOUT_ansi_84": "LAYOUT_75_ansi" + }, + "community_layouts": ["75_ansi"], "layouts": { - "LAYOUT_ansi_84": { + "LAYOUT_75_ansi": { "layout": [ {"matrix":[0, 0], "x":0, "y":0}, {"matrix":[0, 1], "x":1, "y":0}, diff --git a/keyboards/keychron/s1/ansi/white/keymaps/default/keymap.c b/keyboards/keychron/s1/ansi/white/keymaps/default/keymap.c index f0473060ed59..5b8000f69519 100644 --- a/keyboards/keychron/s1/ansi/white/keymaps/default/keymap.c +++ b/keyboards/keychron/s1/ansi/white/keymaps/default/keymap.c @@ -29,7 +29,7 @@ enum layers{ #define KC_FLXP LGUI(KC_E) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [MAC_BASE] = LAYOUT_ansi_84( + [MAC_BASE] = LAYOUT_75_ansi( KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, BL_DEC, BL_INC, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_DEL, BL_STEP, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, @@ -37,7 +37,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - [MAC_FN] = LAYOUT_ansi_84( + [MAC_FN] = LAYOUT_75_ansi( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_STEP, BL_INC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -45,7 +45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), - [WIN_BASE] = LAYOUT_ansi_84( + [WIN_BASE] = LAYOUT_75_ansi( KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_DEL, BL_STEP, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, @@ -53,7 +53,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - [WIN_FN] = LAYOUT_ansi_84( + [WIN_FN] = LAYOUT_75_ansi( _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, BL_DEC, BL_INC, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_STEP, BL_INC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/keychron/s1/ansi/white/keymaps/keychron/keymap.c b/keyboards/keychron/s1/ansi/white/keymaps/keychron/keymap.c index aabbaba4da76..53e00ca420d5 100644 --- a/keyboards/keychron/s1/ansi/white/keymaps/keychron/keymap.c +++ b/keyboards/keychron/s1/ansi/white/keymaps/keychron/keymap.c @@ -27,7 +27,7 @@ enum layers { }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [MAC_BASE] = LAYOUT_ansi_84( + [MAC_BASE] = LAYOUT_75_ansi( KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, BL_DEC, BL_INC, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_SNAP, KC_DEL, BL_STEP, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, @@ -35,7 +35,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, KC_LCTL, KC_LOPTN, KC_LCMMD, KC_SPC, KC_RCMMD,MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - [MAC_FN] = LAYOUT_ansi_84( + [MAC_FN] = LAYOUT_75_ansi( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_STEP, BL_INC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -43,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), - [WIN_BASE] = LAYOUT_ansi_84( + [WIN_BASE] = LAYOUT_75_ansi( KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_DEL, BL_STEP, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, @@ -51,7 +51,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - [WIN_FN] = LAYOUT_ansi_84( + [WIN_FN] = LAYOUT_75_ansi( _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, BL_DEC, BL_INC, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_STEP, BL_INC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/keychron/s1/ansi/white/keymaps/via/keymap.c b/keyboards/keychron/s1/ansi/white/keymaps/via/keymap.c index 072e5d2f76f0..4084847a8f60 100644 --- a/keyboards/keychron/s1/ansi/white/keymaps/via/keymap.c +++ b/keyboards/keychron/s1/ansi/white/keymaps/via/keymap.c @@ -29,7 +29,7 @@ enum layers { #define KC_FLXP LGUI(KC_E) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [MAC_BASE] = LAYOUT_ansi_84( + [MAC_BASE] = LAYOUT_75_ansi( KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, BL_DEC, BL_INC, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_DEL, BL_STEP, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, @@ -37,7 +37,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - [MAC_FN] = LAYOUT_ansi_84( + [MAC_FN] = LAYOUT_75_ansi( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_STEP, BL_INC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -45,7 +45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), - [WIN_BASE] = LAYOUT_ansi_84( + [WIN_BASE] = LAYOUT_75_ansi( KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_DEL, BL_STEP, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, @@ -53,7 +53,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - [WIN_FN] = LAYOUT_ansi_84( + [WIN_FN] = LAYOUT_75_ansi( _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, BL_DEC, BL_INC, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_STEP, BL_INC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, From a1676c3b8c3f5f5d713196d99ac358ba5fb021ef Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Tue, 10 Jan 2023 16:35:33 -0800 Subject: [PATCH 046/139] [Keyboard] Work Louder updates for via v3 (#19555) --- keyboards/work_louder/loop/config.h | 37 ++--- keyboards/work_louder/loop/info.json | 18 +-- keyboards/work_louder/micro/config.h | 28 ++-- keyboards/work_louder/micro/info.json | 6 +- .../work_louder/micro/keymaps/via/config.h | 5 - .../work_louder/micro/keymaps/via/keymap.c | 97 ++++++++++-- keyboards/work_louder/nano/config.h | 38 ++--- keyboards/work_louder/numpad/config.h | 50 ++++++- keyboards/work_louder/numpad/info.json | 2 +- keyboards/work_louder/work_board/config.h | 5 +- .../work_board/keymaps/via/keymap.c | 138 +++++++++++++++--- 11 files changed, 308 insertions(+), 116 deletions(-) delete mode 100644 keyboards/work_louder/micro/keymaps/via/config.h diff --git a/keyboards/work_louder/loop/config.h b/keyboards/work_louder/loop/config.h index 9ad0e83a2c16..3c7256109424 100644 --- a/keyboards/work_louder/loop/config.h +++ b/keyboards/work_louder/loop/config.h @@ -41,15 +41,7 @@ along with this program. If not, see . #define DIODE_DIRECTION COL2ROW -//#define LED_NUM_LOCK_PIN B0 -//#define LED_CAPS_LOCK_PIN B1 -//#define LED_SCROLL_LOCK_PIN B2 -//#define LED_COMPOSE_PIN B3 -//#define LED_KANA_PIN B4 - -//#define BACKLIGHT_PIN B7 -//#define BACKLIGHT_LEVELS 3 -//#define BACKLIGHT_BREATHING +#define USB_MAX_POWER_CONSUMPTION 100 #define RGBLIGHT_DI_PIN E6 //# define RGBLIGHT_HUE_STEP 8 @@ -65,7 +57,6 @@ along with this program. If not, see . #define RGBLIGHT_EFFECT_KNIGHT #define RGBLIGHT_EFFECT_CHRISTMAS #define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST #define RGBLIGHT_EFFECT_TWINKLE #define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_STATIC_LIGHT @@ -84,6 +75,8 @@ along with this program. If not, see . #define RGB_MATRIX_DISABLE_KEYCODES #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT // Sets the default mode, if none has been set #define RGB_DISABLE_WHEN_USB_SUSPENDED +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +// #define RGB_MATRIX_KEYPRESSES // RGB Matrix Animation modes. Explicitly enabled // For full list of effects, see: @@ -121,18 +114,18 @@ along with this program. If not, see . #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 +// #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 /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 diff --git a/keyboards/work_louder/loop/info.json b/keyboards/work_louder/loop/info.json index 67b9d1f06dd8..86de1624f195 100644 --- a/keyboards/work_louder/loop/info.json +++ b/keyboards/work_louder/loop/info.json @@ -14,15 +14,15 @@ {"label": "k01", "x": 1, "y": 0}, {"label": "k02", "x": 2, "y": 0}, - {"label": "k03", "x": 3, "y": 1, "w": 0}, - {"label": "k04", "x": 4, "y": 1, "w": 0}, - {"label": "k05", "x": 5, "y": 1, "w": 0}, - {"label": "k06", "x": 6, "y": 1, "w": 0}, - {"label": "k07", "x": 7, "y": 1, "w": 0}, - {"label": "k08", "x": 8, "y": 1, "w": 0}, - {"label": "k09", "x": 9, "y": 1, "w": 0}, - {"label": "k0a", "x": 10, "y": 1, "w": 0}, - {"label": "k0b", "x": 11, "y": 1, "w": 0} + {"label": "k03", "x": 3, "y": 0}, + {"label": "k04", "x": 4, "y": 0}, + {"label": "k05", "x": 5, "y": 0}, + {"label": "k06", "x": 6, "y": 0}, + {"label": "k07", "x": 7, "y": 0}, + {"label": "k08", "x": 8, "y": 0}, + {"label": "k09", "x": 9, "y": 0}, + {"label": "k0a", "x": 10, "y": 0}, + {"label": "k0b", "x": 11, "y": 0} ] } } diff --git a/keyboards/work_louder/micro/config.h b/keyboards/work_louder/micro/config.h index 2c37e9b4ec0e..cb11d2795559 100644 --- a/keyboards/work_louder/micro/config.h +++ b/keyboards/work_louder/micro/config.h @@ -9,13 +9,15 @@ * Feature disable options * These options are also useful to firmware size reduction. */ +#define USB_MAX_POWER_CONSUMPTION 100 #define RGB_DI_PIN D1 #define RGB_MATRIX_LED_COUNT 12 -#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 255 +#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 #define RGB_MATRIX_DISABLE_KEYCODES #define RGB_DISABLE_WHEN_USB_SUSPENDED #define RGB_MATRIX_FRAMEBUFFER_EFFECTS +// #define RGB_MATRIX_KEYPRESSES #define RGBLIGHT_DI_PIN D2 #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ @@ -55,18 +57,18 @@ #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 +// #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 /* disable debug print */ //#define NO_DEBUG diff --git a/keyboards/work_louder/micro/info.json b/keyboards/work_louder/micro/info.json index 1417ba0cde04..b3bfcd6a133c 100644 --- a/keyboards/work_louder/micro/info.json +++ b/keyboards/work_louder/micro/info.json @@ -22,13 +22,13 @@ "processor": "atmega32u4", "rgblight": { "animations": { - "alternating": true, + "alternating": false, "breathing": true, "christmas": true, "knight": true, "rainbow_mood": true, "rainbow_swirl": true, - "rgb_test": true, + "rgb_test": false, "snake": true, "static_gradient": true, "twinkle": true @@ -36,7 +36,7 @@ "brightness_steps": 8, "hue_steps": 8, "led_count": 8, - "max_brightness": 255, + "max_brightness": 150, "saturation_steps": 8 }, "url": "https://worklouder.cc/", diff --git a/keyboards/work_louder/micro/keymaps/via/config.h b/keyboards/work_louder/micro/keymaps/via/config.h deleted file mode 100644 index 4a3933388399..000000000000 --- a/keyboards/work_louder/micro/keymaps/via/config.h +++ /dev/null @@ -1,5 +0,0 @@ -// Copyright 2022 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once -#undef RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/work_louder/micro/keymaps/via/keymap.c b/keyboards/work_louder/micro/keymaps/via/keymap.c index d4be308b2ac7..8cc41e1e504b 100644 --- a/keyboards/work_louder/micro/keymaps/via/keymap.c +++ b/keyboards/work_louder/micro/keymaps/via/keymap.c @@ -8,25 +8,25 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_MPLY, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - RGB_TOG, XXXXXXX, XXXXXXX, 0x5011 + RGB_TOG, XXXXXXX, XXXXXXX, TO(1) ), [1] = LAYOUT( XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, 0x5012 + XXXXXXX, XXXXXXX, XXXXXXX, TO(2) ), [2] = LAYOUT( XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, 0x5013 + XXXXXXX, XXXXXXX, XXXXXXX, TO(3) ), [3] = LAYOUT( XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, USER00, USER01, USER03, USER05, XXXXXXX, USER02, USER04, USER06, - XXXXXXX, XXXXXXX, XXXXXXX, 0x5010 + XXXXXXX, XXXXXXX, XXXXXXX, TO(0) ) }; @@ -49,6 +49,8 @@ typedef union { work_louder_config_t work_louder_config; +#define WL_LED_MAX_BRIGHT 75 + bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case USER09: @@ -57,21 +59,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (work_louder_config.led_level > 4) { work_louder_config.led_level = 1; } - work_louder_micro_led_all_set((uint8_t)(work_louder_config.led_level * 255 / 4)); + work_louder_micro_led_all_set((uint8_t)(work_louder_config.led_level * WL_LED_MAX_BRIGHT / 4)); eeconfig_update_user(work_louder_config.raw); layer_state_set_kb(layer_state); } break; - case 0x5000 ... 0x500F: - if (record->event.pressed) { - layer_move(keycode - 0x5000); - } - return false; break; - case 0x5010 ... 0x501F: - if (record->event.pressed) { - layer_move(keycode - 0x5010); - } - return false; break; } return true; } @@ -88,14 +80,87 @@ layer_state_t layer_state_set_user(layer_state_t state) { void eeconfig_init_user(void) { work_louder_config.raw = 0; work_louder_config.led_level = 1; + work_louder_micro_led_all_set((uint8_t)(work_louder_config.led_level * WL_LED_MAX_BRIGHT / 4)); eeconfig_update_user(work_louder_config.raw); } void keyboard_post_init_user(void) { work_louder_config.raw = eeconfig_read_user(); - work_louder_micro_led_all_set((uint8_t)(work_louder_config.led_level * 255 / 4)); + work_louder_micro_led_all_set((uint8_t)(work_louder_config.led_level * WL_LED_MAX_BRIGHT / 4)); } void suspend_wakeup_init_user(void) { layer_state_set_user(layer_state); } + + +enum via_indicator_value { + id_wl_brightness = 1, + id_wl_layer, // placeholder +}; + +void wl_config_set_value(uint8_t *data) { + // data = [ value_id, value_data ] + uint8_t *value_id = &(data[0]); + uint8_t *value_data = &(data[1]); + + switch (*value_id) { + case id_wl_brightness: + work_louder_config.led_level = (uint8_t)*value_data; + work_louder_micro_led_all_set((uint8_t)(work_louder_config.led_level * WL_LED_MAX_BRIGHT / 4)); + layer_state_set_kb(layer_state); + break; + // case id_wl_layer: + // layer_move(*value_data); + // break; + } +} + +void wl_config_get_value(uint8_t *data) { + // data = [ value_id, value_data ] + uint8_t *value_id = &(data[0]); + uint8_t *value_data = &(data[1]); + + switch (*value_id) { + case id_wl_brightness: + *value_data = work_louder_config.led_level; + break; + // case id_wl_layer: + // *value_data = get_highest_layer(layer_state); + // break; + } +} + +void wl_config_save(void) { + eeconfig_update_user(work_louder_config.raw); +} + +void via_custom_value_command_kb(uint8_t *data, uint8_t length) { + uint8_t *command_id = &(data[0]); + uint8_t *channel_id = &(data[1]); + uint8_t *value_id_and_data = &(data[2]); + + if (*channel_id == id_custom_channel) { + switch (*command_id) { + case id_custom_set_value: { + wl_config_set_value(value_id_and_data); + break; + } + case id_custom_get_value: { + wl_config_get_value(value_id_and_data); + break; + } + case id_custom_save: { + wl_config_save(); + break; + } + default: { + // Unhandled message. + *command_id = id_unhandled; + break; + } + } + return; + } + *command_id = id_unhandled; +} diff --git a/keyboards/work_louder/nano/config.h b/keyboards/work_louder/nano/config.h index 8d3732e8256c..cd97fd740a8b 100644 --- a/keyboards/work_louder/nano/config.h +++ b/keyboards/work_louder/nano/config.h @@ -41,15 +41,7 @@ along with this program. If not, see . /* COL2ROW, ROW2COL */ #define DIODE_DIRECTION COL2ROW -//#define LED_NUM_LOCK_PIN B0 -//#define LED_CAPS_LOCK_PIN B1 -//#define LED_SCROLL_LOCK_PIN B2 -//#define LED_COMPOSE_PIN B3 -//#define LED_KANA_PIN B4 - -//#define BACKLIGHT_PIN B7 -//#define BACKLIGHT_LEVELS 3 -//#define BACKLIGHT_BREATHING +#define USB_MAX_POWER_CONSUMPTION 100 #define RGBLIGHT_DI_PIN C7 #define RGBLED_NUM 6 @@ -66,8 +58,8 @@ along with this program. If not, see . #define RGBLIGHT_EFFECT_KNIGHT #define RGBLIGHT_EFFECT_CHRISTMAS #define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST #define RGBLIGHT_EFFECT_TWINKLE + #define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_STATIC_LIGHT #define RGBLIGHT_DEFAULT_HUE 170 @@ -84,6 +76,8 @@ along with this program. If not, see . #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120 #define RGB_MATRIX_DISABLE_KEYCODES #define RGB_DISABLE_WHEN_USB_SUSPENDED +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +// #define RGB_MATRIX_KEYPRESSES // RGB Matrix Animation modes. Explicitly enabled // For full list of effects, see: @@ -121,18 +115,18 @@ along with this program. If not, see . #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 +// #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 /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 diff --git a/keyboards/work_louder/numpad/config.h b/keyboards/work_louder/numpad/config.h index 762e5e654b89..79ce6df6cf2c 100644 --- a/keyboards/work_louder/numpad/config.h +++ b/keyboards/work_louder/numpad/config.h @@ -22,11 +22,59 @@ // #define RGB_DI_PIN D1 #define RGB_MATRIX_LED_COUNT 16 -#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 255 +#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 #define RGB_MATRIX_DISABLE_KEYCODES #define RGB_DISABLE_WHEN_USB_SUSPENDED #define RGB_MATRIX_FRAMEBUFFER_EFFECTS + + #define RGBLIGHT_DI_PIN D2 #define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_STATIC_GRADIENT + 9 #define RGBLIGHT_DEFAULT_HUE 213 + +#define ENABLE_RGB_MATRIX_ALPHAS_MODS +#define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN +#define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_BREATHING +#define ENABLE_RGB_MATRIX_BAND_SAT +#define ENABLE_RGB_MATRIX_BAND_VAL +#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +#define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT +#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL +#define ENABLE_RGB_MATRIX_CYCLE_ALL +#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN +#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN +#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL +#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL +#define ENABLE_RGB_MATRIX_DUAL_BEACON +#define ENABLE_RGB_MATRIX_RAINBOW_BEACON +#define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS +#define ENABLE_RGB_MATRIX_RAINDROPS +#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +#define ENABLE_RGB_MATRIX_HUE_BREATHING +#define ENABLE_RGB_MATRIX_HUE_PENDULUM +#define ENABLE_RGB_MATRIX_HUE_WAVE +#define ENABLE_RGB_MATRIX_PIXEL_RAIN +#define ENABLE_RGB_MATRIX_PIXEL_FLOW +#define ENABLE_RGB_MATRIX_PIXEL_FRACTAL +// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined +#define ENABLE_RGB_MATRIX_TYPING_HEATMAP +#define ENABLE_RGB_MATRIX_DIGITAL_RAIN +// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +// #define ENABLE_RGB_MATRIX_SPLASH +// #define ENABLE_RGB_MATRIX_MULTISPLASH +// #define ENABLE_RGB_MATRIX_SOLID_SPLASH +// #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH diff --git a/keyboards/work_louder/numpad/info.json b/keyboards/work_louder/numpad/info.json index b5117c91d3fb..dbae02e5737d 100644 --- a/keyboards/work_louder/numpad/info.json +++ b/keyboards/work_louder/numpad/info.json @@ -62,7 +62,7 @@ "brightness_steps": 8, "hue_steps": 8, "led_count": 8, - "max_brightness": 255, + "max_brightness": 120, "pin": "D1", "saturation_steps": 8, "sleep": true diff --git a/keyboards/work_louder/work_board/config.h b/keyboards/work_louder/work_board/config.h index 6dea07c51849..e7d23ed7ee86 100644 --- a/keyboards/work_louder/work_board/config.h +++ b/keyboards/work_louder/work_board/config.h @@ -41,6 +41,8 @@ along with this program. If not, see . /* COL2ROW, ROW2COL */ #define DIODE_DIRECTION COL2ROW +#define USB_MAX_POWER_CONSUMPTION 100 + #define RGBLIGHT_DI_PIN D2 //# define RGBLIGHT_HUE_STEP 8 //# define RGBLIGHT_SAT_STEP 8 @@ -55,7 +57,6 @@ along with this program. If not, see . #define RGBLIGHT_EFFECT_KNIGHT #define RGBLIGHT_EFFECT_CHRISTMAS #define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST #define RGBLIGHT_EFFECT_TWINKLE #define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_STATIC_GRADIENT + 9 @@ -73,6 +74,8 @@ along with this program. If not, see . #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120 #define RGB_MATRIX_DISABLE_KEYCODES #define RGB_DISABLE_WHEN_USB_SUSPENDED +// #define RGB_MATRIX_FRAMEBUFFER_EFFECTS +// #define RGB_MATRIX_KEYPRESSES // RGB Matrix Animation modes. Explicitly enabled // For full list of effects, see: diff --git a/keyboards/work_louder/work_board/keymaps/via/keymap.c b/keyboards/work_louder/work_board/keymaps/via/keymap.c index 9ae3b362624f..f0929bb9c955 100644 --- a/keyboards/work_louder/work_board/keymaps/via/keymap.c +++ b/keyboards/work_louder/work_board/keymaps/via/keymap.c @@ -16,12 +16,7 @@ #include QMK_KEYBOARD_H -enum planck_layers { - _QWERTY, - _LOWER, - _RAISE, - _ADJUST -}; +enum planck_layers { _QWERTY, _LOWER, _RAISE, _ADJUST }; enum tap_dances { ENC_TAP, @@ -59,6 +54,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [_QWERTY] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_LOWER] = { ENCODER_CCW_CW(KC_PGDN, KC_PGUP) }, + [_RAISE] = { ENCODER_CCW_CW(R_M_RMOD, R_M_MOD) }, + [_ADJUST] = { ENCODER_CCW_CW(R_M_HUI, R_M_HUD) }, +}; +#endif +// clang-format on + void dance_enc_finished(qk_tap_dance_state_t *state, void *user_data) { if (state->count == 1) { register_code(KC_MPLY); @@ -84,11 +89,25 @@ qk_tap_dance_action_t tap_dance_actions[] = { [ENC_TAP] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_enc_finished, dance_enc_reset), }; +typedef union { + uint32_t raw; + struct { + uint8_t led_level : 3; + }; +} work_louder_config_t; + +work_louder_config_t work_louder_config; + bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (keycode == USER09) { preprocess_tap_dance(TD(ENC_TAP), record); return process_tap_dance(TD(ENC_TAP), record); + } else if (keycode == USER10 && record->event.pressed) { + work_louder_config.led_level ^= true; + eeconfig_update_user(work_louder_config.raw); + layer_state_set_kb(layer_state); } + return true; } @@ -97,26 +116,99 @@ layer_state_t layer_state_set_user(layer_state_t state) { writePinLow(B3); writePinLow(B7); - switch (get_highest_layer(state)) { - case 1: - writePinHigh(B2); - break; - case 2: - writePinHigh(B3); - break; - case 3: - writePinHigh(B7); - break; + if (work_louder_config.led_level) { + switch (get_highest_layer(state)) { + case 1: + writePinHigh(B2); + break; + case 2: + writePinHigh(B3); + break; + case 3: + writePinHigh(B7); + break; + } } return state; } -#ifdef ENCODER_MAP_ENABLE -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { - [_QWERTY] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [_LOWER] = { ENCODER_CCW_CW(KC_PGDN, KC_PGUP) }, - [_RAISE] = { ENCODER_CCW_CW(R_M_RMOD, R_M_MOD) }, - [_ADJUST] = { ENCODER_CCW_CW(R_M_HUI, R_M_HUD) }, +void eeconfig_init_user(void) { + work_louder_config.raw = 0; + work_louder_config.led_level = true; + eeconfig_update_user(work_louder_config.raw); +} + +void keyboard_post_init_user(void) { + work_louder_config.raw = eeconfig_read_user(); +} + +enum via_indicator_value { + id_wl_brightness = 1, + id_wl_layer, // placeholder }; -#endif + +void wl_config_set_value(uint8_t *data) { + // data = [ value_id, value_data ] + uint8_t *value_id = &(data[0]); + uint8_t *value_data = &(data[1]); + + switch (*value_id) { + case id_wl_brightness: + work_louder_config.led_level = (bool)*value_data; + layer_state_set_kb(layer_state); + break; + // case id_wl_layer: + // layer_move(*value_data); + // break; + } +} + +void wl_config_get_value(uint8_t *data) { + // data = [ value_id, value_data ] + uint8_t *value_id = &(data[0]); + uint8_t *value_data = &(data[1]); + + switch (*value_id) { + case id_wl_brightness: + *value_data = work_louder_config.led_level; + break; + // case id_wl_layer: + // *value_data = get_highest_layer(layer_state); + // break; + } +} + +void wl_config_save(void) { + eeconfig_update_user(work_louder_config.raw); +} + +void via_custom_value_command_kb(uint8_t *data, uint8_t length) { + uint8_t *command_id = &(data[0]); + uint8_t *channel_id = &(data[1]); + uint8_t *value_id_and_data = &(data[2]); + + if (*channel_id == id_custom_channel) { + switch (*command_id) { + case id_custom_set_value: { + wl_config_set_value(value_id_and_data); + break; + } + case id_custom_get_value: { + wl_config_get_value(value_id_and_data); + break; + } + case id_custom_save: { + wl_config_save(); + break; + } + default: { + // Unhandled message. + *command_id = id_unhandled; + break; + } + } + return; + } + *command_id = id_unhandled; +} From 377f87cb7e12f100101debffee8c788dbac13b38 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Wed, 11 Jan 2023 12:50:11 -0800 Subject: [PATCH 047/139] Keychron V1: correct layout data for ANSI versions (#19558) * keychron/v1/ansi: correct layout data * keychron/v1/ansi_encoder: correct layout data --- keyboards/keychron/v1/ansi/info.json | 134 +++++++++---------- keyboards/keychron/v1/ansi_encoder/info.json | 134 +++++++++---------- 2 files changed, 134 insertions(+), 134 deletions(-) diff --git a/keyboards/keychron/v1/ansi/info.json b/keyboards/keychron/v1/ansi/info.json index c7bd2c5a8893..41893a6843ee 100644 --- a/keyboards/keychron/v1/ansi/info.json +++ b/keyboards/keychron/v1/ansi/info.json @@ -27,77 +27,77 @@ {"matrix":[0,13], "x":14, "y":0}, {"matrix":[0,15], "x":15.25, "y":0}, - {"matrix":[1, 0], "x":0, "y":1}, - {"matrix":[1, 1], "x":1, "y":1}, - {"matrix":[1, 2], "x":2, "y":1}, - {"matrix":[1, 3], "x":3, "y":1}, - {"matrix":[1, 4], "x":4, "y":1}, - {"matrix":[1, 5], "x":5, "y":1}, - {"matrix":[1, 6], "x":6, "y":1}, - {"matrix":[1, 7], "x":7, "y":1}, - {"matrix":[1, 8], "x":8, "y":1}, - {"matrix":[1, 9], "x":9, "y":1}, - {"matrix":[1,10], "x":10, "y":1}, - {"matrix":[1,11], "x":11, "y":1}, - {"matrix":[1,12], "x":12, "y":1}, - {"matrix":[1,13], "x":13, "y":1, "w":2}, - {"matrix":[1,15], "x":15.25, "y":1}, + {"matrix":[1, 0], "x":0, "y":1.25}, + {"matrix":[1, 1], "x":1, "y":1.25}, + {"matrix":[1, 2], "x":2, "y":1.25}, + {"matrix":[1, 3], "x":3, "y":1.25}, + {"matrix":[1, 4], "x":4, "y":1.25}, + {"matrix":[1, 5], "x":5, "y":1.25}, + {"matrix":[1, 6], "x":6, "y":1.25}, + {"matrix":[1, 7], "x":7, "y":1.25}, + {"matrix":[1, 8], "x":8, "y":1.25}, + {"matrix":[1, 9], "x":9, "y":1.25}, + {"matrix":[1,10], "x":10, "y":1.25}, + {"matrix":[1,11], "x":11, "y":1.25}, + {"matrix":[1,12], "x":12, "y":1.25}, + {"matrix":[1,13], "x":13, "y":1.25, "w":2}, + {"matrix":[1,15], "x":15.25, "y":1.25}, - {"matrix":[2, 0], "x":0, "y":2, "w":1.5}, - {"matrix":[2, 1], "x":1.5, "y":2}, - {"matrix":[2, 2], "x":2.5, "y":2}, - {"matrix":[2, 3], "x":3.5, "y":2}, - {"matrix":[2, 4], "x":4.5, "y":2}, - {"matrix":[2, 5], "x":5.5, "y":2}, - {"matrix":[2, 6], "x":6.5, "y":2}, - {"matrix":[2, 7], "x":7.5, "y":2}, - {"matrix":[2, 8], "x":8.5, "y":2}, - {"matrix":[2, 9], "x":9.5, "y":2}, - {"matrix":[2,10], "x":10.5, "y":2}, - {"matrix":[2,11], "x":11.5, "y":2}, - {"matrix":[2,12], "x":12.5, "y":2}, - {"matrix":[2,13], "x":13.5, "y":2, "w":1.5}, - {"matrix":[2,15], "x":15.25, "y":2}, + {"matrix":[2, 0], "x":0, "y":2.25, "w":1.5}, + {"matrix":[2, 1], "x":1.5, "y":2.25}, + {"matrix":[2, 2], "x":2.5, "y":2.25}, + {"matrix":[2, 3], "x":3.5, "y":2.25}, + {"matrix":[2, 4], "x":4.5, "y":2.25}, + {"matrix":[2, 5], "x":5.5, "y":2.25}, + {"matrix":[2, 6], "x":6.5, "y":2.25}, + {"matrix":[2, 7], "x":7.5, "y":2.25}, + {"matrix":[2, 8], "x":8.5, "y":2.25}, + {"matrix":[2, 9], "x":9.5, "y":2.25}, + {"matrix":[2,10], "x":10.5, "y":2.25}, + {"matrix":[2,11], "x":11.5, "y":2.25}, + {"matrix":[2,12], "x":12.5, "y":2.25}, + {"matrix":[2,13], "x":13.5, "y":2.25, "w":1.5}, + {"matrix":[2,15], "x":15.25, "y":2.25}, - {"matrix":[3, 0], "x":0, "y":3, "w":1.75}, - {"matrix":[3, 1], "x":1.75, "y":3}, - {"matrix":[3, 2], "x":2.75, "y":3}, - {"matrix":[3, 3], "x":3.75, "y":3}, - {"matrix":[3, 4], "x":4.75, "y":3}, - {"matrix":[3, 5], "x":5.75, "y":3}, - {"matrix":[3, 6], "x":6.75, "y":3}, - {"matrix":[3, 7], "x":7.75, "y":3}, - {"matrix":[3, 8], "x":8.75, "y":3}, - {"matrix":[3, 9], "x":9.75, "y":3}, - {"matrix":[3,10], "x":10.75, "y":3}, - {"matrix":[3,11], "x":11.75, "y":3}, - {"matrix":[3,13], "x":12.75, "y":3, "w":2.25}, - {"matrix":[3,15], "x":15.25, "y":3}, + {"matrix":[3, 0], "x":0, "y":3.25, "w":1.75}, + {"matrix":[3, 1], "x":1.75, "y":3.25}, + {"matrix":[3, 2], "x":2.75, "y":3.25}, + {"matrix":[3, 3], "x":3.75, "y":3.25}, + {"matrix":[3, 4], "x":4.75, "y":3.25}, + {"matrix":[3, 5], "x":5.75, "y":3.25}, + {"matrix":[3, 6], "x":6.75, "y":3.25}, + {"matrix":[3, 7], "x":7.75, "y":3.25}, + {"matrix":[3, 8], "x":8.75, "y":3.25}, + {"matrix":[3, 9], "x":9.75, "y":3.25}, + {"matrix":[3,10], "x":10.75, "y":3.25}, + {"matrix":[3,11], "x":11.75, "y":3.25}, + {"matrix":[3,13], "x":12.75, "y":3.25, "w":2.25}, + {"matrix":[3,15], "x":15.25, "y":3.25}, - {"matrix":[4, 0], "x":0, "y":4, "w":2.25}, - {"matrix":[4, 2], "x":2.25, "y":4}, - {"matrix":[4, 3], "x":3.25, "y":4}, - {"matrix":[4, 4], "x":4.25, "y":4}, - {"matrix":[4, 5], "x":5.25, "y":4}, - {"matrix":[4, 6], "x":6.25, "y":4}, - {"matrix":[4, 7], "x":7.25, "y":4}, - {"matrix":[4, 8], "x":8.25, "y":4}, - {"matrix":[4, 9], "x":9.25, "y":4}, - {"matrix":[4,10], "x":10.25, "y":4}, - {"matrix":[4,11], "x":11.25, "y":4}, - {"matrix":[4,13], "x":12.25, "y":4, "w":1.75}, - {"matrix":[4,14], "x":14.25, "y":4.25}, + {"matrix":[4, 0], "x":0, "y":4.25, "w":2.25}, + {"matrix":[4, 2], "x":2.25, "y":4.25}, + {"matrix":[4, 3], "x":3.25, "y":4.25}, + {"matrix":[4, 4], "x":4.25, "y":4.25}, + {"matrix":[4, 5], "x":5.25, "y":4.25}, + {"matrix":[4, 6], "x":6.25, "y":4.25}, + {"matrix":[4, 7], "x":7.25, "y":4.25}, + {"matrix":[4, 8], "x":8.25, "y":4.25}, + {"matrix":[4, 9], "x":9.25, "y":4.25}, + {"matrix":[4,10], "x":10.25, "y":4.25}, + {"matrix":[4,11], "x":11.25, "y":4.25}, + {"matrix":[4,13], "x":12.25, "y":4.25, "w":1.75}, + {"matrix":[4,14], "x":14.25, "y":4.5}, - {"matrix":[5, 0], "x":0, "y":5, "w":1.25}, - {"matrix":[5, 1], "x":1.25, "y":5, "w":1.25}, - {"matrix":[5, 2], "x":2.5, "y":5, "w":1.25}, - {"matrix":[5, 6], "x":3.75, "y":5, "w":6.25}, - {"matrix":[5,10], "x":10, "y":5}, - {"matrix":[5,11], "x":11, "y":5}, - {"matrix":[5,12], "x":12, "y":5}, - {"matrix":[5,13], "x":13.25, "y":5.25}, - {"matrix":[5,14], "x":14.25, "y":5.25}, - {"matrix":[5,15], "x":15.25, "y":5.25} + {"matrix":[5, 0], "x":0, "y":5.25, "w":1.25}, + {"matrix":[5, 1], "x":1.25, "y":5.25, "w":1.25}, + {"matrix":[5, 2], "x":2.5, "y":5.25, "w":1.25}, + {"matrix":[5, 6], "x":3.75, "y":5.25, "w":6.25}, + {"matrix":[5,10], "x":10, "y":5.25}, + {"matrix":[5,11], "x":11, "y":5.25}, + {"matrix":[5,12], "x":12, "y":5.25}, + {"matrix":[5,13], "x":13.25, "y":5.5}, + {"matrix":[5,14], "x":14.25, "y":5.5}, + {"matrix":[5,15], "x":15.25, "y":5.5} ] } } diff --git a/keyboards/keychron/v1/ansi_encoder/info.json b/keyboards/keychron/v1/ansi_encoder/info.json index 34f8f423fc41..0ad45813fe37 100644 --- a/keyboards/keychron/v1/ansi_encoder/info.json +++ b/keyboards/keychron/v1/ansi_encoder/info.json @@ -27,77 +27,77 @@ {"matrix":[0,13], "x":14, "y":0}, {"matrix":[0,15], "x":15.25, "y":0}, - {"matrix":[1, 0], "x":0, "y":1}, - {"matrix":[1, 1], "x":1, "y":1}, - {"matrix":[1, 2], "x":2, "y":1}, - {"matrix":[1, 3], "x":3, "y":1}, - {"matrix":[1, 4], "x":4, "y":1}, - {"matrix":[1, 5], "x":5, "y":1}, - {"matrix":[1, 6], "x":6, "y":1}, - {"matrix":[1, 7], "x":7, "y":1}, - {"matrix":[1, 8], "x":8, "y":1}, - {"matrix":[1, 9], "x":9, "y":1}, - {"matrix":[1,10], "x":10, "y":1}, - {"matrix":[1,11], "x":11, "y":1}, - {"matrix":[1,12], "x":12, "y":1}, - {"matrix":[1,13], "x":13, "y":1, "w":2}, - {"matrix":[1,15], "x":15.25, "y":1}, + {"matrix":[1, 0], "x":0, "y":1.25}, + {"matrix":[1, 1], "x":1, "y":1.25}, + {"matrix":[1, 2], "x":2, "y":1.25}, + {"matrix":[1, 3], "x":3, "y":1.25}, + {"matrix":[1, 4], "x":4, "y":1.25}, + {"matrix":[1, 5], "x":5, "y":1.25}, + {"matrix":[1, 6], "x":6, "y":1.25}, + {"matrix":[1, 7], "x":7, "y":1.25}, + {"matrix":[1, 8], "x":8, "y":1.25}, + {"matrix":[1, 9], "x":9, "y":1.25}, + {"matrix":[1,10], "x":10, "y":1.25}, + {"matrix":[1,11], "x":11, "y":1.25}, + {"matrix":[1,12], "x":12, "y":1.25}, + {"matrix":[1,13], "x":13, "y":1.25, "w":2}, + {"matrix":[1,15], "x":15.25, "y":1.25}, - {"matrix":[2, 0], "x":0, "y":2, "w":1.5}, - {"matrix":[2, 1], "x":1.5, "y":2}, - {"matrix":[2, 2], "x":2.5, "y":2}, - {"matrix":[2, 3], "x":3.5, "y":2}, - {"matrix":[2, 4], "x":4.5, "y":2}, - {"matrix":[2, 5], "x":5.5, "y":2}, - {"matrix":[2, 6], "x":6.5, "y":2}, - {"matrix":[2, 7], "x":7.5, "y":2}, - {"matrix":[2, 8], "x":8.5, "y":2}, - {"matrix":[2, 9], "x":9.5, "y":2}, - {"matrix":[2,10], "x":10.5, "y":2}, - {"matrix":[2,11], "x":11.5, "y":2}, - {"matrix":[2,12], "x":12.5, "y":2}, - {"matrix":[2,13], "x":13.5, "y":2, "w":1.5}, - {"matrix":[2,15], "x":15.25, "y":2}, + {"matrix":[2, 0], "x":0, "y":2.25, "w":1.5}, + {"matrix":[2, 1], "x":1.5, "y":2.25}, + {"matrix":[2, 2], "x":2.5, "y":2.25}, + {"matrix":[2, 3], "x":3.5, "y":2.25}, + {"matrix":[2, 4], "x":4.5, "y":2.25}, + {"matrix":[2, 5], "x":5.5, "y":2.25}, + {"matrix":[2, 6], "x":6.5, "y":2.25}, + {"matrix":[2, 7], "x":7.5, "y":2.25}, + {"matrix":[2, 8], "x":8.5, "y":2.25}, + {"matrix":[2, 9], "x":9.5, "y":2.25}, + {"matrix":[2,10], "x":10.5, "y":2.25}, + {"matrix":[2,11], "x":11.5, "y":2.25}, + {"matrix":[2,12], "x":12.5, "y":2.25}, + {"matrix":[2,13], "x":13.5, "y":2.25, "w":1.5}, + {"matrix":[2,15], "x":15.25, "y":2.25}, - {"matrix":[3, 0], "x":0, "y":3, "w":1.75}, - {"matrix":[3, 1], "x":1.75, "y":3}, - {"matrix":[3, 2], "x":2.75, "y":3}, - {"matrix":[3, 3], "x":3.75, "y":3}, - {"matrix":[3, 4], "x":4.75, "y":3}, - {"matrix":[3, 5], "x":5.75, "y":3}, - {"matrix":[3, 6], "x":6.75, "y":3}, - {"matrix":[3, 7], "x":7.75, "y":3}, - {"matrix":[3, 8], "x":8.75, "y":3}, - {"matrix":[3, 9], "x":9.75, "y":3}, - {"matrix":[3,10], "x":10.75, "y":3}, - {"matrix":[3,11], "x":11.75, "y":3}, - {"matrix":[3,13], "x":12.75, "y":3, "w":2.25}, - {"matrix":[3,15], "x":15.25, "y":3}, + {"matrix":[3, 0], "x":0, "y":3.25, "w":1.75}, + {"matrix":[3, 1], "x":1.75, "y":3.25}, + {"matrix":[3, 2], "x":2.75, "y":3.25}, + {"matrix":[3, 3], "x":3.75, "y":3.25}, + {"matrix":[3, 4], "x":4.75, "y":3.25}, + {"matrix":[3, 5], "x":5.75, "y":3.25}, + {"matrix":[3, 6], "x":6.75, "y":3.25}, + {"matrix":[3, 7], "x":7.75, "y":3.25}, + {"matrix":[3, 8], "x":8.75, "y":3.25}, + {"matrix":[3, 9], "x":9.75, "y":3.25}, + {"matrix":[3,10], "x":10.75, "y":3.25}, + {"matrix":[3,11], "x":11.75, "y":3.25}, + {"matrix":[3,13], "x":12.75, "y":3.25, "w":2.25}, + {"matrix":[3,15], "x":15.25, "y":3.25}, - {"matrix":[4, 0], "x":0, "y":4, "w":2.25}, - {"matrix":[4, 2], "x":2.25, "y":4}, - {"matrix":[4, 3], "x":3.25, "y":4}, - {"matrix":[4, 4], "x":4.25, "y":4}, - {"matrix":[4, 5], "x":5.25, "y":4}, - {"matrix":[4, 6], "x":6.25, "y":4}, - {"matrix":[4, 7], "x":7.25, "y":4}, - {"matrix":[4, 8], "x":8.25, "y":4}, - {"matrix":[4, 9], "x":9.25, "y":4}, - {"matrix":[4,10], "x":10.25, "y":4}, - {"matrix":[4,11], "x":11.25, "y":4}, - {"matrix":[4,13], "x":12.25, "y":4, "w":1.75}, - {"matrix":[4,14], "x":14.25, "y":4.25}, + {"matrix":[4, 0], "x":0, "y":4.25, "w":2.25}, + {"matrix":[4, 2], "x":2.25, "y":4.25}, + {"matrix":[4, 3], "x":3.25, "y":4.25}, + {"matrix":[4, 4], "x":4.25, "y":4.25}, + {"matrix":[4, 5], "x":5.25, "y":4.25}, + {"matrix":[4, 6], "x":6.25, "y":4.25}, + {"matrix":[4, 7], "x":7.25, "y":4.25}, + {"matrix":[4, 8], "x":8.25, "y":4.25}, + {"matrix":[4, 9], "x":9.25, "y":4.25}, + {"matrix":[4,10], "x":10.25, "y":4.25}, + {"matrix":[4,11], "x":11.25, "y":4.25}, + {"matrix":[4,13], "x":12.25, "y":4.25, "w":1.75}, + {"matrix":[4,14], "x":14.25, "y":4.5}, - {"matrix":[5, 0], "x":0, "y":5, "w":1.25}, - {"matrix":[5, 1], "x":1.25, "y":5, "w":1.25}, - {"matrix":[5, 2], "x":2.5, "y":5, "w":1.25}, - {"matrix":[5, 6], "x":3.75, "y":5, "w":6.25}, - {"matrix":[5,10], "x":10, "y":5}, - {"matrix":[5,11], "x":11, "y":5}, - {"matrix":[5,12], "x":12, "y":5}, - {"matrix":[5,13], "x":13.25, "y":5.25}, - {"matrix":[5,14], "x":14.25, "y":5.25}, - {"matrix":[5,15], "x":15.25, "y":5.25} + {"matrix":[5, 0], "x":0, "y":5.25, "w":1.25}, + {"matrix":[5, 1], "x":1.25, "y":5.25, "w":1.25}, + {"matrix":[5, 2], "x":2.5, "y":5.25, "w":1.25}, + {"matrix":[5, 6], "x":3.75, "y":5.25, "w":6.25}, + {"matrix":[5,10], "x":10, "y":5.25}, + {"matrix":[5,11], "x":11, "y":5.25}, + {"matrix":[5,12], "x":12, "y":5.25}, + {"matrix":[5,13], "x":13.25, "y":5.5}, + {"matrix":[5,14], "x":14.25, "y":5.5}, + {"matrix":[5,15], "x":15.25, "y":5.5} ] } } From 74d8f16c1d4754e79e9b022305e0f2468bb89243 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Wed, 11 Jan 2023 14:33:30 -0800 Subject: [PATCH 048/139] Keychron V3: correct layout data (#19567) * keychron/v3/ansi_encoder: correct layout data * keychron/v3/iso_encoder: correct layout data --- keyboards/keychron/v3/ansi_encoder/info.json | 26 ++++++++++---------- keyboards/keychron/v3/iso_encoder/info.json | 6 ++--- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/keyboards/keychron/v3/ansi_encoder/info.json b/keyboards/keychron/v3/ansi_encoder/info.json index 1b3ed4098b02..91ba7228bd6c 100644 --- a/keyboards/keychron/v3/ansi_encoder/info.json +++ b/keyboards/keychron/v3/ansi_encoder/info.json @@ -25,9 +25,9 @@ {"matrix":[0,11], "x":11.75, "y":0}, {"matrix":[0,12], "x":12.75, "y":0}, {"matrix":[0,13], "x":14, "y":0}, - {"matrix":[0,14], "x":15.75, "y":0}, - {"matrix":[0,15], "x":16.75, "y":0}, - {"matrix":[3,14], "x":17.75, "y":0}, + {"matrix":[0,14], "x":15.25, "y":0}, + {"matrix":[0,15], "x":16.25, "y":0}, + {"matrix":[3,14], "x":17.25, "y":0}, {"matrix":[1, 0], "x":0, "y":1.25}, {"matrix":[1, 1], "x":1, "y":1.25}, @@ -43,9 +43,9 @@ {"matrix":[1,11], "x":11, "y":1.25}, {"matrix":[1,12], "x":12, "y":1.25}, {"matrix":[1,13], "x":13, "y":1.25, "w":2}, - {"matrix":[1,14], "x":15.75, "y":1.25}, - {"matrix":[1,15], "x":16.75, "y":1.25}, - {"matrix":[3,15], "x":17.75, "y":1.25}, + {"matrix":[1,14], "x":15.25, "y":1.25}, + {"matrix":[1,15], "x":16.25, "y":1.25}, + {"matrix":[3,15], "x":17.25, "y":1.25}, {"matrix":[2, 0], "x":0, "y":2.25, "w":1.5}, {"matrix":[2, 1], "x":1.5, "y":2.25}, @@ -61,9 +61,9 @@ {"matrix":[2,11], "x":11.5, "y":2.25}, {"matrix":[2,12], "x":12.5, "y":2.25}, {"matrix":[2,13], "x":13.5, "y":2.25, "w":1.5}, - {"matrix":[2,14], "x":15.75, "y":2.25}, - {"matrix":[2,15], "x":16.75, "y":2.25}, - {"matrix":[3,12], "x":17.75, "y":2.25}, + {"matrix":[2,14], "x":15.25, "y":2.25}, + {"matrix":[2,15], "x":16.25, "y":2.25}, + {"matrix":[3,12], "x":17.25, "y":2.25}, {"matrix":[3, 0], "x":0, "y":3.25, "w":1.75}, {"matrix":[3, 1], "x":1.75, "y":3.25}, @@ -91,7 +91,7 @@ {"matrix":[4,10], "x":10.25, "y":4.25}, {"matrix":[4,11], "x":11.25, "y":4.25}, {"matrix":[4,13], "x":12.25, "y":4.25, "w":2.75}, - {"matrix":[4,15], "x":16.75, "y":4.25}, + {"matrix":[4,15], "x":16.25, "y":4.25}, {"matrix":[5, 0], "x":0, "y":5.25, "w":1.25}, {"matrix":[5, 1], "x":1.25, "y":5.25, "w":1.25}, @@ -101,9 +101,9 @@ {"matrix":[5,11], "x":11.25, "y":5.25, "w":1.25}, {"matrix":[5,12], "x":12.5, "y":5.25, "w":1.25}, {"matrix":[5,13], "x":13.75, "y":5.25, "w":1.25}, - {"matrix":[5,14], "x":15.75, "y":5.25}, - {"matrix":[5,15], "x":16.75, "y":5.25}, - {"matrix":[4,14], "x":17.75, "y":5.25} + {"matrix":[5,14], "x":15.25, "y":5.25}, + {"matrix":[5,15], "x":16.25, "y":5.25}, + {"matrix":[4,14], "x":17.25, "y":5.25} ] } } diff --git a/keyboards/keychron/v3/iso_encoder/info.json b/keyboards/keychron/v3/iso_encoder/info.json index 6003239cccc2..9bd0ff358874 100644 --- a/keyboards/keychron/v3/iso_encoder/info.json +++ b/keyboards/keychron/v3/iso_encoder/info.json @@ -25,9 +25,9 @@ {"matrix":[0,11], "x":11.75, "y":0}, {"matrix":[0,12], "x":12.75, "y":0}, {"matrix":[0,13], "x":14, "y":0}, - {"matrix":[0,14], "x":15.75, "y":0}, - {"matrix":[0,15], "x":16.75, "y":0}, - {"matrix":[3,14], "x":17.75, "y":0}, + {"matrix":[0,14], "x":15.25, "y":0}, + {"matrix":[0,15], "x":16.25, "y":0}, + {"matrix":[3,14], "x":17.25, "y":0}, {"matrix":[1, 0], "x":0, "y":1.25}, {"matrix":[1, 1], "x":1, "y":1.25}, From 62eba54092f5d56f0b7cba011fc5567a2917a52e Mon Sep 17 00:00:00 2001 From: Ramon Imbao Date: Thu, 12 Jan 2023 15:45:08 +0800 Subject: [PATCH 049/139] [Keyboard] Add Plywrks Ji-Eun (#18276) --- keyboards/plywrks/ji_eun/info.json | 170 ++++++++++++++++++ .../plywrks/ji_eun/keymaps/default/keymap.c | 27 +++ keyboards/plywrks/ji_eun/keymaps/via/keymap.c | 35 ++++ keyboards/plywrks/ji_eun/keymaps/via/rules.mk | 1 + keyboards/plywrks/ji_eun/readme.md | 26 +++ keyboards/plywrks/ji_eun/rules.mk | 1 + 6 files changed, 260 insertions(+) create mode 100644 keyboards/plywrks/ji_eun/info.json create mode 100644 keyboards/plywrks/ji_eun/keymaps/default/keymap.c create mode 100644 keyboards/plywrks/ji_eun/keymaps/via/keymap.c create mode 100644 keyboards/plywrks/ji_eun/keymaps/via/rules.mk create mode 100644 keyboards/plywrks/ji_eun/readme.md create mode 100644 keyboards/plywrks/ji_eun/rules.mk diff --git a/keyboards/plywrks/ji_eun/info.json b/keyboards/plywrks/ji_eun/info.json new file mode 100644 index 000000000000..e225ff3c1d76 --- /dev/null +++ b/keyboards/plywrks/ji_eun/info.json @@ -0,0 +1,170 @@ +{ + "manufacturer": "Ramon Imbao", + "keyboard_name": "Ji-Eun", + "maintainer": "ramonimbao", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["F0", "F1", "F4", "F5", "F6", "F7", "C7", "C6", "B6", "B5", "D5", "D6", "B7", "D2", "D1"], + "rows": ["D7", "B4", "B0", "D4", "D3"] + }, + "processor": "atmega32u4", + "url": "", + "usb": { + "device_version": "1.0.0", + "vid": "0x706C", + "pid": "0x7904" + }, + "layouts": { + "LAYOUT_60_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], "w": 2, "x": 13, "y": 0 }, + + { "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1.5, "y": 1 }, + { "matrix": [1, 2], "x": 2.5, "y": 1 }, + { "matrix": [1, 3], "x": 3.5, "y": 1 }, + { "matrix": [1, 4], "x": 4.5, "y": 1 }, + { "matrix": [1, 5], "x": 5.5, "y": 1 }, + { "matrix": [1, 6], "x": 6.5, "y": 1 }, + { "matrix": [1, 7], "x": 7.5, "y": 1 }, + { "matrix": [1, 8], "x": 8.5, "y": 1 }, + { "matrix": [1, 9], "x": 9.5, "y": 1 }, + { "matrix": [1, 10], "x": 10.5, "y": 1 }, + { "matrix": [1, 11], "x": 11.5, "y": 1 }, + { "matrix": [1, 12], "x": 12.5, "y": 1 }, + { "matrix": [1, 14], "w": 1.5, "x": 13.5, "y": 1 }, + + { "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1.75, "y": 2 }, + { "matrix": [2, 2], "x": 2.75, "y": 2 }, + { "matrix": [2, 3], "x": 3.75, "y": 2 }, + { "matrix": [2, 4], "x": 4.75, "y": 2 }, + { "matrix": [2, 5], "x": 5.75, "y": 2 }, + { "matrix": [2, 6], "x": 6.75, "y": 2 }, + { "matrix": [2, 7], "x": 7.75, "y": 2 }, + { "matrix": [2, 8], "x": 8.75, "y": 2 }, + { "matrix": [2, 9], "x": 9.75, "y": 2 }, + { "matrix": [2, 10], "x": 10.75, "y": 2 }, + { "matrix": [2, 11], "x": 11.75, "y": 2 }, + { "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 }, + + { "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, + { "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "matrix": [3, 13], "w": 2.75, "x": 12.25, "y": 3 }, + + { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4 }, + { "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, + { "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, + { "matrix": [4, 13], "w": 1.25, "x": 12.5, "y": 4 }, + { "matrix": [4, 14], "w": 1.25, "x": 13.75, "y": 4 } + ] + }, + "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": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1.5, "y": 1 }, + { "matrix": [1, 2], "x": 2.5, "y": 1 }, + { "matrix": [1, 3], "x": 3.5, "y": 1 }, + { "matrix": [1, 4], "x": 4.5, "y": 1 }, + { "matrix": [1, 5], "x": 5.5, "y": 1 }, + { "matrix": [1, 6], "x": 6.5, "y": 1 }, + { "matrix": [1, 7], "x": 7.5, "y": 1 }, + { "matrix": [1, 8], "x": 8.5, "y": 1 }, + { "matrix": [1, 9], "x": 9.5, "y": 1 }, + { "matrix": [1, 10], "x": 10.5, "y": 1 }, + { "matrix": [1, 11], "x": 11.5, "y": 1 }, + { "matrix": [1, 12], "x": 12.5, "y": 1 }, + { "matrix": [1, 14], "w": 1.5, "x": 13.5, "y": 1 }, + + { "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1.75, "y": 2 }, + { "matrix": [2, 2], "x": 2.75, "y": 2 }, + { "matrix": [2, 3], "x": 3.75, "y": 2 }, + { "matrix": [2, 4], "x": 4.75, "y": 2 }, + { "matrix": [2, 5], "x": 5.75, "y": 2 }, + { "matrix": [2, 6], "x": 6.75, "y": 2 }, + { "matrix": [2, 7], "x": 7.75, "y": 2 }, + { "matrix": [2, 8], "x": 8.75, "y": 2 }, + { "matrix": [2, 9], "x": 9.75, "y": 2 }, + { "matrix": [2, 10], "x": 10.75, "y": 2 }, + { "matrix": [2, 11], "x": 11.75, "y": 2 }, + { "matrix": [2, 12], "x": 12.75, "y": 2 }, + { "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 2 }, + + { "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, + { "matrix": [3, 1], "x": 1.25, "y": 3 }, + { "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "matrix": [3, 13], "w": 1.75, "x": 12.25, "y": 3 }, + { "matrix": [3, 14], "x": 14, "y": 0 }, + + { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4 }, + { "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, + { "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, + { "matrix": [4, 13], "w": 1.25, "x": 12.5, "y": 4 }, + { "matrix": [4, 14], "w": 1.25, "x": 13.75, "y": 4 } + ] + } + } +} diff --git a/keyboards/plywrks/ji_eun/keymaps/default/keymap.c b/keyboards/plywrks/ji_eun/keymaps/default/keymap.c new file mode 100644 index 000000000000..6da3e5230584 --- /dev/null +++ b/keyboards/plywrks/ji_eun/keymaps/default/keymap.c @@ -0,0 +1,27 @@ +// Copyright 2022 Ramon Imbao (@ramonimbao) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │Ctrl│GUI │Alt │ │ Alt│ GUI│Menu│Ctrl│ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ + [0] = LAYOUT_60_ansi( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL + ) +}; diff --git a/keyboards/plywrks/ji_eun/keymaps/via/keymap.c b/keyboards/plywrks/ji_eun/keymaps/via/keymap.c new file mode 100644 index 000000000000..56b838cea198 --- /dev/null +++ b/keyboards/plywrks/ji_eun/keymaps/via/keymap.c @@ -0,0 +1,35 @@ +// Copyright 2022 Ramon Imbao (@ramonimbao) +// 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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL + ), + [1] = LAYOUT_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, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/plywrks/ji_eun/keymaps/via/rules.mk b/keyboards/plywrks/ji_eun/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/plywrks/ji_eun/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/plywrks/ji_eun/readme.md b/keyboards/plywrks/ji_eun/readme.md new file mode 100644 index 000000000000..f1ed7f4062b5 --- /dev/null +++ b/keyboards/plywrks/ji_eun/readme.md @@ -0,0 +1,26 @@ +# Plywrks Ji-Eun + +![Ji-Eun](https://i.imgur.com/cvbFv7Nl.png) + +A 60% PCB with multilayout support. + +* Keyboard Maintainer: [Ramon Imbao](https://github.com/ramonimbao) +* Hardware Supported: ATmega32u4 + +Make example for this keyboard (after setting up your build environment): + + make plywrks/ji_eun:via + +Flashing example for this keyboard: + + make plywrks/ji_eun:via:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/plywrks/ji_eun/rules.mk b/keyboards/plywrks/ji_eun/rules.mk new file mode 100644 index 000000000000..6e7633bfe015 --- /dev/null +++ b/keyboards/plywrks/ji_eun/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank From 2b5e5d90470ae261619cf22448dbcbbdde870fce Mon Sep 17 00:00:00 2001 From: Christian Brauner Date: Thu, 12 Jan 2023 10:56:12 +0100 Subject: [PATCH 050/139] [Keymap] Add brauner preonic layout (#19444) --- keyboards/preonic/keymaps/brauner/config.h | 38 ++ keyboards/preonic/keymaps/brauner/keymap.c | 433 ++++++++++++++++++++ keyboards/preonic/keymaps/brauner/readme.md | 26 ++ keyboards/preonic/keymaps/brauner/rules.mk | 7 + 4 files changed, 504 insertions(+) create mode 100644 keyboards/preonic/keymaps/brauner/config.h create mode 100644 keyboards/preonic/keymaps/brauner/keymap.c create mode 100644 keyboards/preonic/keymaps/brauner/readme.md create mode 100644 keyboards/preonic/keymaps/brauner/rules.mk diff --git a/keyboards/preonic/keymaps/brauner/config.h b/keyboards/preonic/keymaps/brauner/config.h new file mode 100644 index 000000000000..7c3893ff38b0 --- /dev/null +++ b/keyboards/preonic/keymaps/brauner/config.h @@ -0,0 +1,38 @@ +/* Copyright 2015-2021 Jack Humbert + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#ifdef AUDIO_ENABLE +# define STARTUP_SONG SONG(PREONIC_SOUND) +# define DEFAULT_LAYER_SONGS \ + { SONG(QWERTY_SOUND) } +#endif + +#define MUSIC_MASK (keycode != KC_NO) + +#define PERMISSVE_HOLD + +#define LEADER_PER_KEY_TIMING + +#define LEADER_TIMEOUT 250 + +#define LEADER_NO_TIMEOUT + +#define MK_3_SPEED +#define MK_MOMENTARY_ACCEL + +#define COMBO_NO_TIMER diff --git a/keyboards/preonic/keymaps/brauner/keymap.c b/keyboards/preonic/keymaps/brauner/keymap.c new file mode 100644 index 000000000000..d1edec002d29 --- /dev/null +++ b/keyboards/preonic/keymaps/brauner/keymap.c @@ -0,0 +1,433 @@ +/* Copyright 2015-2021 Jack Humbert + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H +#include "muse.h" + +enum preonic_layers { + _QWERTY, + _LOWER, + _RAISE, + _MOUSE, + _MANAGE, + _COMPOSITOR, +}; + +enum preonic_keycodes { + QWERTY = SAFE_RANGE, + LOWER, + RAISE, + MOUSE, + MANAGE, + COMPOSITOR, +}; + +#define MOD_TAP_LSFT_ESC LSFT_T(KC_ESC) +#define MOD_TAP_LSFT_ENT LSFT_T(KC_ENT) + +#define LT_COPY_Y LT(_QWERTY, KC_Y) +#define LT_CUT_X LT(_QWERTY, KC_X) +#define LT_PASTE_P LT(_QWERTY, KC_P) +#define LT_AE_A LT(_QWERTY, KC_A) +#define LT_OE_O LT(_QWERTY, KC_O) +#define LT_UE_U LT(_QWERTY, KC_U) +#define LT_SZ_S LT(_QWERTY, KC_S) +#define LT_LOWER_SPC LT(_LOWER, KC_SPC) + +#define LM_COMP_LALT LM(_COMPOSITOR, MOD_LALT) +#define LM_COMP_LALT_LSFT LM(_COMPOSITOR, MOD_LALT | MOD_LSFT) + +#define KO_LAYER_MASK_EXCEPT(layer) ((~0) & ~(1 << layer)) + +enum combos { + COMBO_LPRN_RPRN, /* (|) */ + COMBO_LBRC_RBRC, /* [|] */ + COMBO_LCBR_RCBR, /* {|} */ + COMBO_LT_GT, /* <|> */ + COMBO_MAX, +}; + +uint16_t COMBO_LEN = COMBO_MAX; + +const uint16_t PROGMEM combo_lprn_rprn[] = {KC_LPRN, KC_RPRN, COMBO_END}; +const uint16_t PROGMEM combo_lbrc_rbrc[] = {KC_LBRC, KC_RBRC, COMBO_END}; +const uint16_t PROGMEM combo_lcbr_rcbr[] = {KC_LCBR, KC_RCBR, COMBO_END}; +const uint16_t PROGMEM combo_lt_gt[] = {KC_LT, KC_GT, COMBO_END}; + +combo_t key_combos[COMBO_MAX] = { + [COMBO_LPRN_RPRN] = COMBO_ACTION(combo_lprn_rprn), + [COMBO_LBRC_RBRC] = COMBO_ACTION(combo_lbrc_rbrc), + [COMBO_LCBR_RCBR] = COMBO_ACTION(combo_lcbr_rcbr), + [COMBO_LT_GT] = COMBO_ACTION(combo_lt_gt), +}; + +void process_combo_event(uint16_t combo_index, bool pressed) { + switch (combo_index) { + case COMBO_LPRN_RPRN: + if (pressed) { + tap_code16(KC_LPRN); + tap_code16(KC_RPRN); + tap_code16(KC_LEFT); + } + break; + case COMBO_LBRC_RBRC: + if (pressed) { + tap_code16(KC_LBRC); + tap_code16(KC_RBRC); + tap_code16(KC_LEFT); + } + break; + case COMBO_LCBR_RCBR: + if (pressed) { + tap_code16(KC_LCBR); + tap_code16(KC_RCBR); + tap_code16(KC_LEFT); + } + break; + case COMBO_LT_GT: + if (pressed) { + tap_code16(KC_LT); + tap_code16(KC_GT); + tap_code16(KC_LEFT); + } + break; + } +} + +const key_override_t nop_shift_quote = ko_make_with_layers(MOD_MASK_SHIFT, KC_QUOT, KC_NO, KO_LAYER_MASK_EXCEPT(_COMPOSITOR)); /* " */ +const key_override_t nop_shift_dot = ko_make_with_layers(MOD_MASK_SHIFT, KC_DOT, KC_NO, KO_LAYER_MASK_EXCEPT(_COMPOSITOR)); /* < */ +const key_override_t nop_shift_comma = ko_make_with_layers(MOD_MASK_SHIFT, KC_COMM, KC_NO, KO_LAYER_MASK_EXCEPT(_COMPOSITOR)); /* > */ +const key_override_t nop_shift_slash = ko_make_with_layers(MOD_MASK_SHIFT, KC_SLSH, KC_NO, KO_LAYER_MASK_EXCEPT(_COMPOSITOR)); /* ? */ +const key_override_t nop_shift_one = ko_make_with_layers(MOD_MASK_SHIFT, KC_1, KC_NO, KO_LAYER_MASK_EXCEPT(_COMPOSITOR)); /* ! */ +const key_override_t nop_shift_two = ko_make_with_layers(MOD_MASK_SHIFT, KC_2, KC_NO, KO_LAYER_MASK_EXCEPT(_COMPOSITOR)); /* override @ */ +const key_override_t nop_shift_three = ko_make_with_layers(MOD_MASK_SHIFT, KC_3, KC_NO, KO_LAYER_MASK_EXCEPT(_COMPOSITOR)); /* override # */ +const key_override_t nop_shift_four = ko_make_with_layers(MOD_MASK_SHIFT, KC_4, KC_NO, KO_LAYER_MASK_EXCEPT(_COMPOSITOR)); /* override $ */ +const key_override_t nop_shift_five = ko_make_with_layers(MOD_MASK_SHIFT, KC_5, KC_NO, KO_LAYER_MASK_EXCEPT(_COMPOSITOR)); /* override % */ +const key_override_t nop_shift_six = ko_make_with_layers(MOD_MASK_SHIFT, KC_6, KC_NO, KO_LAYER_MASK_EXCEPT(_COMPOSITOR)); /* override ^ */ +const key_override_t nop_shift_seven = ko_make_with_layers(MOD_MASK_SHIFT, KC_7, KC_NO, KO_LAYER_MASK_EXCEPT(_COMPOSITOR)); /* override & */ +const key_override_t nop_shift_eight = ko_make_with_layers(MOD_MASK_SHIFT, KC_8, KC_NO, KO_LAYER_MASK_EXCEPT(_COMPOSITOR)); /* override * */ +const key_override_t nop_shift_nine = ko_make_with_layers(MOD_MASK_SHIFT, KC_9, KC_NO, KO_LAYER_MASK_EXCEPT(_COMPOSITOR)); /* override ( */ +const key_override_t nop_shift_zero = ko_make_with_layers(MOD_MASK_SHIFT, KC_0, KC_NO, KO_LAYER_MASK_EXCEPT(_COMPOSITOR)); /* override ) */ + +const key_override_t **key_overrides = (const key_override_t *[]){ + &nop_shift_quote, + &nop_shift_dot, + &nop_shift_comma, + &nop_shift_slash, + &nop_shift_one, + &nop_shift_two, + &nop_shift_three, + &nop_shift_four, + &nop_shift_five, + &nop_shift_six, + &nop_shift_seven, + &nop_shift_eight, + &nop_shift_nine, + &nop_shift_zero, + NULL +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Qwerty + * ,------------------------------------------------------------------------------------------------------------------------------------------------. + * | Caps Lock| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Leader | + * |----------+------+--------------------+-----------+------------+---------------+-----------+------------+------+------+------------+------------| + * | Ctrl | Q | W | E | R | T | Copy/Y | Ü/U | I | Ö/O | Paste/P | Ctrl | + * |----------+------+--------------------+-----------+------------+---------------------------+------------+------+------+------------+------------| + * | Shift/Esc| Ä/A | ß/S | D | F | G | H | J | K | L | ' | Shift/Enter| + * |----------+------+--------------------+-----------+------------+---------------|-----------+------------+------+------+------------+------------| + * | | Z | Cut/X | C | V | B | N | M | , | . | / | | + * |----------+------+--------------------+-----------+------------+---------------+-----------+------------+------+------+------------+------------| + * | | |Compositor+Alt+Shift| Raise |Lower/Space | Compositor+Alt| Mouse |Lower/Space |Raise | | | Manage | + * `------------------------------------------------------------------------------------------------------------------------------------------------' + */ + [_QWERTY] = LAYOUT_preonic_grid( + KC_CAPS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LEAD, + KC_LCTL, KC_Q, KC_W, KC_E, KC_R, KC_T, LT_COPY_Y, LT_UE_U, KC_I, LT_OE_O, LT_PASTE_P, KC_RCTL, + MOD_TAP_LSFT_ESC, LT_AE_A, LT_SZ_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, MOD_TAP_LSFT_ENT, + _______, KC_Z, LT_CUT_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______, + _______, _______, LM_COMP_LALT_LSFT, RAISE, LOWER, LM_COMP_LALT, TG(_MOUSE), LT_LOWER_SPC, RAISE, _______, _______, MANAGE + ), + /* Lower + * ,-----------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | @ | % | ( | ) | | | + | < | > | | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | ~ | | [ | ] | | Left | Down | Up |Right | " | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | { | } | | | | : | ! | \ | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ + [_LOWER] = LAYOUT_preonic_grid( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, KC_AT, KC_PERC, KC_LPRN, KC_RPRN, XXXXXXX, XXXXXXX, KC_PLUS, KC_LT, KC_GT, XXXXXXX, XXXXXXX, + XXXXXXX, KC_TILD, XXXXXXX, KC_LBRC, KC_RBRC, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_DQUO, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, KC_LCBR, KC_RCBR, XXXXXXX, XXXXXXX, XXXXXXX, KC_COLN, KC_EXLM, KC_BSLS, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + ), + /* Raise + * ,-----------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | # | & | | | | | * | - | _ | = | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | ` | | | | | Bspk |Pg Dn |Pg Up | Tab | $ | End | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | ; | ? | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ + [_RAISE] = LAYOUT_preonic_grid( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, KC_HASH, KC_AMPR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_ASTR, KC_MINS, KC_UNDS, KC_EQL, XXXXXXX, + XXXXXXX, KC_GRV, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_BSPC, KC_PGDN, KC_PGUP, KC_TAB, KC_DLR, KC_END, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SCLN, KC_QUES, KC_PIPE, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + ), + /* Mouse + * ,---------------------------------------------------------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * |------+------+--------------+--------------+--------------+---------------+-----------+-----------+---------+------------+------+------| + * | | | | | | |Wheel Left |Wheel Down |Wheel Up |Wheel Right | |Ctrl | + * |------+------+--------------+--------------+--------------+---------------------------+-----------+---------+------------+------+------| + * | | | Button 3 | Button 2 | Button 1 | |Cursor Left|Cursor Down|Cursor Up|Cursor Right| | | + * |------+------+--------------+--------------+--------------+---------------|-----------+-----------+---------+------------+------+------| + * | | | | | | | | | | | | | + * |------+------+--------------+--------------+--------------+---------------+-----------+-----------+---------+------------+------+------| + * | | |Accelaration 2|Accelaration 1|Accelaration 0| Compositor+Alt| | | | | | | + * `---------------------------------------------------------------------------------------------------------------------------------------' + */ + [_MOUSE] = LAYOUT_preonic_grid( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_WH_LEFT, KC_MS_WH_DOWN, KC_MS_WH_UP, KC_MS_WH_RIGHT, XXXXXXX, _______, + XXXXXXX, XXXXXXX, KC_MS_BTN3, KC_MS_BTN2, KC_MS_BTN1, XXXXXXX, KC_MS_LEFT, KC_MS_DOWN, KC_MS_UP, KC_MS_RIGHT, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, KC_MS_ACCEL2, KC_MS_ACCEL1, KC_MS_ACCEL0, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + ), + /* Manage + * ,---------------------------------------------------------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+--------+--------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+--------+--------+------+------+-------------+------+------+------+------+------| + * | |Aud prev|Aud next|Aud on|AudOff| | |Qwerty| | | | | + * |------+--------+--------+------+------+------|------+------+------+------+------+------| + * | | |Mus next|Mus on|MusOff| | | | | | | | + * |------+--------+--------+------+------+------+------+------+------+------+------+------| + * |Reset | | | | | | | | | | | | + * `---------------------------------------------------------------------------------------' + */ + [_MANAGE] = LAYOUT_preonic_grid( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, AU_PREV, AU_NEXT, AU_ON, AU_OFF, XXXXXXX, XXXXXXX, QWERTY, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, MU_NEXT, MU_ON, MU_OFF, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + ), + /* Compositor + * ,-----------------------------------------------------------------------------------. + * | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | Q | W | E | R | T | Y | U | I | O | P | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | A | S | D | F | G | H | J | K | L | ' |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | Z | X | C | V | B | N | M | , | . | / | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | |Space | | | | | + * `-----------------------------------------------------------------------------------' + */ + [_COMPOSITOR] = LAYOUT_preonic_grid( + XXXXXXX, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, XXXXXXX, + XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, XXXXXXX, + XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT, + XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + ) +}; + +static inline bool base_layer_hold_key(uint16_t keycode, keyrecord_t *record) { + if (!record->tap.count && record->event.pressed) { + tap_code16(keycode); + return false; + } + return true; +} + +static inline bool toggle_layer(enum preonic_layers layer, keyrecord_t *record) { + if (record->event.pressed) { + layer_on(layer); + } else { + layer_off(layer); + } + 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 LOWER: + return toggle_layer(_LOWER, record); + case RAISE: + return toggle_layer(_RAISE, record); + case MANAGE: + return toggle_layer(_MANAGE, record); + case COMPOSITOR: + return toggle_layer(_COMPOSITOR, record); + case LT_CUT_X: + return base_layer_hold_key(C(KC_X), record); /* cut on hold */ + case LT_COPY_Y: + return base_layer_hold_key(C(KC_C), record); /* copy on hold */ + case LT_PASTE_P: + return base_layer_hold_key(C(KC_V), record); /* paste on hold */ + case LT_AE_A: + return base_layer_hold_key(RALT(KC_Q), record); /* 'ä' on hold */ + case LT_OE_O: + return base_layer_hold_key(RALT(KC_P), record); /* 'ö' on hold */ + case LT_UE_U: + return base_layer_hold_key(RALT(KC_Y), record); /* 'ü' on hold */ + case LT_SZ_S: + return base_layer_hold_key(RALT(KC_S), record); /* 'ß' on hold */ + } + + return true; +}; + +bool muse_mode = false; +uint8_t last_muse_note = 0; +uint16_t muse_counter = 0; +uint8_t muse_offset = 70; +uint16_t muse_tempo = 50; + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (muse_mode) { + if (IS_LAYER_ON(_RAISE)) { + if (clockwise) { + muse_offset++; + } else { + muse_offset--; + } + } else { + if (clockwise) { + muse_tempo += 1; + } else { + muse_tempo -= 1; + } + } + } else { + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } + return true; +} + +bool dip_switch_update_user(uint8_t index, bool active) { + switch (index) { + case 0: + if (active) { + layer_on(_MANAGE); + } else { + layer_off(_MANAGE); + } + break; + case 1: + if (active) { + muse_mode = true; + } else { + muse_mode = false; + } + } + return true; +} + +LEADER_EXTERNS(); + +static inline void register_ctrl_sequence(uint16_t keycode) { + tap_code16(RCTL(keycode)); +} + +static inline void leader_bindings(void) { + LEADER_DICTIONARY() { + leading = false; + leader_end(); + + SEQ_THREE_KEYS(KC_A, KC_C, KC_K) { + SEND_STRING("Acked-by: Christian Brauner "); + } + + SEQ_THREE_KEYS(KC_R, KC_V, KC_B) { + SEND_STRING("Reviewed-by: Christian Brauner "); + } + + SEQ_THREE_KEYS(KC_S, KC_O, KC_B) { + SEND_STRING("Signed-off-by: Christian Brauner "); + } + + /* Support vim-style copy. */ + SEQ_ONE_KEY(KC_Y) { + tap_code16(C(S(KC_C))); + } + + /* Support vim-style paste. */ + SEQ_ONE_KEY(KC_P) { + tap_code16(C(S(KC_V))); + } + } +} + +void matrix_scan_user(void) { + leader_bindings(); + +#ifdef AUDIO_ENABLE + if (muse_mode) { + if (muse_counter == 0) { + uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()]; + if (muse_note != last_muse_note) { + stop_note(compute_freq_for_midi_note(last_muse_note)); + play_note(compute_freq_for_midi_note(muse_note), 0xF); + last_muse_note = muse_note; + } + } + muse_counter = (muse_counter + 1) % muse_tempo; + } else { + if (muse_counter) { + stop_all_notes(); + muse_counter = 0; + } + } +#endif +} + +bool music_mask_user(uint16_t keycode) { + switch (keycode) { + case RAISE: + case LOWER: + return false; + default: + return true; + } +} diff --git a/keyboards/preonic/keymaps/brauner/readme.md b/keyboards/preonic/keymaps/brauner/readme.md new file mode 100644 index 000000000000..5614ab83049d --- /dev/null +++ b/keyboards/preonic/keymaps/brauner/readme.md @@ -0,0 +1,26 @@ +# Brauner's Preonic Keymap + +This is a keymap layout heavily optimized for vim. +It mostly follows `QWERTY` but moves various symbols on to different layers. + +* Number keys function only as number keys. + Additional symbols they would produce when `Shift` is held are turned off as they are intercepted. +* `Y`, `P`, and `X` function as `Ctrl+C`, `Ctrl+V`, and `Ctrl+X` when held. + This avoids having to hold down `Ctrl` and also aligns regular copy and paste with vim functionality. +* Various keys perform different functions when tapped than when held. +* `!` and `?` are on top of `.` on different layers. +* `\` and `|` are on top of `/` on different layers. +* `:` and `;` are on top of `,` on different layers. +* All navigation is done via `H`, `J`, `K`, and `L`. +* `O`, `U`, `S`, and `A` produce the Umlauts `Ö`, `Ü`, `ß`, and `Ä` when held. + This relies on the operating system keyboard layout to be set to US Intl. +* Different layers will activate different types of navigation. + For example, left, right, up, and down or backspace, page up, page down, and tab. +* There's a dedicated mouse layer which can be activated allowing to navigate solely with the keyboard where otherwise a mouse or trackpad would be needed. +* There's a dedicated management layer where the boot loader can be entered or music mode can be turned on or off. +* Lastly, there's a compositor layer which is optimized for managing a tiling window manager. + The layer is used specifically via layer-mod keys in the base layer. + In other words, specific modifiers are held when this layer is accessed. +* Opening and closing brackets are always located on adjacent keys on the same layer. + Pressing a matching opening and closing bracket key at the same time will insert both brackets and move the cursor into the middle of the bracket pair. + As should be obvious, this is useful when programming: `(|)`, `[|]`, `{|}`, `<|>`. diff --git a/keyboards/preonic/keymaps/brauner/rules.mk b/keyboards/preonic/keymaps/brauner/rules.mk new file mode 100644 index 000000000000..a8fd3491386a --- /dev/null +++ b/keyboards/preonic/keymaps/brauner/rules.mk @@ -0,0 +1,7 @@ +LEADER_ENABLE = yes +MOUSEKEY_ENABLE = yes +RGBLIGHT_ENABLE = no +BACKLIGHT_ENABLE = no +KEY_OVERRIDE_ENABLE = yes +COMBO_ENABLE = yes +SRC += muse.c From 0cff6367397f4da681458894a997961e528e5239 Mon Sep 17 00:00:00 2001 From: Tom Barnes Date: Thu, 12 Jan 2023 11:29:25 +0000 Subject: [PATCH 051/139] weact docs patch re "security vulnerability" (#19572) --- docs/platformdev_blackpill_f4x1.md | 2 +- keyboards/handwired/dactyl_manuform/6x6/readme.md | 2 +- keyboards/handwired/dygma/raise/readme.md | 2 +- keyboards/handwired/tractyl_manuform/5x6_right/f303/readme.md | 2 +- keyboards/handwired/tractyl_manuform/5x6_right/f411/readme.md | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/platformdev_blackpill_f4x1.md b/docs/platformdev_blackpill_f4x1.md index d5537a4535a1..f394515b8e79 100644 --- a/docs/platformdev_blackpill_f4x1.md +++ b/docs/platformdev_blackpill_f4x1.md @@ -4,7 +4,7 @@ This document applies to the F401- and F411-based Blackpills. The WeAct Blackpill is a popular choice for handwired boards, as it offers a powerful micro controller, USB Type C, a good number of pins to use, and a large amount of firmware space. All for a ~$6 USD price tag. -* [WeAct GitHub for F4x1 Blackpill](https://github.com/WeActTC/MiniSTM32F4x1) +* [WeAct GitHub for F4x1 Blackpill](https://github.com/WeActStudio/WeActStudio.MiniSTM32F4x1) * Unfortunately, due to supply issues official WeAct F411 based blackpills may not be available. ![Blackpill F411](https://i.imgur.com/nCgeolTh.png) diff --git a/keyboards/handwired/dactyl_manuform/6x6/readme.md b/keyboards/handwired/dactyl_manuform/6x6/readme.md index c7500448da96..ce72f0b83fd0 100644 --- a/keyboards/handwired/dactyl_manuform/6x6/readme.md +++ b/keyboards/handwired/dactyl_manuform/6x6/readme.md @@ -17,7 +17,7 @@ Basic guide how to build 6x6 board is in root keyboard dir. This will help you t If you want to use 5thumb cluster or stm32, you also should read base guide, but please came back here after you finish 😉. -For my build I used stm32f411 black pill. It's pretty cheap board and I highly recommend you to buy one from official distributors, to support board creators. [To buy it, please go into designer site](https://github.com/WeActTC/MiniSTM32F4x1). +For my build I used stm32f411 black pill. It's pretty cheap board and I highly recommend you to buy one from official distributors, to support board creators. [To buy it, please go into designer site](https://github.com/WeActStudio/WeActStudio.MiniSTM32F4x1). I recommend using stm32 boards for this project, because QMK recently added support for [tinyuf2 bootloader](https://github.com/adafruit/tinyuf2). This bootloader is great for cases where you are going to use QMK Configurator and don't want to use any command line interface. This way when you need change keyboard layout, you only need an UF2 file. Setting up board in boot mode will allow you to drag and drop it on to created STM32F flash drive. ![BlackPill Schematic](blackpill_f411/STM32F4x1_PinoutDiagram_RichardBalint.png "Schematic of stm32f4 blackpill") diff --git a/keyboards/handwired/dygma/raise/readme.md b/keyboards/handwired/dygma/raise/readme.md index 219ea5f3c9d7..9e7ea10cd61a 100644 --- a/keyboards/handwired/dygma/raise/readme.md +++ b/keyboards/handwired/dygma/raise/readme.md @@ -3,7 +3,7 @@ ![](https://cdn.shopify.com/s/files/1/0374/9448/9228/files/Dygma-Raise-Hero2.png) * Keyboard Maintainer: [ibash](https://github.com/ibash) -* Hardware Supported: [F411 Blackpill](https://github.com/WeActTC/MiniSTM32F4x1) with the [Dygma Raise](http://www.dygma.com) +* Hardware Supported: [F411 Blackpill](https://github.com/WeActStudio/WeActStudio.MiniSTM32F4x1) with the [Dygma Raise](http://www.dygma.com) * Hardware Availability: See below diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f303/readme.md b/keyboards/handwired/tractyl_manuform/5x6_right/f303/readme.md index 79a4a8ca0e47..1e28c3669106 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/f303/readme.md +++ b/keyboards/handwired/tractyl_manuform/5x6_right/f303/readme.md @@ -11,7 +11,7 @@ * SSD1306 OLED display (128x64) using PB6 and PB7 on I2C1 * Keyboard Maintainer: [Drashna Jael're](https://github.com/drashna) -* Hardware Supported: [Design files](https://gitlab.com/keyboards1/dm_r_track/-/tree/master/boolean), [WeAct BlackPill (F411)](https://github.com/WeActTC/MiniSTM32F4x1), [PMW3360 Optical Sensor](https://www.tindie.com/products/jkicklighter/pmw3360-motion-sensor/) +* Hardware Supported: [Design files](https://gitlab.com/keyboards1/dm_r_track/-/tree/master/boolean), [WeAct BlackPill (F411)](https://github.com/WeActStudio/WeActStudio.MiniSTM32F4x1), [PMW3360 Optical Sensor](https://www.tindie.com/products/jkicklighter/pmw3360-motion-sensor/) Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f411/readme.md b/keyboards/handwired/tractyl_manuform/5x6_right/f411/readme.md index 6b98bdc9b9fa..612486e17a9b 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/f411/readme.md +++ b/keyboards/handwired/tractyl_manuform/5x6_right/f411/readme.md @@ -19,7 +19,7 @@ ## Keyboard Info * Keyboard Maintainer: [Drashna Jael're](https://github.com/drashna) -* Hardware Supported: [Design files](https://gitlab.com/keyboards1/dm_r_track/-/tree/master/boolean), [WeAct BlackPill (F411)](https://github.com/WeActTC/MiniSTM32F4x1), [PMW3360 Optical Sensor](https://www.tindie.com/products/jkicklighter/pmw3360-motion-sensor/) +* Hardware Supported: [Design files](https://gitlab.com/keyboards1/dm_r_track/-/tree/master/boolean), [WeAct BlackPill (F411)](https://github.com/WeActStudio/WeActStudio.MiniSTM32F4x1), [PMW3360 Optical Sensor](https://www.tindie.com/products/jkicklighter/pmw3360-motion-sensor/) Make example for this keyboard (after setting up your build environment): From c1aef03e98a9998e176da5be56f198d440ca5051 Mon Sep 17 00:00:00 2001 From: Jonathan Moallem Date: Fri, 13 Jan 2023 16:38:50 +1000 Subject: [PATCH 052/139] Rectified ins/del layout macro ordering of Keychron Q1 ANSI (#19560) --- keyboards/keychron/q1/ansi/info.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/keychron/q1/ansi/info.json b/keyboards/keychron/q1/ansi/info.json index 3b17f9c53a4b..171344b4c0ce 100644 --- a/keyboards/keychron/q1/ansi/info.json +++ b/keyboards/keychron/q1/ansi/info.json @@ -24,8 +24,8 @@ {"matrix":[0,11], "x":10.75, "y":0}, {"matrix":[0,12], "x":11.75, "y":0}, {"matrix":[0,13], "x":12.75, "y":0}, - {"matrix":[0,14], "x":14, "y":0}, - {"matrix":[4,14], "x":15.25, "y":0}, + {"matrix":[4,14], "x":14, "y":0}, + {"matrix":[0,14], "x":15.25, "y":0}, {"matrix":[1, 0], "x":0, "y":1}, {"matrix":[1, 1], "x":1, "y":1}, From 9a4c7a48ba32ea1421a4f74d5c1f55576357f6ee Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu, 12 Jan 2023 22:48:50 -0800 Subject: [PATCH 053/139] Quarkeys Z60 Layout Addtions (#19568) * quarkeys/z60/hotswap: rename LAYOUT to LAYOUT_60_ansi_tsangan_split_rshift * quarkeys/z60/solder: add matrix diagram * quarkeys/z60/solder: rename LAYOUT to LAYOUT_all * quarkeys/z60/solder: add LAYOUT_60_ansi * quarkeys/z60/solder: add LAYOUT_60_ansi_split_bs_rshift * quarkeys/z60/solder: add LAYOUT_60_iso * quarkeys/z60/solder: add LAYOUT_60_iso_split_bs_rshift * quarkeys/z60/solder: add LAYOUT_60_ansi_tsangan * quarkeys/z60/solder: add LAYOUT_60_tsangan_hhkb * quarkeys/z60/solder: add LAYOUT_60_iso_tsangan * quarkeys/z60/solder: enable Community Layout support --- keyboards/quarkeys/z60/hotswap/hotswap.h | 2 +- keyboards/quarkeys/z60/hotswap/info.json | 5 +- .../z60/hotswap/keymaps/default/keymap.c | 8 +- .../quarkeys/z60/hotswap/keymaps/via/keymap.c | 8 +- keyboards/quarkeys/z60/solder/info.json | 497 +++++++++++++++++- .../z60/solder/keymaps/default/keymap.c | 8 +- .../quarkeys/z60/solder/keymaps/via/keymap.c | 8 +- keyboards/quarkeys/z60/solder/solder.h | 116 +++- 8 files changed, 631 insertions(+), 21 deletions(-) diff --git a/keyboards/quarkeys/z60/hotswap/hotswap.h b/keyboards/quarkeys/z60/hotswap/hotswap.h index 25510861cb69..cce18c20627b 100644 --- a/keyboards/quarkeys/z60/hotswap/hotswap.h +++ b/keyboards/quarkeys/z60/hotswap/hotswap.h @@ -16,7 +16,7 @@ #include "quantum.h" #define XXXX KC_NO -#define LAYOUT( \ +#define LAYOUT_60_ansi_tsangan_split_rshift( \ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K014, \ K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \ diff --git a/keyboards/quarkeys/z60/hotswap/info.json b/keyboards/quarkeys/z60/hotswap/info.json index bc8d02841400..3109622d3b0a 100644 --- a/keyboards/quarkeys/z60/hotswap/info.json +++ b/keyboards/quarkeys/z60/hotswap/info.json @@ -8,8 +8,11 @@ "pid": "0x3C02", "device_version": "0.0.1" }, + "layout_aliases": { + "LAYOUT": "LAYOUT_60_ansi_tsangan_split_rshift" + }, "layouts": { - "LAYOUT": { + "LAYOUT_60_ansi_tsangan_split_rshift": { "layout": [ {"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, diff --git a/keyboards/quarkeys/z60/hotswap/keymaps/default/keymap.c b/keyboards/quarkeys/z60/hotswap/keymaps/default/keymap.c index 7e546cead32f..e34a1775e949 100644 --- a/keyboards/quarkeys/z60/hotswap/keymaps/default/keymap.c +++ b/keyboards/quarkeys/z60/hotswap/keymaps/default/keymap.c @@ -16,28 +16,28 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [0] = LAYOUT_60_ansi_tsangan_split_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_TAB, KC_Q, KC_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, RSFT_T(KC_UP), MO(1), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, RALT_T(KC_LEFT), RGUI_T(KC_DOWN), RCTL_T(KC_RGHT)), - [1] = LAYOUT( + [1] = LAYOUT_60_ansi_tsangan_split_rshift( QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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( + [2] = LAYOUT_60_ansi_tsangan_split_rshift( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - [3] = LAYOUT( + [3] = LAYOUT_60_ansi_tsangan_split_rshift( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/quarkeys/z60/hotswap/keymaps/via/keymap.c b/keyboards/quarkeys/z60/hotswap/keymaps/via/keymap.c index 324a163e5adb..35593791a5a8 100644 --- a/keyboards/quarkeys/z60/hotswap/keymaps/via/keymap.c +++ b/keyboards/quarkeys/z60/hotswap/keymaps/via/keymap.c @@ -16,28 +16,28 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [0] = LAYOUT_60_ansi_tsangan_split_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_TAB, KC_Q, KC_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, RSFT_T(KC_UP), MO(1), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, RALT_T(KC_LEFT), RGUI_T(KC_DOWN), RCTL_T(KC_RGHT)), - [1] = LAYOUT( + [1] = LAYOUT_60_ansi_tsangan_split_rshift( QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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( + [2] = LAYOUT_60_ansi_tsangan_split_rshift( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - [3] = LAYOUT( + [3] = LAYOUT_60_ansi_tsangan_split_rshift( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/quarkeys/z60/solder/info.json b/keyboards/quarkeys/z60/solder/info.json index 0921044cf05e..f4ad797462c4 100644 --- a/keyboards/quarkeys/z60/solder/info.json +++ b/keyboards/quarkeys/z60/solder/info.json @@ -8,8 +8,12 @@ "pid": "0x3C01", "device_version": "0.0.1" }, + "layout_aliases": { + "LAYOUT": "LAYOUT_all" + }, + "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_tsangan_hhkb", "60_iso", "60_iso_tsangan", "60_iso_split_bs_rshift"], "layouts": { - "LAYOUT": { + "LAYOUT_all": { "layout": [ {"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, @@ -81,6 +85,495 @@ {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25} ] + }, + "LAYOUT_60_ansi": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"!", "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":"Back", "x":13, "y":0, "w":2}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"{", "x":11.5, "y":1}, + {"label":"}", "x":12.5, "y":1}, + {"label":"|", "x":13.5, "y":1, "w":1.5}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":":", "x":10.75, "y":2}, + {"label":"\"", "x":11.75, "y":2}, + {"label":"Enter", "x":12.75, "y":2, "w":2.25}, + + {"label":"Shift", "x":0, "y":3, "w":2.25}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":"<", "x":9.25, "y":3}, + {"label":">", "x":10.25, "y":3}, + {"label":"?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":2.75}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"label":"Win", "x":1.25, "y":4, "w":1.25}, + {"label":"Alt", "x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"label":"Alt", "x":10, "y":4, "w":1.25}, + {"label":"Win", "x":11.25, "y":4, "w":1.25}, + {"label":"Menu", "x":12.5, "y":4, "w":1.25}, + {"label":"Ctrl", "x":13.75, "y":4, "w":1.25} + ] + }, + "LAYOUT_60_ansi_split_bs_rshift": { + "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":"Back", "x":13, "y":0}, + {"label":"Del", "x":14, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"{", "x":11.5, "y":1}, + {"label":"}", "x":12.5, "y":1}, + {"label":"|", "x":13.5, "y":1, "w":1.5}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":":", "x":10.75, "y":2}, + {"label":"\"", "x":11.75, "y":2}, + {"label":"Enter", "x":12.75, "y":2, "w":2.25}, + + {"label":"Shift", "x":0, "y":3, "w":2.25}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":"<", "x":9.25, "y":3}, + {"label":">", "x":10.25, "y":3}, + {"label":"?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"Fn", "x":14, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"label":"Win", "x":1.25, "y":4, "w":1.25}, + {"label":"Alt", "x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"label":"Alt", "x":10, "y":4, "w":1.25}, + {"label":"Win", "x":11.25, "y":4, "w":1.25}, + {"label":"Menu", "x":12.5, "y":4, "w":1.25}, + {"label":"Ctrl", "x":13.75, "y":4, "w":1.25} + ] + }, + "LAYOUT_60_ansi_tsangan": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"!", "x":1, "y":0}, + {"label":"@", "x":2, "y":0}, + {"label":"#", "x":3, "y":0}, + {"label":"$", "x":4, "y":0}, + {"label":"%", "x":5, "y":0}, + {"label":"^", "x":6, "y":0}, + {"label":"&", "x":7, "y":0}, + {"label":"*", "x":8, "y":0}, + {"label":"(", "x":9, "y":0}, + {"label":")", "x":10, "y":0}, + {"label":"_", "x":11, "y":0}, + {"label":"+", "x":12, "y":0}, + {"label":"Back", "x":13, "y":0, "w":2}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"{", "x":11.5, "y":1}, + {"label":"}", "x":12.5, "y":1}, + {"label":"|", "x":13.5, "y":1, "w":1.5}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":":", "x":10.75, "y":2}, + {"label":"\"", "x":11.75, "y":2}, + {"label":"Enter", "x":12.75, "y":2, "w":2.25}, + + {"label":"Shift", "x":0, "y":3, "w":2.25}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":"<", "x":9.25, "y":3}, + {"label":">", "x":10.25, "y":3}, + {"label":"?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":2.75}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.5}, + {"label":"Win", "x":1.5, "y":4}, + {"label":"Alt", "x":2.5, "y":4, "w":1.5}, + {"x":4, "y":4, "w":7}, + {"label":"Alt", "x":11, "y":4, "w":1.5}, + {"label":"Menu", "x":12.5, "y":4}, + {"label":"Ctrl", "x":13.5, "y":4, "w":1.5} + ] + }, + "LAYOUT_60_tsangan_hhkb": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"!", "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":"Back", "x":13, "y":0}, + {"label":"Del", "x":14, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"{", "x":11.5, "y":1}, + {"label":"}", "x":12.5, "y":1}, + {"label":"|", "x":13.5, "y":1, "w":1.5}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":":", "x":10.75, "y":2}, + {"label":"\"", "x":11.75, "y":2}, + {"label":"Enter", "x":12.75, "y":2, "w":2.25}, + + {"label":"Shift", "x":0, "y":3, "w":2.25}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":"<", "x":9.25, "y":3}, + {"label":">", "x":10.25, "y":3}, + {"label":"?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"Fn", "x":14, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.5}, + {"label":"Win", "x":1.5, "y":4}, + {"label":"Alt", "x":2.5, "y":4, "w":1.5}, + {"x":4, "y":4, "w":7}, + {"label":"Alt", "x":11, "y":4, "w":1.5}, + {"label":"Menu", "x":12.5, "y":4}, + {"label":"Ctrl", "x":13.5, "y":4, "w":1.5} + ] + }, + "LAYOUT_60_iso": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"!", "x":1, "y":0}, + {"label":"@", "x":2, "y":0}, + {"label":"#", "x":3, "y":0}, + {"label":"$", "x":4, "y":0}, + {"label":"%", "x":5, "y":0}, + {"label":"^", "x":6, "y":0}, + {"label":"&", "x":7, "y":0}, + {"label":"*", "x":8, "y":0}, + {"label":"(", "x":9, "y":0}, + {"label":")", "x":10, "y":0}, + {"label":"_", "x":11, "y":0}, + {"label":"+", "x":12, "y":0}, + {"label":"Back", "x":13, "y":0, "w":2}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"{", "x":11.5, "y":1}, + {"label":"}", "x":12.5, "y":1}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":":", "x":10.75, "y":2}, + {"label":"\"", "x":11.75, "y":2}, + {"label":"~", "x":12.75, "y":2}, + {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, + + {"label":"Shift", "x":0, "y":3, "w":1.25}, + {"label":"|", "x":1.25, "y":3}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":"<", "x":9.25, "y":3}, + {"label":">", "x":10.25, "y":3}, + {"label":"?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":2.75}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"label":"Win", "x":1.25, "y":4, "w":1.25}, + {"label":"Alt", "x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"label":"Alt", "x":10, "y":4, "w":1.25}, + {"label":"Win", "x":11.25, "y":4, "w":1.25}, + {"label":"Menu", "x":12.5, "y":4, "w":1.25}, + {"label":"Ctrl", "x":13.75, "y":4, "w":1.25} + ] + }, + "LAYOUT_60_iso_tsangan": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"!", "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":"Back", "x":13, "y":0, "w":2}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"{", "x":11.5, "y":1}, + {"label":"}", "x":12.5, "y":1}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":":", "x":10.75, "y":2}, + {"label":"\"", "x":11.75, "y":2}, + {"label":"~", "x":12.75, "y":2}, + {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, + + {"label":"Shift", "x":0, "y":3, "w":1.25}, + {"label":"|", "x":1.25, "y":3}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":"<", "x":9.25, "y":3}, + {"label":">", "x":10.25, "y":3}, + {"label":"?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":2.75}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.5}, + {"label":"Win", "x":1.5, "y":4}, + {"label":"Alt", "x":2.5, "y":4, "w":1.5}, + {"x":4, "y":4, "w":7}, + {"label":"Alt", "x":11, "y":4, "w":1.5}, + {"label":"Menu", "x":12.5, "y":4}, + {"label":"Ctrl", "x":13.5, "y":4, "w":1.5} + ] + }, + "LAYOUT_60_iso_split_bs_rshift": { + "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":"Back", "x":13, "y":0}, + {"label":"Del", "x":14, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"{", "x":11.5, "y":1}, + {"label":"}", "x":12.5, "y":1}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":":", "x":10.75, "y":2}, + {"label":"\"", "x":11.75, "y":2}, + {"label":"~", "x":12.75, "y":2}, + {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, + + {"label":"Shift", "x":0, "y":3, "w":1.25}, + {"label":"|", "x":1.25, "y":3}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":"<", "x":9.25, "y":3}, + {"label":">", "x":10.25, "y":3}, + {"label":"?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"Fn", "x":14, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"label":"Win", "x":1.25, "y":4, "w":1.25}, + {"label":"Alt", "x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"label":"Alt", "x":10, "y":4, "w":1.25}, + {"label":"Win", "x":11.25, "y":4, "w":1.25}, + {"label":"Menu", "x":12.5, "y":4, "w":1.25}, + {"label":"Ctrl", "x":13.75, "y":4, "w":1.25} + ] } } -} \ No newline at end of file +} diff --git a/keyboards/quarkeys/z60/solder/keymaps/default/keymap.c b/keyboards/quarkeys/z60/solder/keymaps/default/keymap.c index 6bf614d30e72..7aede3ef8834 100644 --- a/keyboards/quarkeys/z60/solder/keymaps/default/keymap.c +++ b/keyboards/quarkeys/z60/solder/keymaps/default/keymap.c @@ -28,28 +28,28 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Ctrl | Win | ALT | SPACE | ALT | Win | Manu | Ctrl | * `--------+--------+--------+--------------------------------------------+-------+-------+-------+--------' */ - [0] = LAYOUT( + [0] = LAYOUT_all( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_HASH, KC_ENT, KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_UP), MO(1), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(2), RALT_T(KC_LEFT), RGUI_T(KC_DOWN), RCTL_T(KC_RGHT)), - [1] = LAYOUT( + [1] = LAYOUT_all( QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - [2] = LAYOUT( + [2] = LAYOUT_all( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - [3] = LAYOUT( + [3] = LAYOUT_all( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/quarkeys/z60/solder/keymaps/via/keymap.c b/keyboards/quarkeys/z60/solder/keymaps/via/keymap.c index 6bf614d30e72..7aede3ef8834 100644 --- a/keyboards/quarkeys/z60/solder/keymaps/via/keymap.c +++ b/keyboards/quarkeys/z60/solder/keymaps/via/keymap.c @@ -28,28 +28,28 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Ctrl | Win | ALT | SPACE | ALT | Win | Manu | Ctrl | * `--------+--------+--------+--------------------------------------------+-------+-------+-------+--------' */ - [0] = LAYOUT( + [0] = LAYOUT_all( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_HASH, KC_ENT, KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_UP), MO(1), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(2), RALT_T(KC_LEFT), RGUI_T(KC_DOWN), RCTL_T(KC_RGHT)), - [1] = LAYOUT( + [1] = LAYOUT_all( QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - [2] = LAYOUT( + [2] = LAYOUT_all( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - [3] = LAYOUT( + [3] = LAYOUT_all( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/quarkeys/z60/solder/solder.h b/keyboards/quarkeys/z60/solder/solder.h index 828dc29b7805..3180bab82232 100644 --- a/keyboards/quarkeys/z60/solder/solder.h +++ b/keyboards/quarkeys/z60/solder/solder.h @@ -17,7 +17,24 @@ #include "quantum.h" #define XXXX KC_NO -#define LAYOUT( \ +/* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───────┐ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │ │0D │ 2u Backspace + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ └─┬─────┤ + * │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1E │ │ │ + * 2.25u ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ┌──┴┐2E │ ISO Enter + * LShift │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2E │ │2D │ │ + * ┌────────┐ ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌─┴───┴────┤ + * │30 │ │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │ │3C │ 2.75u RShift + * └────────┘ ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤ └──────────┘ + * │40 │41 │43 │46 │4A │4B │4C │4D │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + * ┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ + * │40 │41 │43 │46 │4B │4C │4D │ Tsangan/WKL/HHKB + * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ + */ + +#define LAYOUT_all( \ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, \ @@ -31,3 +48,100 @@ { K400, K401, XXXX, K403, XXXX, XXXX, K406, XXXX, XXXX, XXXX, K410, K411, K412, K413, XXXX } \ } +#define LAYOUT_60_ansi( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, \ + K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ + K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, \ + K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, \ + K400, K401, K403, K406, K410, K411, K412, K413 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, XXXX }, \ + { XXXX, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ + { XXXX, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, XXXX, K214 }, \ + { K300, XXXX, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, XXXX, XXXX }, \ + { K400, K401, XXXX, K403, XXXX, XXXX, K406, XXXX, XXXX, XXXX, K410, K411, K412, K413, XXXX } \ +} + +#define LAYOUT_60_ansi_split_bs_rshift( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ + K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ + K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, \ + K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, \ + K400, K401, K403, K406, K410, K411, K412, K413 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ + { XXXX, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ + { XXXX, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, XXXX, K214 }, \ + { K300, XXXX, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, XXXX }, \ + { K400, K401, XXXX, K403, XXXX, XXXX, K406, XXXX, XXXX, XXXX, K410, K411, K412, K413, XXXX } \ +} + +#define LAYOUT_60_ansi_tsangan( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, \ + K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ + K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, \ + K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, \ + K400, K401, K403, K406, K411, K412, K413 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, XXXX }, \ + { XXXX, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ + { XXXX, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, XXXX, K214 }, \ + { K300, XXXX, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, XXXX, XXXX }, \ + { K400, K401, XXXX, K403, XXXX, XXXX, K406, XXXX, XXXX, XXXX, XXXX, K411, K412, K413, XXXX } \ +} + +#define LAYOUT_60_tsangan_hhkb( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ + K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ + K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, \ + K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, \ + K400, K401, K403, K406, K411, K412, K413 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ + { XXXX, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ + { XXXX, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, XXXX, K214 }, \ + { K300, XXXX, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, XXXX }, \ + { K400, K401, XXXX, K403, XXXX, XXXX, K406, XXXX, XXXX, XXXX, XXXX, K411, K412, K413, XXXX } \ +} + +#define LAYOUT_60_iso( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, \ + K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, \ + K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, \ + K400, K401, K403, K406, K410, K411, K412, K413 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, XXXX }, \ + { XXXX, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, XXXX }, \ + { XXXX, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, XXXX, XXXX }, \ + { K400, K401, XXXX, K403, XXXX, XXXX, K406, XXXX, XXXX, XXXX, K410, K411, K412, K413, XXXX } \ +} + +#define LAYOUT_60_iso_split_bs_rshift( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ + K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, \ + K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, \ + K400, K401, K403, K406, K410, K411, K412, K413 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ + { XXXX, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, XXXX }, \ + { XXXX, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, XXXX }, \ + { K400, K401, XXXX, K403, XXXX, XXXX, K406, XXXX, XXXX, XXXX, K410, K411, K412, K413, XXXX } \ +} + +#define LAYOUT_60_iso_tsangan( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, \ + K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, \ + K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, \ + K400, K401, K403, K406, K411, K412, K413 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, XXXX }, \ + { XXXX, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, XXXX }, \ + { XXXX, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, XXXX, XXXX }, \ + { K400, K401, XXXX, K403, XXXX, XXXX, K406, XXXX, XXXX, XXXX, XXXX, K411, K412, K413, XXXX } \ +} From aba04411179cdec97982d85652f8ef6cc2ab7cf9 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri, 13 Jan 2023 02:55:37 -0800 Subject: [PATCH 054/139] Teleport Native Layout Implementation Rework (#19576) --- keyboards/teleport/native/ansi/info.json | 97 ++++++++- keyboards/teleport/native/info.json | 189 ------------------ keyboards/teleport/native/iso/info.json | 97 +++++++++ .../native/iso/keymaps/default/keymap.c | 14 +- .../native/iso/keymaps/perfmode/keymap.c | 20 +- .../teleport/native/iso/keymaps/via/keymap.c | 14 +- 6 files changed, 217 insertions(+), 214 deletions(-) diff --git a/keyboards/teleport/native/ansi/info.json b/keyboards/teleport/native/ansi/info.json index 2894d2688cd7..b8175123390b 100644 --- a/keyboards/teleport/native/ansi/info.json +++ b/keyboards/teleport/native/ansi/info.json @@ -1,6 +1,101 @@ { "usb": { "pid": "0x0003" + }, + "community_layouts": ["75_ansi"], + "layouts": { + "LAYOUT_75_ansi": { + "layout": [ + {"matrix":[0,0], "x":0, "y":0}, + {"matrix":[1,0], "x":1, "y":0}, + {"matrix":[0,1], "x":2, "y":0}, + {"matrix":[1,1], "x":3, "y":0}, + {"matrix":[0,2], "x":4, "y":0}, + {"matrix":[1,2], "x":5, "y":0}, + {"matrix":[0,3], "x":6, "y":0}, + {"matrix":[1,3], "x":7, "y":0}, + {"matrix":[0,4], "x":8, "y":0}, + {"matrix":[1,4], "x":9, "y":0}, + {"matrix":[0,5], "x":10, "y":0}, + {"matrix":[1,5], "x":11, "y":0}, + {"matrix":[0,6], "x":12, "y":0}, + {"matrix":[1,6], "x":13, "y":0}, + {"matrix":[0,7], "x":14, "y":0}, + {"matrix":[1,7], "x":15, "y":0}, + + {"matrix":[2,0], "x":0, "y":1}, + {"matrix":[3,0], "x":1, "y":1}, + {"matrix":[2,1], "x":2, "y":1}, + {"matrix":[3,1], "x":3, "y":1}, + {"matrix":[2,2], "x":4, "y":1}, + {"matrix":[3,2], "x":5, "y":1}, + {"matrix":[2,3], "x":6, "y":1}, + {"matrix":[3,3], "x":7, "y":1}, + {"matrix":[2,4], "x":8, "y":1}, + {"matrix":[3,4], "x":9, "y":1}, + {"matrix":[2,5], "x":10, "y":1}, + {"matrix":[3,5], "x":11, "y":1}, + {"matrix":[2,6], "x":12, "y":1}, + {"matrix":[3,6], "x":13, "y":1, "w":2}, + {"matrix":[3,7], "x":15, "y":1}, + + {"matrix":[4,0], "x":0, "y":2, "w":1.5}, + {"matrix":[4,1], "x":1.5, "y":2}, + {"matrix":[5,1], "x":2.5, "y":2}, + {"matrix":[4,2], "x":3.5, "y":2}, + {"matrix":[5,2], "x":4.5, "y":2}, + {"matrix":[4,3], "x":5.5, "y":2}, + {"matrix":[5,3], "x":6.5, "y":2}, + {"matrix":[4,4], "x":7.5, "y":2}, + {"matrix":[5,4], "x":8.5, "y":2}, + {"matrix":[4,5], "x":9.5, "y":2}, + {"matrix":[5,5], "x":10.5, "y":2}, + {"matrix":[4,6], "x":11.5, "y":2}, + {"matrix":[5,6], "x":12.5, "y":2}, + {"matrix":[4,7], "x":13.5, "y":2, "w":1.5}, + {"matrix":[5,7], "x":15, "y":2}, + + {"matrix":[6,0], "x":0, "y":3, "w":1.75}, + {"matrix":[7,0], "x":1.75, "y":3}, + {"matrix":[6,1], "x":2.75, "y":3}, + {"matrix":[7,1], "x":3.75, "y":3}, + {"matrix":[6,2], "x":4.75, "y":3}, + {"matrix":[7,2], "x":5.75, "y":3}, + {"matrix":[6,3], "x":6.75, "y":3}, + {"matrix":[7,3], "x":7.75, "y":3}, + {"matrix":[6,4], "x":8.75, "y":3}, + {"matrix":[7,4], "x":9.75, "y":3}, + {"matrix":[6,5], "x":10.75, "y":3}, + {"matrix":[7,5], "x":11.75, "y":3}, + {"matrix":[6,7], "x":12.75, "y":3, "w":2.25}, + {"matrix":[7,7], "x":15, "y":3}, + + {"matrix":[8,0], "x":0, "y":4, "w":1.25}, + {"matrix":[8,1], "x":2.25, "y":4}, + {"matrix":[9,1], "x":3.25, "y":4}, + {"matrix":[8,2], "x":4.25, "y":4}, + {"matrix":[9,2], "x":5.25, "y":4}, + {"matrix":[8,3], "x":6.25, "y":4}, + {"matrix":[9,3], "x":7.25, "y":4}, + {"matrix":[8,4], "x":8.25, "y":4}, + {"matrix":[9,4], "x":9.25, "y":4}, + {"matrix":[8,5], "x":10.25, "y":4}, + {"matrix":[9,5], "x":11.25, "y":4}, + {"matrix":[9,6], "x":12.25, "y":4, "w":1.75}, + {"matrix":[8,7], "x":14, "y":4}, + {"matrix":[9,7], "x":15, "y":4}, + + {"matrix":[10,0], "x":0, "y":5, "w":1.25}, + {"matrix":[11,0], "x":1.25, "y":5, "w":1.25}, + {"matrix":[11,1], "x":2.5, "y":5, "w":1.25}, + {"matrix":[10,1], "x":3.75, "y":5, "w":6.25}, + {"matrix":[10,5], "x":10, "y":5}, + {"matrix":[11,5], "x":11, "y":5}, + {"matrix":[10,6], "x":12, "y":5}, + {"matrix":[11,6], "x":13, "y":5}, + {"matrix":[10,7], "x":14, "y":5}, + {"matrix":[11,7], "x":15, "y":5} + ] + } } } - diff --git a/keyboards/teleport/native/info.json b/keyboards/teleport/native/info.json index d1fe1b90b4e7..cc21b22e02f0 100644 --- a/keyboards/teleport/native/info.json +++ b/keyboards/teleport/native/info.json @@ -23,195 +23,6 @@ "matrix_pins": { "cols": [ "A5", "A4", "B12", "B14", "B8", "B3", "B4", "B5" ], "rows": [ "C14", "C15", "C13", "A1", "A15", "A14", "A13", "B13", "B15", "A8", "A2", "A3" ] - }, - "layouts": { - "LAYOUT_75_iso": { - "layout": [ - {"matrix":[0,0], "x":0, "y":0}, - {"matrix":[1,0], "x":1, "y":0}, - {"matrix":[0,1], "x":2, "y":0}, - {"matrix":[1,1], "x":3, "y":0}, - {"matrix":[0,2], "x":4, "y":0}, - {"matrix":[1,2], "x":5, "y":0}, - {"matrix":[0,3], "x":6, "y":0}, - {"matrix":[1,3], "x":7, "y":0}, - {"matrix":[0,4], "x":8, "y":0}, - {"matrix":[1,4], "x":9, "y":0}, - {"matrix":[0,5], "x":10, "y":0}, - {"matrix":[1,5], "x":11, "y":0}, - {"matrix":[0,6], "x":12, "y":0}, - {"matrix":[1,6], "x":13, "y":0}, - {"matrix":[0,7], "x":14, "y":0}, - {"matrix":[1,7], "x":15, "y":0}, - - {"matrix":[2,0], "x":0, "y":1}, - {"matrix":[3,0], "x":1, "y":1}, - {"matrix":[2,1], "x":2, "y":1}, - {"matrix":[3,1], "x":3, "y":1}, - {"matrix":[2,2], "x":4, "y":1}, - {"matrix":[3,2], "x":5, "y":1}, - {"matrix":[2,3], "x":6, "y":1}, - {"matrix":[3,3], "x":7, "y":1}, - {"matrix":[2,4], "x":8, "y":1}, - {"matrix":[3,4], "x":9, "y":1}, - {"matrix":[2,5], "x":10, "y":1}, - {"matrix":[3,5], "x":11, "y":1}, - {"matrix":[2,6], "x":12, "y":1}, - {"matrix":[3,6], "x":13, "y":1, "w":2}, - {"matrix":[3,7], "x":15, "y":1}, - - {"matrix":[4,0], "x":0, "y":2, "w":1.5}, - {"matrix":[4,1], "x":1.5, "y":2}, - {"matrix":[5,1], "x":2.5, "y":2}, - {"matrix":[4,2], "x":3.5, "y":2}, - {"matrix":[5,2], "x":4.5, "y":2}, - {"matrix":[4,3], "x":5.5, "y":2}, - {"matrix":[5,3], "x":6.5, "y":2}, - {"matrix":[4,4], "x":7.5, "y":2}, - {"matrix":[5,4], "x":8.5, "y":2}, - {"matrix":[4,5], "x":9.5, "y":2}, - {"matrix":[5,5], "x":10.5, "y":2}, - {"matrix":[4,6], "x":11.5, "y":2}, - {"matrix":[5,6], "x":12.5, "y":2}, - {"matrix":[4,7], "x":13.75, "y":2, "w":1.25, "h":2}, - {"matrix":[5,7], "x":15, "y":2}, - - {"matrix":[6,0], "x":0, "y":3, "w":1.75}, - {"matrix":[7,0], "x":1.75, "y":3}, - {"matrix":[6,1], "x":2.75, "y":3}, - {"matrix":[7,1], "x":3.75, "y":3}, - {"matrix":[6,2], "x":4.75, "y":3}, - {"matrix":[7,2], "x":5.75, "y":3}, - {"matrix":[6,3], "x":6.75, "y":3}, - {"matrix":[7,3], "x":7.75, "y":3}, - {"matrix":[6,4], "x":8.75, "y":3}, - {"matrix":[7,4], "x":9.75, "y":3}, - {"matrix":[6,5], "x":10.75, "y":3}, - {"matrix":[7,5], "x":11.75, "y":3}, - {"matrix":[6,7], "x":12.75, "y":3}, - {"matrix":[7,7], "x":15, "y":3}, - - {"matrix":[8,0], "x":0, "y":4, "w":1.25}, - {"matrix":[9,0], "x":1.25, "y":4}, - {"matrix":[8,1], "x":2.25, "y":4}, - {"matrix":[9,1], "x":3.25, "y":4}, - {"matrix":[8,2], "x":4.25, "y":4}, - {"matrix":[9,2], "x":5.25, "y":4}, - {"matrix":[8,3], "x":6.25, "y":4}, - {"matrix":[9,3], "x":7.25, "y":4}, - {"matrix":[8,4], "x":8.25, "y":4}, - {"matrix":[9,4], "x":9.25, "y":4}, - {"matrix":[8,5], "x":10.25, "y":4}, - {"matrix":[9,5], "x":11.25, "y":4}, - {"matrix":[9,6], "x":12.25, "y":4, "w":1.75}, - {"matrix":[8,7], "x":14, "y":4}, - {"matrix":[9,7], "x":15, "y":4}, - - {"matrix":[10,0], "x":0, "y":5, "w":1.25}, - {"matrix":[11,0], "x":1.25, "y":5, "w":1.25}, - {"matrix":[11,1], "x":2.5, "y":5, "w":1.25}, - {"matrix":[10,1], "x":3.75, "y":5, "w":6.25}, - {"matrix":[10,5], "x":10, "y":5}, - {"matrix":[11,5], "x":11, "y":5}, - {"matrix":[10,6], "x":12, "y":5}, - {"matrix":[11,6], "x":13, "y":5}, - {"matrix":[10,7], "x":14, "y":5}, - {"matrix":[11,7], "x":15, "y":5} - ] - }, - "LAYOUT_75_ansi": { - "layout": [ - {"matrix":[0,0], "x":0, "y":0}, - {"matrix":[1,0], "x":1, "y":0}, - {"matrix":[0,1], "x":2, "y":0}, - {"matrix":[1,1], "x":3, "y":0}, - {"matrix":[0,2], "x":4, "y":0}, - {"matrix":[1,2], "x":5, "y":0}, - {"matrix":[0,3], "x":6, "y":0}, - {"matrix":[1,3], "x":7, "y":0}, - {"matrix":[0,4], "x":8, "y":0}, - {"matrix":[1,4], "x":9, "y":0}, - {"matrix":[0,5], "x":10, "y":0}, - {"matrix":[1,5], "x":11, "y":0}, - {"matrix":[0,6], "x":12, "y":0}, - {"matrix":[1,6], "x":13, "y":0}, - {"matrix":[0,7], "x":14, "y":0}, - {"matrix":[1,7], "x":15, "y":0}, - - {"matrix":[2,0], "x":0, "y":1}, - {"matrix":[3,0], "x":1, "y":1}, - {"matrix":[2,1], "x":2, "y":1}, - {"matrix":[3,1], "x":3, "y":1}, - {"matrix":[2,2], "x":4, "y":1}, - {"matrix":[3,2], "x":5, "y":1}, - {"matrix":[2,3], "x":6, "y":1}, - {"matrix":[3,3], "x":7, "y":1}, - {"matrix":[2,4], "x":8, "y":1}, - {"matrix":[3,4], "x":9, "y":1}, - {"matrix":[2,5], "x":10, "y":1}, - {"matrix":[3,5], "x":11, "y":1}, - {"matrix":[2,6], "x":12, "y":1}, - {"matrix":[3,6], "x":13, "y":1, "w":2}, - {"matrix":[3,7], "x":15, "y":1}, - - {"matrix":[4,0], "x":0, "y":2, "w":1.5}, - {"matrix":[4,1], "x":1.5, "y":2}, - {"matrix":[5,1], "x":2.5, "y":2}, - {"matrix":[4,2], "x":3.5, "y":2}, - {"matrix":[5,2], "x":4.5, "y":2}, - {"matrix":[4,3], "x":5.5, "y":2}, - {"matrix":[5,3], "x":6.5, "y":2}, - {"matrix":[4,4], "x":7.5, "y":2}, - {"matrix":[5,4], "x":8.5, "y":2}, - {"matrix":[4,5], "x":9.5, "y":2}, - {"matrix":[5,5], "x":10.5, "y":2}, - {"matrix":[4,6], "x":11.5, "y":2}, - {"matrix":[5,6], "x":12.5, "y":2}, - {"matrix":[4,7], "x":13.5, "y":2, "w":1.5}, - {"matrix":[5,7], "x":15, "y":2}, - - {"matrix":[6,0], "x":0, "y":3, "w":1.75}, - {"matrix":[7,0], "x":1.75, "y":3}, - {"matrix":[6,1], "x":2.75, "y":3}, - {"matrix":[7,1], "x":3.75, "y":3}, - {"matrix":[6,2], "x":4.75, "y":3}, - {"matrix":[7,2], "x":5.75, "y":3}, - {"matrix":[6,3], "x":6.75, "y":3}, - {"matrix":[7,3], "x":7.75, "y":3}, - {"matrix":[6,4], "x":8.75, "y":3}, - {"matrix":[7,4], "x":9.75, "y":3}, - {"matrix":[6,5], "x":10.75, "y":3}, - {"matrix":[7,5], "x":11.75, "y":3}, - {"matrix":[6,7], "x":12.75, "y":3, "w":2.25}, - {"matrix":[7,7], "x":15, "y":3}, - - {"matrix":[8,0], "x":0, "y":4, "w":1.25}, - {"matrix":[8,1], "x":2.25, "y":4}, - {"matrix":[9,1], "x":3.25, "y":4}, - {"matrix":[8,2], "x":4.25, "y":4}, - {"matrix":[9,2], "x":5.25, "y":4}, - {"matrix":[8,3], "x":6.25, "y":4}, - {"matrix":[9,3], "x":7.25, "y":4}, - {"matrix":[8,4], "x":8.25, "y":4}, - {"matrix":[9,4], "x":9.25, "y":4}, - {"matrix":[8,5], "x":10.25, "y":4}, - {"matrix":[9,5], "x":11.25, "y":4}, - {"matrix":[9,6], "x":12.25, "y":4, "w":1.75}, - {"matrix":[8,7], "x":14, "y":4}, - {"matrix":[9,7], "x":15, "y":4}, - - {"matrix":[10,0], "x":0, "y":5, "w":1.25}, - {"matrix":[11,0], "x":1.25, "y":5, "w":1.25}, - {"matrix":[11,1], "x":2.5, "y":5, "w":1.25}, - {"matrix":[10,1], "x":3.75, "y":5, "w":6.25}, - {"matrix":[10,5], "x":10, "y":5}, - {"matrix":[11,5], "x":11, "y":5}, - {"matrix":[10,6], "x":12, "y":5}, - {"matrix":[11,6], "x":13, "y":5}, - {"matrix":[10,7], "x":14, "y":5}, - {"matrix":[11,7], "x":15, "y":5} - ] - } } } diff --git a/keyboards/teleport/native/iso/info.json b/keyboards/teleport/native/iso/info.json index f475ac773e29..30b8a1027fea 100644 --- a/keyboards/teleport/native/iso/info.json +++ b/keyboards/teleport/native/iso/info.json @@ -1,6 +1,103 @@ { "usb": { "pid": "0x0002" + }, + "community_layouts": ["75_iso"], + "layouts": { + "LAYOUT_75_iso": { + "layout": [ + {"matrix":[0,0], "x":0, "y":0}, + {"matrix":[1,0], "x":1, "y":0}, + {"matrix":[0,1], "x":2, "y":0}, + {"matrix":[1,1], "x":3, "y":0}, + {"matrix":[0,2], "x":4, "y":0}, + {"matrix":[1,2], "x":5, "y":0}, + {"matrix":[0,3], "x":6, "y":0}, + {"matrix":[1,3], "x":7, "y":0}, + {"matrix":[0,4], "x":8, "y":0}, + {"matrix":[1,4], "x":9, "y":0}, + {"matrix":[0,5], "x":10, "y":0}, + {"matrix":[1,5], "x":11, "y":0}, + {"matrix":[0,6], "x":12, "y":0}, + {"matrix":[1,6], "x":13, "y":0}, + {"matrix":[0,7], "x":14, "y":0}, + {"matrix":[1,7], "x":15, "y":0}, + + {"matrix":[2,0], "x":0, "y":1}, + {"matrix":[3,0], "x":1, "y":1}, + {"matrix":[2,1], "x":2, "y":1}, + {"matrix":[3,1], "x":3, "y":1}, + {"matrix":[2,2], "x":4, "y":1}, + {"matrix":[3,2], "x":5, "y":1}, + {"matrix":[2,3], "x":6, "y":1}, + {"matrix":[3,3], "x":7, "y":1}, + {"matrix":[2,4], "x":8, "y":1}, + {"matrix":[3,4], "x":9, "y":1}, + {"matrix":[2,5], "x":10, "y":1}, + {"matrix":[3,5], "x":11, "y":1}, + {"matrix":[2,6], "x":12, "y":1}, + {"matrix":[3,6], "x":13, "y":1, "w":2}, + {"matrix":[3,7], "x":15, "y":1}, + + {"matrix":[4,0], "x":0, "y":2, "w":1.5}, + {"matrix":[4,1], "x":1.5, "y":2}, + {"matrix":[5,1], "x":2.5, "y":2}, + {"matrix":[4,2], "x":3.5, "y":2}, + {"matrix":[5,2], "x":4.5, "y":2}, + {"matrix":[4,3], "x":5.5, "y":2}, + {"matrix":[5,3], "x":6.5, "y":2}, + {"matrix":[4,4], "x":7.5, "y":2}, + {"matrix":[5,4], "x":8.5, "y":2}, + {"matrix":[4,5], "x":9.5, "y":2}, + {"matrix":[5,5], "x":10.5, "y":2}, + {"matrix":[4,6], "x":11.5, "y":2}, + {"matrix":[5,6], "x":12.5, "y":2}, + {"matrix":[5,7], "x":15, "y":2}, + + {"matrix":[6,0], "x":0, "y":3, "w":1.75}, + {"matrix":[7,0], "x":1.75, "y":3}, + {"matrix":[6,1], "x":2.75, "y":3}, + {"matrix":[7,1], "x":3.75, "y":3}, + {"matrix":[6,2], "x":4.75, "y":3}, + {"matrix":[7,2], "x":5.75, "y":3}, + {"matrix":[6,3], "x":6.75, "y":3}, + {"matrix":[7,3], "x":7.75, "y":3}, + {"matrix":[6,4], "x":8.75, "y":3}, + {"matrix":[7,4], "x":9.75, "y":3}, + {"matrix":[6,5], "x":10.75, "y":3}, + {"matrix":[7,5], "x":11.75, "y":3}, + {"matrix":[6,7], "x":12.75, "y":3}, + {"matrix":[4,7], "x":13.75, "y":2, "w":1.25, "h":2}, + {"matrix":[7,7], "x":15, "y":3}, + + {"matrix":[8,0], "x":0, "y":4, "w":1.25}, + {"matrix":[9,0], "x":1.25, "y":4}, + {"matrix":[8,1], "x":2.25, "y":4}, + {"matrix":[9,1], "x":3.25, "y":4}, + {"matrix":[8,2], "x":4.25, "y":4}, + {"matrix":[9,2], "x":5.25, "y":4}, + {"matrix":[8,3], "x":6.25, "y":4}, + {"matrix":[9,3], "x":7.25, "y":4}, + {"matrix":[8,4], "x":8.25, "y":4}, + {"matrix":[9,4], "x":9.25, "y":4}, + {"matrix":[8,5], "x":10.25, "y":4}, + {"matrix":[9,5], "x":11.25, "y":4}, + {"matrix":[9,6], "x":12.25, "y":4, "w":1.75}, + {"matrix":[8,7], "x":14, "y":4}, + {"matrix":[9,7], "x":15, "y":4}, + + {"matrix":[10,0], "x":0, "y":5, "w":1.25}, + {"matrix":[11,0], "x":1.25, "y":5, "w":1.25}, + {"matrix":[11,1], "x":2.5, "y":5, "w":1.25}, + {"matrix":[10,1], "x":3.75, "y":5, "w":6.25}, + {"matrix":[10,5], "x":10, "y":5}, + {"matrix":[11,5], "x":11, "y":5}, + {"matrix":[10,6], "x":12, "y":5}, + {"matrix":[11,6], "x":13, "y":5}, + {"matrix":[10,7], "x":14, "y":5}, + {"matrix":[11,7], "x":15, "y":5} + ] + } } } diff --git a/keyboards/teleport/native/iso/keymaps/default/keymap.c b/keyboards/teleport/native/iso/keymaps/default/keymap.c index b77e7fa61da8..c1ed3cd4f41a 100644 --- a/keyboards/teleport/native/iso/keymaps/default/keymap.c +++ b/keyboards/teleport/native/iso/keymaps/default/keymap.c @@ -26,8 +26,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [BASE] = LAYOUT_75_iso( /* keymap for layer 0 */ 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_DEL, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENT, 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_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_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_HOME, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), @@ -35,17 +35,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [GAME] = LAYOUT_75_iso( /* keymap for layer 1 - GAME disables WIN key and has RGB layer indicators */ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - + [_FN1] = LAYOUT_75_iso( /* keymap for layer 2 */ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_RMOD, - RGB_TOG, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, - KC_TRNS, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + RGB_TOG, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, + KC_TRNS, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MAGIC_TOGGLE_NKRO,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TG(GAME),KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), @@ -95,4 +95,4 @@ layer_state_t layer_state_set_user(layer_state_t state) { rgb_matrix_set_color(WIN_LED_INDEX, rgb_mat.r, rgb_mat.g, rgb_mat.b); } return state; -} \ No newline at end of file +} diff --git a/keyboards/teleport/native/iso/keymaps/perfmode/keymap.c b/keyboards/teleport/native/iso/keymaps/perfmode/keymap.c index d451d528e67c..3be8eec3ddf9 100644 --- a/keyboards/teleport/native/iso/keymaps/perfmode/keymap.c +++ b/keyboards/teleport/native/iso/keymaps/perfmode/keymap.c @@ -99,8 +99,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [BASE] = LAYOUT_75_iso( /* keymap for layer 0 */ 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_DEL, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENT, 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_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_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_HOME, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), @@ -108,17 +108,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [GAME] = LAYOUT_75_iso( /* keymap for layer 1 - GAME disables WIN key and has RGB layer indicators */ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - + [PERF] = LAYOUT_75_iso( /* keymap for layer 2 - PERF has a static LED display to increase matrix scan rates */ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FN2),KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), @@ -126,8 +126,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_FN1] = LAYOUT_75_iso( /* keymap for layer 3 */ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_M_P, RGB_M_2, RGB_M_3, RGB_M_4, RGB_M_5, RGB_M_6, RGB_M_7, RGB_M_8, RGB_M_9, RGB_M_0, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - RGB_TOG, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + RGB_TOG, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MAGIC_TOGGLE_NKRO,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TG(GAME),KC_TRNS, TO(PERF), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), @@ -135,8 +135,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_FN2] = LAYOUT_75_iso( /* keymap for layer 4 */ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG_NO,KC_NO, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - RGB_TOG_NO,KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + RGB_TOG_NO,KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, TG(PERF), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), @@ -196,4 +196,4 @@ layer_state_t layer_state_set_user(layer_state_t state) { rgb_matrix_set_color(WIN_LED_INDEX, rgb_mat.r, rgb_mat.g, rgb_mat.b); } return state; -} \ No newline at end of file +} diff --git a/keyboards/teleport/native/iso/keymaps/via/keymap.c b/keyboards/teleport/native/iso/keymaps/via/keymap.c index b77e7fa61da8..c1ed3cd4f41a 100644 --- a/keyboards/teleport/native/iso/keymaps/via/keymap.c +++ b/keyboards/teleport/native/iso/keymaps/via/keymap.c @@ -26,8 +26,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [BASE] = LAYOUT_75_iso( /* keymap for layer 0 */ 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_DEL, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENT, 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_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_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_HOME, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), @@ -35,17 +35,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [GAME] = LAYOUT_75_iso( /* keymap for layer 1 - GAME disables WIN key and has RGB layer indicators */ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - + [_FN1] = LAYOUT_75_iso( /* keymap for layer 2 */ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_RMOD, - RGB_TOG, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, - KC_TRNS, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + RGB_TOG, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, + KC_TRNS, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MAGIC_TOGGLE_NKRO,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TG(GAME),KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), @@ -95,4 +95,4 @@ layer_state_t layer_state_set_user(layer_state_t state) { rgb_matrix_set_color(WIN_LED_INDEX, rgb_mat.r, rgb_mat.g, rgb_mat.b); } return state; -} \ No newline at end of file +} From c965243bb70c2f3eb53bbd808bf99ea7c0ebce2d Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri, 13 Jan 2023 02:57:35 -0800 Subject: [PATCH 055/139] Synth Labs 060 Layout Additions and Fixes (#19575) --- keyboards/synthlabs/060/info.json | 512 +++++++++++++++++- .../synthlabs/060/keymaps/default/keymap.c | 14 +- keyboards/synthlabs/060/keymaps/via/keymap.c | 14 +- keyboards/synthlabs/060/matrix_diagram.md | 40 ++ 4 files changed, 561 insertions(+), 19 deletions(-) create mode 100644 keyboards/synthlabs/060/matrix_diagram.md diff --git a/keyboards/synthlabs/060/info.json b/keyboards/synthlabs/060/info.json index 8258fced726f..f210deacd88f 100644 --- a/keyboards/synthlabs/060/info.json +++ b/keyboards/synthlabs/060/info.json @@ -43,7 +43,7 @@ { "flags": 4, "matrix": [0,11], "x":176, "y": 0 }, { "flags": 4, "matrix": [0,12], "x":192, "y": 0 }, { "flags": 1, "matrix": [0,13], "x":216, "y": 0 }, - + { "flags": 1, "matrix": [2,12], "x":220, "y":16 }, { "flags": 4, "matrix": [1,12], "x":200, "y":16 }, { "flags": 4, "matrix": [1,11], "x":184, "y":16 }, @@ -58,7 +58,7 @@ { "flags": 4, "matrix": [1, 2], "x": 40, "y":16 }, { "flags": 4, "matrix": [1, 1], "x": 24, "y":16 }, { "flags": 1, "matrix": [1, 0], "x": 4, "y":16 }, - + { "flags": 1, "matrix": [2, 0], "x": 6, "y":32 }, { "flags": 4, "matrix": [2, 1], "x": 28, "y":32 }, { "flags": 4, "matrix": [2, 2], "x": 44, "y":32 }, @@ -98,8 +98,17 @@ { "flags": 1, "matrix": [4,13], "x":220, "y":64 } ] }, + "community_layouts": [ + "60_ansi", + "60_ansi_split_bs_rshift", + "60_ansi_tsangan", + "60_tsangan_hhkb", + "60_iso", + "60_iso_split_bs_rshift", + "60_iso_tsangan" + ], "layouts": { - "LAYOUT_60_ansi": { + "LAYOUT_all": { "layout": [ { "matrix": [0,0], "x":0, "y":0 }, { "matrix": [0,1], "x":1, "y":0 }, @@ -115,6 +124,8 @@ { "matrix": [0,11], "x":11, "y":0 }, { "matrix": [0,12], "x":12, "y":0 }, { "matrix": [0,13], "x":13, "y":0 }, + { "matrix": [1,13], "x":14, "y":0 }, + { "matrix": [1,0], "x":0, "y":1, "w":1.5 }, { "matrix": [1,1], "x":1.5, "y":1 }, { "matrix": [1,2], "x":2.5, "y":1 }, @@ -128,7 +139,8 @@ { "matrix": [1,10], "x":10.5, "y":1 }, { "matrix": [1,11], "x":11.5, "y":1 }, { "matrix": [1,12], "x":12.5, "y":1 }, - { "matrix": [1,13], "x":14, "y":0 }, + { "matrix": [2,12], "x":13.5, "y":1, "w":1.5 }, + { "matrix": [2,0], "x":0, "y":2, "w":1.75 }, { "matrix": [2,1], "x":1.75, "y":2 }, { "matrix": [2,2], "x":2.75, "y":2 }, @@ -141,8 +153,8 @@ { "matrix": [2,9], "x":9.75, "y":2 }, { "matrix": [2,10], "x":10.75, "y":2 }, { "matrix": [2,11], "x":11.75, "y":2 }, - { "matrix": [2,12], "x":13.5, "y":1, "w":1.5 }, { "matrix": [2,13], "x":12.75, "y":2, "w":2.25 }, + { "matrix": [3,0], "x":0, "y":3, "w":1.25 }, { "matrix": [3,1], "x":1.25, "y":3 }, { "matrix": [3,2], "x":2.25, "y":3 }, @@ -157,6 +169,7 @@ { "matrix": [3,11], "x":11.25, "y":3 }, { "matrix": [3,12], "x":12.25, "y":3, "w":1.75 }, { "matrix": [3,13], "x":14, "y":3 }, + { "matrix": [4,0], "x":0, "y":4, "w":1.5 }, { "matrix": [4,1], "x":1.5, "y":4 }, { "matrix": [4,2], "x":2.5, "y":4, "w":1.5 }, @@ -168,6 +181,495 @@ { "matrix": [4,12], "x":12.5, "y":4 }, { "matrix": [4,13], "x":13.5, "y":4, "w":1.5 } ] + }, + "LAYOUT_60_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, "w":2 }, + + { "matrix": [1,0], "x":0, "y":1, "w":1.5 }, + { "matrix": [1,1], "x":1.5, "y":1 }, + { "matrix": [1,2], "x":2.5, "y":1 }, + { "matrix": [1,3], "x":3.5, "y":1 }, + { "matrix": [1,4], "x":4.5, "y":1 }, + { "matrix": [1,5], "x":5.5, "y":1 }, + { "matrix": [1,6], "x":6.5, "y":1 }, + { "matrix": [1,7], "x":7.5, "y":1 }, + { "matrix": [1,8], "x":8.5, "y":1 }, + { "matrix": [1,9], "x":9.5, "y":1 }, + { "matrix": [1,10], "x":10.5, "y":1 }, + { "matrix": [1,11], "x":11.5, "y":1 }, + { "matrix": [1,12], "x":12.5, "y":1 }, + { "matrix": [2,12], "x":13.5, "y":1, "w":1.5 }, + + { "matrix": [2,0], "x":0, "y":2, "w":1.75 }, + { "matrix": [2,1], "x":1.75, "y":2 }, + { "matrix": [2,2], "x":2.75, "y":2 }, + { "matrix": [2,3], "x":3.75, "y":2 }, + { "matrix": [2,4], "x":4.75, "y":2 }, + { "matrix": [2,5], "x":5.75, "y":2 }, + { "matrix": [2,6], "x":6.75, "y":2 }, + { "matrix": [2,7], "x":7.75, "y":2 }, + { "matrix": [2,8], "x":8.75, "y":2 }, + { "matrix": [2,9], "x":9.75, "y":2 }, + { "matrix": [2,10], "x":10.75, "y":2 }, + { "matrix": [2,11], "x":11.75, "y":2 }, + { "matrix": [2,13], "x":12.75, "y":2, "w":2.25 }, + + { "matrix": [3,0], "x":0, "y":3, "w":2.25 }, + { "matrix": [3,2], "x":2.25, "y":3 }, + { "matrix": [3,3], "x":3.25, "y":3 }, + { "matrix": [3,4], "x":4.25, "y":3 }, + { "matrix": [3,5], "x":5.25, "y":3 }, + { "matrix": [3,6], "x":6.25, "y":3 }, + { "matrix": [3,7], "x":7.25, "y":3 }, + { "matrix": [3,8], "x":8.25, "y":3 }, + { "matrix": [3,9], "x":9.25, "y":3 }, + { "matrix": [3,10], "x":10.25, "y":3 }, + { "matrix": [3,11], "x":11.25, "y":3 }, + { "matrix": [3,12], "x":12.25, "y":3, "w":2.75 }, + + { "matrix": [4,0], "x":0, "y":4, "w":1.25 }, + { "matrix": [4,1], "x":1.25, "y":4, "w":1.25 }, + { "matrix": [4,2], "x":2.5, "y":4, "w":1.25 }, + { "matrix": [4,7], "x":3.75, "y":4, "w":6.25 }, + { "matrix": [4,10], "x":10, "y":4, "w":1.25 }, + { "matrix": [4,11], "x":11.25, "y":4, "w":1.25 }, + { "matrix": [4,12], "x":12.5, "y":4, "w":1.25 }, + { "matrix": [4,13], "x":13.75, "y":4, "w":1.25 } + ] + }, + "LAYOUT_60_ansi_split_bs_rshift": { + "layout": [ + { "matrix": [0,0], "x":0, "y":0 }, + { "matrix": [0,1], "x":1, "y":0 }, + { "matrix": [0,2], "x":2, "y":0 }, + { "matrix": [0,3], "x":3, "y":0 }, + { "matrix": [0,4], "x":4, "y":0 }, + { "matrix": [0,5], "x":5, "y":0 }, + { "matrix": [0,6], "x":6, "y":0 }, + { "matrix": [0,7], "x":7, "y":0 }, + { "matrix": [0,8], "x":8, "y":0 }, + { "matrix": [0,9], "x":9, "y":0 }, + { "matrix": [0,10], "x":10, "y":0 }, + { "matrix": [0,11], "x":11, "y":0 }, + { "matrix": [0,12], "x":12, "y":0 }, + { "matrix": [0,13], "x":13, "y":0 }, + { "matrix": [1,13], "x":14, "y":0 }, + + { "matrix": [1,0], "x":0, "y":1, "w":1.5 }, + { "matrix": [1,1], "x":1.5, "y":1 }, + { "matrix": [1,2], "x":2.5, "y":1 }, + { "matrix": [1,3], "x":3.5, "y":1 }, + { "matrix": [1,4], "x":4.5, "y":1 }, + { "matrix": [1,5], "x":5.5, "y":1 }, + { "matrix": [1,6], "x":6.5, "y":1 }, + { "matrix": [1,7], "x":7.5, "y":1 }, + { "matrix": [1,8], "x":8.5, "y":1 }, + { "matrix": [1,9], "x":9.5, "y":1 }, + { "matrix": [1,10], "x":10.5, "y":1 }, + { "matrix": [1,11], "x":11.5, "y":1 }, + { "matrix": [1,12], "x":12.5, "y":1 }, + { "matrix": [2,12], "x":13.5, "y":1, "w":1.5 }, + + { "matrix": [2,0], "x":0, "y":2, "w":1.75 }, + { "matrix": [2,1], "x":1.75, "y":2 }, + { "matrix": [2,2], "x":2.75, "y":2 }, + { "matrix": [2,3], "x":3.75, "y":2 }, + { "matrix": [2,4], "x":4.75, "y":2 }, + { "matrix": [2,5], "x":5.75, "y":2 }, + { "matrix": [2,6], "x":6.75, "y":2 }, + { "matrix": [2,7], "x":7.75, "y":2 }, + { "matrix": [2,8], "x":8.75, "y":2 }, + { "matrix": [2,9], "x":9.75, "y":2 }, + { "matrix": [2,10], "x":10.75, "y":2 }, + { "matrix": [2,11], "x":11.75, "y":2 }, + { "matrix": [2,13], "x":12.75, "y":2, "w":2.25 }, + + { "matrix": [3,0], "x":0, "y":3, "w":2.25 }, + { "matrix": [3,2], "x":2.25, "y":3 }, + { "matrix": [3,3], "x":3.25, "y":3 }, + { "matrix": [3,4], "x":4.25, "y":3 }, + { "matrix": [3,5], "x":5.25, "y":3 }, + { "matrix": [3,6], "x":6.25, "y":3 }, + { "matrix": [3,7], "x":7.25, "y":3 }, + { "matrix": [3,8], "x":8.25, "y":3 }, + { "matrix": [3,9], "x":9.25, "y":3 }, + { "matrix": [3,10], "x":10.25, "y":3 }, + { "matrix": [3,11], "x":11.25, "y":3 }, + { "matrix": [3,12], "x":12.25, "y":3, "w":1.75 }, + { "matrix": [3,13], "x":14, "y":3 }, + + { "matrix": [4,0], "x":0, "y":4, "w":1.25 }, + { "matrix": [4,1], "x":1.25, "y":4, "w":1.25 }, + { "matrix": [4,2], "x":2.5, "y":4, "w":1.25 }, + { "matrix": [4,7], "x":3.75, "y":4, "w":6.25 }, + { "matrix": [4,10], "x":10, "y":4, "w":1.25 }, + { "matrix": [4,11], "x":11.25, "y":4, "w":1.25 }, + { "matrix": [4,12], "x":12.5, "y":4, "w":1.25 }, + { "matrix": [4,13], "x":13.75, "y":4, "w":1.25 } + ] + }, + "LAYOUT_60_ansi_tsangan": { + "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, "w":2 }, + + { "matrix": [1,0], "x":0, "y":1, "w":1.5 }, + { "matrix": [1,1], "x":1.5, "y":1 }, + { "matrix": [1,2], "x":2.5, "y":1 }, + { "matrix": [1,3], "x":3.5, "y":1 }, + { "matrix": [1,4], "x":4.5, "y":1 }, + { "matrix": [1,5], "x":5.5, "y":1 }, + { "matrix": [1,6], "x":6.5, "y":1 }, + { "matrix": [1,7], "x":7.5, "y":1 }, + { "matrix": [1,8], "x":8.5, "y":1 }, + { "matrix": [1,9], "x":9.5, "y":1 }, + { "matrix": [1,10], "x":10.5, "y":1 }, + { "matrix": [1,11], "x":11.5, "y":1 }, + { "matrix": [1,12], "x":12.5, "y":1 }, + { "matrix": [2,12], "x":13.5, "y":1, "w":1.5 }, + + { "matrix": [2,0], "x":0, "y":2, "w":1.75 }, + { "matrix": [2,1], "x":1.75, "y":2 }, + { "matrix": [2,2], "x":2.75, "y":2 }, + { "matrix": [2,3], "x":3.75, "y":2 }, + { "matrix": [2,4], "x":4.75, "y":2 }, + { "matrix": [2,5], "x":5.75, "y":2 }, + { "matrix": [2,6], "x":6.75, "y":2 }, + { "matrix": [2,7], "x":7.75, "y":2 }, + { "matrix": [2,8], "x":8.75, "y":2 }, + { "matrix": [2,9], "x":9.75, "y":2 }, + { "matrix": [2,10], "x":10.75, "y":2 }, + { "matrix": [2,11], "x":11.75, "y":2 }, + { "matrix": [2,13], "x":12.75, "y":2, "w":2.25 }, + + { "matrix": [3,0], "x":0, "y":3, "w":2.25 }, + { "matrix": [3,2], "x":2.25, "y":3 }, + { "matrix": [3,3], "x":3.25, "y":3 }, + { "matrix": [3,4], "x":4.25, "y":3 }, + { "matrix": [3,5], "x":5.25, "y":3 }, + { "matrix": [3,6], "x":6.25, "y":3 }, + { "matrix": [3,7], "x":7.25, "y":3 }, + { "matrix": [3,8], "x":8.25, "y":3 }, + { "matrix": [3,9], "x":9.25, "y":3 }, + { "matrix": [3,10], "x":10.25, "y":3 }, + { "matrix": [3,11], "x":11.25, "y":3 }, + { "matrix": [3,12], "x":12.25, "y":3, "w":2.75 }, + + { "matrix": [4,0], "x":0, "y":4, "w":1.5 }, + { "matrix": [4,1], "x":1.5, "y":4 }, + { "matrix": [4,2], "x":2.5, "y":4, "w":1.5 }, + { "matrix": [4,7], "x":4, "y":4, "w":7 }, + { "matrix": [4,11], "x":11, "y":4, "w":1.5 }, + { "matrix": [4,12], "x":12.5, "y":4 }, + { "matrix": [4,13], "x":13.5, "y":4, "w":1.5 } + ] + }, + "LAYOUT_60_tsangan_hhkb": { + "layout": [ + { "matrix": [0,0], "x":0, "y":0 }, + { "matrix": [0,1], "x":1, "y":0 }, + { "matrix": [0,2], "x":2, "y":0 }, + { "matrix": [0,3], "x":3, "y":0 }, + { "matrix": [0,4], "x":4, "y":0 }, + { "matrix": [0,5], "x":5, "y":0 }, + { "matrix": [0,6], "x":6, "y":0 }, + { "matrix": [0,7], "x":7, "y":0 }, + { "matrix": [0,8], "x":8, "y":0 }, + { "matrix": [0,9], "x":9, "y":0 }, + { "matrix": [0,10], "x":10, "y":0 }, + { "matrix": [0,11], "x":11, "y":0 }, + { "matrix": [0,12], "x":12, "y":0 }, + { "matrix": [0,13], "x":13, "y":0 }, + { "matrix": [1,13], "x":14, "y":0 }, + + { "matrix": [1,0], "x":0, "y":1, "w":1.5 }, + { "matrix": [1,1], "x":1.5, "y":1 }, + { "matrix": [1,2], "x":2.5, "y":1 }, + { "matrix": [1,3], "x":3.5, "y":1 }, + { "matrix": [1,4], "x":4.5, "y":1 }, + { "matrix": [1,5], "x":5.5, "y":1 }, + { "matrix": [1,6], "x":6.5, "y":1 }, + { "matrix": [1,7], "x":7.5, "y":1 }, + { "matrix": [1,8], "x":8.5, "y":1 }, + { "matrix": [1,9], "x":9.5, "y":1 }, + { "matrix": [1,10], "x":10.5, "y":1 }, + { "matrix": [1,11], "x":11.5, "y":1 }, + { "matrix": [1,12], "x":12.5, "y":1 }, + { "matrix": [2,12], "x":13.5, "y":1, "w":1.5 }, + + { "matrix": [2,0], "x":0, "y":2, "w":1.75 }, + { "matrix": [2,1], "x":1.75, "y":2 }, + { "matrix": [2,2], "x":2.75, "y":2 }, + { "matrix": [2,3], "x":3.75, "y":2 }, + { "matrix": [2,4], "x":4.75, "y":2 }, + { "matrix": [2,5], "x":5.75, "y":2 }, + { "matrix": [2,6], "x":6.75, "y":2 }, + { "matrix": [2,7], "x":7.75, "y":2 }, + { "matrix": [2,8], "x":8.75, "y":2 }, + { "matrix": [2,9], "x":9.75, "y":2 }, + { "matrix": [2,10], "x":10.75, "y":2 }, + { "matrix": [2,11], "x":11.75, "y":2 }, + { "matrix": [2,13], "x":12.75, "y":2, "w":2.25 }, + + { "matrix": [3,0], "x":0, "y":3, "w":2.25 }, + { "matrix": [3,2], "x":2.25, "y":3 }, + { "matrix": [3,3], "x":3.25, "y":3 }, + { "matrix": [3,4], "x":4.25, "y":3 }, + { "matrix": [3,5], "x":5.25, "y":3 }, + { "matrix": [3,6], "x":6.25, "y":3 }, + { "matrix": [3,7], "x":7.25, "y":3 }, + { "matrix": [3,8], "x":8.25, "y":3 }, + { "matrix": [3,9], "x":9.25, "y":3 }, + { "matrix": [3,10], "x":10.25, "y":3 }, + { "matrix": [3,11], "x":11.25, "y":3 }, + { "matrix": [3,12], "x":12.25, "y":3, "w":1.75 }, + { "matrix": [3,13], "x":14, "y":3 }, + + { "matrix": [4,0], "x":0, "y":4, "w":1.5 }, + { "matrix": [4,1], "x":1.5, "y":4 }, + { "matrix": [4,2], "x":2.5, "y":4, "w":1.5 }, + { "matrix": [4,7], "x":4, "y":4, "w":7 }, + { "matrix": [4,11], "x":11, "y":4, "w":1.5 }, + { "matrix": [4,12], "x":12.5, "y":4 }, + { "matrix": [4,13], "x":13.5, "y":4, "w":1.5 } + ] + }, + "LAYOUT_60_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, "w":2 }, + + { "matrix": [1,0], "x":0, "y":1, "w":1.5 }, + { "matrix": [1,1], "x":1.5, "y":1 }, + { "matrix": [1,2], "x":2.5, "y":1 }, + { "matrix": [1,3], "x":3.5, "y":1 }, + { "matrix": [1,4], "x":4.5, "y":1 }, + { "matrix": [1,5], "x":5.5, "y":1 }, + { "matrix": [1,6], "x":6.5, "y":1 }, + { "matrix": [1,7], "x":7.5, "y":1 }, + { "matrix": [1,8], "x":8.5, "y":1 }, + { "matrix": [1,9], "x":9.5, "y":1 }, + { "matrix": [1,10], "x":10.5, "y":1 }, + { "matrix": [1,11], "x":11.5, "y":1 }, + { "matrix": [1,12], "x":12.5, "y":1 }, + + { "matrix": [2,0], "x":0, "y":2, "w":1.75 }, + { "matrix": [2,1], "x":1.75, "y":2 }, + { "matrix": [2,2], "x":2.75, "y":2 }, + { "matrix": [2,3], "x":3.75, "y":2 }, + { "matrix": [2,4], "x":4.75, "y":2 }, + { "matrix": [2,5], "x":5.75, "y":2 }, + { "matrix": [2,6], "x":6.75, "y":2 }, + { "matrix": [2,7], "x":7.75, "y":2 }, + { "matrix": [2,8], "x":8.75, "y":2 }, + { "matrix": [2,9], "x":9.75, "y":2 }, + { "matrix": [2,10], "x":10.75, "y":2 }, + { "matrix": [2,11], "x":11.75, "y":2 }, + { "matrix": [2,12], "x":12.75, "y":2 }, + { "matrix": [2,13], "x":13.75, "y":1, "w":1.25, "h":2 }, + + { "matrix": [3,0], "x":0, "y":3, "w":1.25 }, + { "matrix": [3,1], "x":1.25, "y":3 }, + { "matrix": [3,2], "x":2.25, "y":3 }, + { "matrix": [3,3], "x":3.25, "y":3 }, + { "matrix": [3,4], "x":4.25, "y":3 }, + { "matrix": [3,5], "x":5.25, "y":3 }, + { "matrix": [3,6], "x":6.25, "y":3 }, + { "matrix": [3,7], "x":7.25, "y":3 }, + { "matrix": [3,8], "x":8.25, "y":3 }, + { "matrix": [3,9], "x":9.25, "y":3 }, + { "matrix": [3,10], "x":10.25, "y":3 }, + { "matrix": [3,11], "x":11.25, "y":3 }, + { "matrix": [3,12], "x":12.25, "y":3, "w":2.75 }, + + { "matrix": [4,0], "x":0, "y":4, "w":1.25 }, + { "matrix": [4,1], "x":1.25, "y":4, "w":1.25 }, + { "matrix": [4,2], "x":2.5, "y":4, "w":1.25 }, + { "matrix": [4,7], "x":3.75, "y":4, "w":6.25 }, + { "matrix": [4,10], "x":10, "y":4, "w":1.25 }, + { "matrix": [4,11], "x":11.25, "y":4, "w":1.25 }, + { "matrix": [4,12], "x":12.5, "y":4, "w":1.25 }, + { "matrix": [4,13], "x":13.75, "y":4, "w":1.25 } + ] + }, + "LAYOUT_60_iso_split_bs_rshift": { + "layout": [ + { "matrix": [0,0], "x":0, "y":0 }, + { "matrix": [0,1], "x":1, "y":0 }, + { "matrix": [0,2], "x":2, "y":0 }, + { "matrix": [0,3], "x":3, "y":0 }, + { "matrix": [0,4], "x":4, "y":0 }, + { "matrix": [0,5], "x":5, "y":0 }, + { "matrix": [0,6], "x":6, "y":0 }, + { "matrix": [0,7], "x":7, "y":0 }, + { "matrix": [0,8], "x":8, "y":0 }, + { "matrix": [0,9], "x":9, "y":0 }, + { "matrix": [0,10], "x":10, "y":0 }, + { "matrix": [0,11], "x":11, "y":0 }, + { "matrix": [0,12], "x":12, "y":0 }, + { "matrix": [0,13], "x":13, "y":0 }, + { "matrix": [1,13], "x":14, "y":0 }, + + { "matrix": [1,0], "x":0, "y":1, "w":1.5 }, + { "matrix": [1,1], "x":1.5, "y":1 }, + { "matrix": [1,2], "x":2.5, "y":1 }, + { "matrix": [1,3], "x":3.5, "y":1 }, + { "matrix": [1,4], "x":4.5, "y":1 }, + { "matrix": [1,5], "x":5.5, "y":1 }, + { "matrix": [1,6], "x":6.5, "y":1 }, + { "matrix": [1,7], "x":7.5, "y":1 }, + { "matrix": [1,8], "x":8.5, "y":1 }, + { "matrix": [1,9], "x":9.5, "y":1 }, + { "matrix": [1,10], "x":10.5, "y":1 }, + { "matrix": [1,11], "x":11.5, "y":1 }, + { "matrix": [1,12], "x":12.5, "y":1 }, + + { "matrix": [2,0], "x":0, "y":2, "w":1.75 }, + { "matrix": [2,1], "x":1.75, "y":2 }, + { "matrix": [2,2], "x":2.75, "y":2 }, + { "matrix": [2,3], "x":3.75, "y":2 }, + { "matrix": [2,4], "x":4.75, "y":2 }, + { "matrix": [2,5], "x":5.75, "y":2 }, + { "matrix": [2,6], "x":6.75, "y":2 }, + { "matrix": [2,7], "x":7.75, "y":2 }, + { "matrix": [2,8], "x":8.75, "y":2 }, + { "matrix": [2,9], "x":9.75, "y":2 }, + { "matrix": [2,10], "x":10.75, "y":2 }, + { "matrix": [2,11], "x":11.75, "y":2 }, + { "matrix": [2,12], "x":12.75, "y":2 }, + { "matrix": [2,13], "x":13.75, "y":1, "w":1.25, "h":2 }, + + { "matrix": [3,0], "x":0, "y":3, "w":1.25 }, + { "matrix": [3,1], "x":1.25, "y":3 }, + { "matrix": [3,2], "x":2.25, "y":3 }, + { "matrix": [3,3], "x":3.25, "y":3 }, + { "matrix": [3,4], "x":4.25, "y":3 }, + { "matrix": [3,5], "x":5.25, "y":3 }, + { "matrix": [3,6], "x":6.25, "y":3 }, + { "matrix": [3,7], "x":7.25, "y":3 }, + { "matrix": [3,8], "x":8.25, "y":3 }, + { "matrix": [3,9], "x":9.25, "y":3 }, + { "matrix": [3,10], "x":10.25, "y":3 }, + { "matrix": [3,11], "x":11.25, "y":3 }, + { "matrix": [3,12], "x":12.25, "y":3, "w":1.75 }, + { "matrix": [3,13], "x":14, "y":3 }, + + { "matrix": [4,0], "x":0, "y":4, "w":1.25 }, + { "matrix": [4,1], "x":1.25, "y":4, "w":1.25 }, + { "matrix": [4,2], "x":2.5, "y":4, "w":1.25 }, + { "matrix": [4,7], "x":3.75, "y":4, "w":6.25 }, + { "matrix": [4,10], "x":10, "y":4, "w":1.25 }, + { "matrix": [4,11], "x":11.25, "y":4, "w":1.25 }, + { "matrix": [4,12], "x":12.5, "y":4, "w":1.25 }, + { "matrix": [4,13], "x":13.75, "y":4, "w":1.25 } + ] + }, + "LAYOUT_60_iso_tsangan": { + "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, "w":2 }, + + { "matrix": [1,0], "x":0, "y":1, "w":1.5 }, + { "matrix": [1,1], "x":1.5, "y":1 }, + { "matrix": [1,2], "x":2.5, "y":1 }, + { "matrix": [1,3], "x":3.5, "y":1 }, + { "matrix": [1,4], "x":4.5, "y":1 }, + { "matrix": [1,5], "x":5.5, "y":1 }, + { "matrix": [1,6], "x":6.5, "y":1 }, + { "matrix": [1,7], "x":7.5, "y":1 }, + { "matrix": [1,8], "x":8.5, "y":1 }, + { "matrix": [1,9], "x":9.5, "y":1 }, + { "matrix": [1,10], "x":10.5, "y":1 }, + { "matrix": [1,11], "x":11.5, "y":1 }, + { "matrix": [1,12], "x":12.5, "y":1 }, + + { "matrix": [2,0], "x":0, "y":2, "w":1.75 }, + { "matrix": [2,1], "x":1.75, "y":2 }, + { "matrix": [2,2], "x":2.75, "y":2 }, + { "matrix": [2,3], "x":3.75, "y":2 }, + { "matrix": [2,4], "x":4.75, "y":2 }, + { "matrix": [2,5], "x":5.75, "y":2 }, + { "matrix": [2,6], "x":6.75, "y":2 }, + { "matrix": [2,7], "x":7.75, "y":2 }, + { "matrix": [2,8], "x":8.75, "y":2 }, + { "matrix": [2,9], "x":9.75, "y":2 }, + { "matrix": [2,10], "x":10.75, "y":2 }, + { "matrix": [2,11], "x":11.75, "y":2 }, + { "matrix": [2,12], "x":12.75, "y":2 }, + { "matrix": [2,13], "x":13.75, "y":1, "w":1.25, "h":2 }, + + { "matrix": [3,0], "x":0, "y":3, "w":1.25 }, + { "matrix": [3,1], "x":1.25, "y":3 }, + { "matrix": [3,2], "x":2.25, "y":3 }, + { "matrix": [3,3], "x":3.25, "y":3 }, + { "matrix": [3,4], "x":4.25, "y":3 }, + { "matrix": [3,5], "x":5.25, "y":3 }, + { "matrix": [3,6], "x":6.25, "y":3 }, + { "matrix": [3,7], "x":7.25, "y":3 }, + { "matrix": [3,8], "x":8.25, "y":3 }, + { "matrix": [3,9], "x":9.25, "y":3 }, + { "matrix": [3,10], "x":10.25, "y":3 }, + { "matrix": [3,11], "x":11.25, "y":3 }, + { "matrix": [3,12], "x":12.25, "y":3, "w":2.75 }, + + { "matrix": [4,0], "x":0, "y":4, "w":1.5 }, + { "matrix": [4,1], "x":1.5, "y":4 }, + { "matrix": [4,2], "x":2.5, "y":4, "w":1.5 }, + { "matrix": [4,7], "x":4, "y":4, "w":7 }, + { "matrix": [4,11], "x":11, "y":4, "w":1.5 }, + { "matrix": [4,12], "x":12.5, "y":4 }, + { "matrix": [4,13], "x":13.5, "y":4, "w":1.5 } + ] } } } diff --git a/keyboards/synthlabs/060/keymaps/default/keymap.c b/keyboards/synthlabs/060/keymaps/default/keymap.c index a912a27c74c3..20409e07f6fb 100644 --- a/keyboards/synthlabs/060/keymaps/default/keymap.c +++ b/keyboards/synthlabs/060/keymaps/default/keymap.c @@ -5,17 +5,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_60_ansi( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_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_BSLS, KC_ENT, + [0] = LAYOUT_all( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_MENU, KC_RALT, KC_RGUI, KC_RCTL ), - [1] = LAYOUT_60_ansi( - KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + [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_HOME, KC_UP, KC_END, KC_PGUP, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, KC_ENT, KC_ENT, KC_ENT, _______, _______, _______, _______ ) diff --git a/keyboards/synthlabs/060/keymaps/via/keymap.c b/keyboards/synthlabs/060/keymaps/via/keymap.c index a912a27c74c3..20409e07f6fb 100644 --- a/keyboards/synthlabs/060/keymaps/via/keymap.c +++ b/keyboards/synthlabs/060/keymaps/via/keymap.c @@ -5,17 +5,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_60_ansi( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_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_BSLS, KC_ENT, + [0] = LAYOUT_all( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_MENU, KC_RALT, KC_RGUI, KC_RCTL ), - [1] = LAYOUT_60_ansi( - KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + [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_HOME, KC_UP, KC_END, KC_PGUP, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, KC_ENT, KC_ENT, KC_ENT, _______, _______, _______, _______ ) diff --git a/keyboards/synthlabs/060/matrix_diagram.md b/keyboards/synthlabs/060/matrix_diagram.md new file mode 100644 index 000000000000..404fb57fa7a6 --- /dev/null +++ b/keyboards/synthlabs/060/matrix_diagram.md @@ -0,0 +1,40 @@ +# Synth Labs 060 Solder Matrix Diagram + +``` + + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───────┐ + │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │1D │ │0D │ 2u Backspace + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ └─┬─────┤ + │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │2C │ │ │ + 2.25u ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ┌──┴┐2D │ ISO Enter + LShift │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │ │2C │ │ +┌────────┐ ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌─┴───┴────┤ +│30 │ │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │ │3C │ 2.75u RShift +└────────┘ ├────┴┬──┴┬──┴──┬┴───┴───┴─┬─┴─┬─┴───┴──┬┴───┼───┴┬───┬─┴───┤ └──────────┘ + │40 │41 │42 │45 │47 │49 │4A │4B │4C │4D │ + └─────┴───┴─────┴──────────┴───┴────────┴────┴────┴───┴─────┘ + └─────┬───┬─────┬──────────┬───┬────────┬────┬────┬───┬─────┘ + │41 │42 │45 │47 │49 │4A │4B │4C │ + └───┴─────┴──────────┴───┴────────┴────┴────┴───┘ + ┌─────┬───┬─────┬──────────┬───┬────────┬────┬────┬───┬─────┐ + │40 │ │42 │45 │47 │49 │4A │4B │ │4D │ + └─────┘ └─────┴──────────┴───┴────────┴────┴────┘ └─────┘ + ┌────┬────┬────┬────────────────────────┬────┬────┬────┬────┐ + │40 │41 │42 │47 │4A │4B │4C │4D │ Standard + └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + └─────┬───┬────┬────────────────────────┬────┬────┬───┬─────┘ + │41 │42 │47 │4A │4B │4C │ + └───┴────┴────────────────────────┴────┴────┴───┘ + ┌─────┬───┬────┬────────────────────────┬────┬────┬───┬─────┐ + │40 │ │42 │47 │4A │4B │ │4D │ + └─────┘ └────┴────────────────────────┴────┴────┘ └─────┘ + ┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ + │40 │41 │42 │47 │4B │4C │4D │ Tsangan + └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ + ┌───┬─────┬───────────────────────────┬─────┬───┐ + │41 │42 │47 │4B │4C │ HHKB + └───┴─────┴───────────────────────────┴─────┴───┘ + ┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ + │40 │ │42 │47 │4B │ │4D │ WKL + └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ +``` From b756c53c7b7fb314136571bc1dabe4947554e702 Mon Sep 17 00:00:00 2001 From: jack <0x6A73@pm.me> Date: Fri, 13 Jan 2023 03:58:38 -0700 Subject: [PATCH 056/139] [Docs] Touch up documentation templates & porting keyboard docs (#19573) --- docs/documentation_templates.md | 12 ++++++++++++ docs/porting_your_keyboard_to_qmk.md | 5 ++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/docs/documentation_templates.md b/docs/documentation_templates.md index 91ad80166246..0ad4303416f0 100644 --- a/docs/documentation_templates.md +++ b/docs/documentation_templates.md @@ -36,5 +36,17 @@ Make example for this keyboard (after setting up your build environment): make planck/rev4:default +Flashing example for this keyboard: + + make planck/rev4:default:flash + See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available ``` diff --git a/docs/porting_your_keyboard_to_qmk.md b/docs/porting_your_keyboard_to_qmk.md index 484d079ea61b..e6a3a72cda24 100644 --- a/docs/porting_your_keyboard_to_qmk.md +++ b/docs/porting_your_keyboard_to_qmk.md @@ -147,7 +147,7 @@ Next is configuring Layout Macro(s). These define the physical arrangement of ke In the above example, * `LAYOUT_ortho_4x4` defines the name of the layout macro - * It must conform to [hardware_keyboard_guidelines.md#ltkeyboard_namehgt] + * It must conform to the [layout guidelines](hardware_keyboard_guidelines.md#ltkeyboard_namehgt) * `"matrix": [0, 0]` defines the electrical position ## Additional Configuration @@ -155,8 +155,7 @@ In the above example, There are a lot of features that can be turned on or off, configured or tuned. Some of these have yet to be migrated over to [Data Driven Configuration](data_driven_config.md). The following sections cover the process for when an `info.json` option is unavailable. ### Configuration Options - -For available options for `config.h`, you should see the [Config Options](config_options.md) page for more details. +For available options for `config.h`, you should see the [Config Options](config_options.md#the-configh-file) page for more details. ### Build Options From e1feab3167e859fd2b269176808f1e4789bb1f5d Mon Sep 17 00:00:00 2001 From: Rucker Machine <98196480+RuckerMachine@users.noreply.github.com> Date: Fri, 13 Jan 2023 03:03:37 -0800 Subject: [PATCH 057/139] [Keyboard] Add additional layout to RM_Numpad (#19534) Co-authored-by: jason --- .../rm_numpad/keymaps/big_enter/keymap.c | 48 +++++++++++++++++++ .../rm_numpad/keymaps/big_enter/readme.md | 4 ++ keyboards/rmkeebs/rm_numpad/rm_numpad.h | 31 ++++++++++++ 3 files changed, 83 insertions(+) create mode 100644 keyboards/rmkeebs/rm_numpad/keymaps/big_enter/keymap.c create mode 100644 keyboards/rmkeebs/rm_numpad/keymaps/big_enter/readme.md diff --git a/keyboards/rmkeebs/rm_numpad/keymaps/big_enter/keymap.c b/keyboards/rmkeebs/rm_numpad/keymaps/big_enter/keymap.c new file mode 100644 index 000000000000..f03cbd9eee9d --- /dev/null +++ b/keyboards/rmkeebs/rm_numpad/keymaps/big_enter/keymap.c @@ -0,0 +1,48 @@ +/* Copyright 2023 RuckerMachine + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 { + DBL_ZRO = SAFE_RANGE, +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case DBL_ZRO: + if (record->event.pressed) { + // when keycode DBL_ZRO is pressed + SEND_STRING("00"); + } else { + // when keycode DBL_ZRO is released + } + break; + + } + return true; +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + LAYOUT_big_enter_6x4( + KC_MPLY, KC_MPRV, KC_MNXT, KC_MUTE, + KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_P7, KC_P8, KC_P9, KC_EQL, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, + KC_P0, DBL_ZRO, KC_PDOT, KC_ENT + ) +}; + diff --git a/keyboards/rmkeebs/rm_numpad/keymaps/big_enter/readme.md b/keyboards/rmkeebs/rm_numpad/keymaps/big_enter/readme.md new file mode 100644 index 000000000000..3ec4348db278 --- /dev/null +++ b/keyboards/rmkeebs/rm_numpad/keymaps/big_enter/readme.md @@ -0,0 +1,4 @@ +# The big enter keymap for rm_numpad + + +![Big Enter](https://i.imgur.com/Hihd53E.png) diff --git a/keyboards/rmkeebs/rm_numpad/rm_numpad.h b/keyboards/rmkeebs/rm_numpad/rm_numpad.h index b66a8b8249ad..77537f45704b 100644 --- a/keyboards/rmkeebs/rm_numpad/rm_numpad.h +++ b/keyboards/rmkeebs/rm_numpad/rm_numpad.h @@ -125,3 +125,34 @@ { ___, k51, ___, k53, ___ } \ } +/* rm_numpad big enter layout + * .-------------------. + * |PAUS|PREV|NEXT|MUTE| + * |-------------------| + * |NLCK| /| *| -| + * |-------------------| + * | 7| 8| 9| =| + * |-------------------| + * | 4| 5| 6| +| + * |-------------------| + * | 1| 2| 3| Ent| + * |--------------| | + * | 0| 00| .| | + * '-------------------' + */ + +#define LAYOUT_big_enter_6x4( \ + k00, k01, k02, k03, \ + k10, k11, k12, k13, \ + k20, k21, k22, k23, \ + k30, k31, k32, k33, \ + k40, k41, k42, \ + k50, k52, k53, k44 \ +) { \ + { k00, k01, k02, k03, ___ }, \ + { k10, k11, k12, k13, ___ }, \ + { k20, k21, k22, k23, ___ }, \ + { k30, k31, k32, k33, ___ }, \ + { k40, k41, k42, ___, k44 }, \ + { k50, ___, k52, k53, ___ } \ +} From 0de7ccedac4fba00f0e39cfa37f59ef0cd6059c3 Mon Sep 17 00:00:00 2001 From: Jens Peter Secher Date: Fri, 13 Jan 2023 12:04:16 +0100 Subject: [PATCH 058/139] [Keyboard] Acacia keyboard (#19532) --- keyboards/handwired/acacia/acacia.c | 17 ++++ keyboards/handwired/acacia/acacia.h | 49 ++++++++++++ keyboards/handwired/acacia/config.h | 23 ++++++ keyboards/handwired/acacia/info.json | 78 +++++++++++++++++++ .../handwired/acacia/keymaps/default/keymap.c | 54 +++++++++++++ keyboards/handwired/acacia/readme.md | 22 ++++++ keyboards/handwired/acacia/rules.mk | 7 ++ 7 files changed, 250 insertions(+) create mode 100644 keyboards/handwired/acacia/acacia.c create mode 100644 keyboards/handwired/acacia/acacia.h create mode 100644 keyboards/handwired/acacia/config.h create mode 100644 keyboards/handwired/acacia/info.json create mode 100644 keyboards/handwired/acacia/keymaps/default/keymap.c create mode 100644 keyboards/handwired/acacia/readme.md create mode 100644 keyboards/handwired/acacia/rules.mk diff --git a/keyboards/handwired/acacia/acacia.c b/keyboards/handwired/acacia/acacia.c new file mode 100644 index 000000000000..276b23552a99 --- /dev/null +++ b/keyboards/handwired/acacia/acacia.c @@ -0,0 +1,17 @@ +/* Copyright 2022 Jens Peter Secher + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "acacia.h" diff --git a/keyboards/handwired/acacia/acacia.h b/keyboards/handwired/acacia/acacia.h new file mode 100644 index 000000000000..060caa6adc41 --- /dev/null +++ b/keyboards/handwired/acacia/acacia.h @@ -0,0 +1,49 @@ +/* Copyright 2022 Jens Peter Secher + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for 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" + +/* + * ┌───┐ ┌───┐ + * ┌───┤02 ├───┐ ┌───┤07 ├───┐ + * ┌───┤01 ├───┤03 ├───┐ ┌───┤06 ├───┤08 ├───┐ + * ┌───┤00 ├───┤12 ├───┤33 │ │36 ├───┤17 ├───┤09 ├───┐ + * │30 ├───┤11 ├───┤13 ├───┤ ├───┤16 ├───┤18 ├───┤39 │ + * ├───┤10 ├───┤22 ├───┤43 │ │46 ├───┤27 ├───┤19 ├───┤ + * │40 ├───┤21 ├───┤23 ├───┘ └───┤26 ├───┤28 ├───┤49 │ + * └───┤20 ├───┘ └───┘ └───┘ └───┤29 ├───┘ + * └───┘ ┌───┐ ┌───┬───┐ ┌───┬───┐ ┌───┐ └───┘ + * │04 │ │14 │24 ├───┐ ┌───┤25 │15 │ │05 │ + * └───┘ └───┤ │34 ├───┐ ┌───┤35 │ ├───┘ └───┘ ┌───┐ + * └───┤ │44 │ │45 │ ├───┘ │38+│ + * └───┤ │ │ ├───┘ └───┘ + * └───┘ └───┘ + * + K38 is hidden. + */ +#define LAYOUT( \ + K30, K00, K01, K02, K03, K33, K36, K06, K07, K08, K09, K39, \ + K40, K10, K11, K12, K13, K43, K46, K16, K17, K18, K19, K49, \ + K20, K21, K22, K23, K26, K27, K28, K29, \ + K04, K14, K24, K34, K44, K45, K35, K25, K15, K05, K38 \ +) { \ + { 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, KC_NO, KC_NO, K33, K34, K35, K36, KC_NO, K38, K39 }, \ + { K40, KC_NO, KC_NO, K43, K44, K45, K46, KC_NO, KC_NO, K49 }, \ +} diff --git a/keyboards/handwired/acacia/config.h b/keyboards/handwired/acacia/config.h new file mode 100644 index 000000000000..e3fbdbc9747c --- /dev/null +++ b/keyboards/handwired/acacia/config.h @@ -0,0 +1,23 @@ +/* +Copyright 2022 Jens Peter Secher + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "config_common.h" + +//#define TAPPING_TERM 200 +//#define PERMISSIVE_HOLD diff --git a/keyboards/handwired/acacia/info.json b/keyboards/handwired/acacia/info.json new file mode 100644 index 000000000000..7d2771ff9f1c --- /dev/null +++ b/keyboards/handwired/acacia/info.json @@ -0,0 +1,78 @@ +{ + "keyboard_name": "Acacia", + "manufacturer": "jpsecher", + "maintainer": "jpsecher", + "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/handwired/acacia", + "processor": "atmega32u2", + "bootloader": "atmel-dfu", + "bootloader_instructions": "Enter the bootloader by using the small buttons on the PCB: press the RESET button while connected to QMK Toolbox.", + "diode_direction": "COL2ROW", + "debounce": 5, + "matrix_pins": { + "cols": ["B4", "B3", "B2", "B1", "B0", "D2", "B6", "B7", "C7", "C6"], + "rows": ["B5", "D3", "D4", "D5", "D6"] + }, + "usb": { + "vid": "0x6A70", + "pid": "0x0001", + "device_version": "1.0.0", + "max_power": 20 + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"B", "x":0, "y":0.5}, + {"label":"Q", "x":1, "y":0}, + {"label":"W", "x":2, "y":0}, + {"label":"E", "x":3, "y":0}, + {"label":"R", "x":4, "y":0}, + {"label":"T", "x":5, "y":0.5}, + + {"label":"H", "x":10.5, "y":0.5}, + {"label":"U", "x":11.5, "y":0}, + {"label":"I", "x":12.5, "y":0}, + {"label":"O", "x":13.5, "y":0}, + {"label":"P", "x":14.5, "y":0}, + {"label":"Y", "x":15.5, "y":0.5}, + + {"label":"Tab", "x":0, "y":1.5}, + {"label":"A", "x":1, "y":1}, + {"label":"S", "x":2, "y":1}, + {"label":"D", "x":3, "y":1}, + {"label":"F", "x":4, "y":1}, + {"label":"G", "x":5, "y":1.5}, + + {"label":"N", "x":10.5, "y":1.5}, + {"label":"J", "x":11.5, "y":1}, + {"label":"K", "x":12.5, "y":1}, + {"label":"L", "x":13.5, "y":1}, + {"label":":", "x":14.5, "y":1}, + {"label":"Enter", "x":15.5, "y":1.5}, + + {"label":"Z", "x":1, "y":2}, + {"label":"X", "x":2, "y":2}, + {"label":"C", "x":3, "y":2}, + {"label":"V", "x":4, "y":2}, + + {"label":"M", "x":11.5, "y":2}, + {"label":"<", "x":12.5, "y":2}, + {"label":">", "x":13.5, "y":2}, + {"label":"'", "x":14.5, "y":2}, + + {"label":"Next", "x":2.25, "y":3}, + {"label":"Alt", "x":3.5, "y":3}, + {"label":"BS", "x":4.5, "y":3}, + {"label":"Esc", "x":5.5, "y":3}, + {"label":"Shift", "x":6.5, "y":3}, + + {"label":"RAlt", "x":9.25, "y":3}, + {"label":"Space", "x":10.25, "y":3}, + {"label":"Del", "x":11.25, "y":3}, + {"label":"Alt", "x":12.25, "y":3}, + {"label":"Play", "x":13.5, "y":3}, + + {"label":"Debug", "x":8, "y":1} + ] + } + } +} diff --git a/keyboards/handwired/acacia/keymaps/default/keymap.c b/keyboards/handwired/acacia/keymaps/default/keymap.c new file mode 100644 index 000000000000..a33a3880a691 --- /dev/null +++ b/keyboards/handwired/acacia/keymaps/default/keymap.c @@ -0,0 +1,54 @@ +/* Copyright 2022 Jens Peter Secher + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 SPC_CTL LCTL_T(KC_SPC) +#define DEL_GUI LGUI_T(KC_DEL) +#define DEL_CTL LCTL_T(KC_SPC) +#define OSM_SFT OSM(MOD_LSFT) +#define OSM_ALT OSM(MOD_LALT) +#define ESC_CTL LCTL_T(KC_ESC) +#define BS_GUI LGUI_T(KC_BSPC) +#define BS_SYM LT(_SYM_NUM, KC_BSPC) +#define SPC_NAV LT(_NAVI_FN, KC_SPC) +#define OSM_AGR OSM(MOD_RALT) + +enum layer_names { + _QWERTY, + _NAVI_FN, + _SYM_NUM +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT( + KC_B, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_H, KC_U, KC_I, KC_O, KC_P, KC_Y, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_N, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, + KC_Z, KC_X, KC_C, KC_V, KC_M, KC_COMM, KC_DOT, KC_QUOT, + KC_MNXT, OSM_ALT, BS_SYM, ESC_CTL, OSM_SFT, OSM_AGR, DEL_GUI, SPC_NAV, OSM_ALT, KC_MPLY, DB_TOGG + ), + [_NAVI_FN] = 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_HOME, KC_PGUP, KC_PGDN, KC_END, KC_TILD, KC_GRV, KC_LEFT, KC_UP, KC_RGHT, KC_WREF, KC_ENT, + KC_UNDO, KC_CUT, KC_COPY, KC_PSTE, KC_BTN1, KC_DOWN, KC_BTN2, KC_WBAK, + KC_MPRV, _______, BS_GUI, _______, _______, _______, _______, _______, _______, KC_PWR, _______ + ), + [_SYM_NUM] = LAYOUT( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_7, KC_8, KC_9, KC_ASTR, KC_PLUS, + KC_QUES, KC_SLSH, KC_LBRC, KC_LCBR, KC_LPRN, KC_PIPE, KC_0, KC_4, KC_5, KC_6, KC_MINS, KC_EQL, + KC_BSLS, KC_RBRC, KC_RCBR, KC_RPRN, KC_1, KC_2, KC_3, KC_UNDS, + KC_VOLD, _______, _______, _______, _______, _______, _______, SPC_CTL, _______, KC_VOLU, _______ + ) +}; diff --git a/keyboards/handwired/acacia/readme.md b/keyboards/handwired/acacia/readme.md new file mode 100644 index 000000000000..b9245f0cbdac --- /dev/null +++ b/keyboards/handwired/acacia/readme.md @@ -0,0 +1,22 @@ +# Acacia + +A pseudo-split keyboard with 2+4x3+2 vertically staggered keys and 4+1 thumb keys for each hand. + +* Keyboard Maintainer: [jpsecher](https://github.com/jpsecher) +* Hardware Supported: https://github.com/jpsecher/keyboards/acacia + +Make example for this keyboard (after setting up your build environment): + + make handwired/acacia:default + +Flashing example for this keyboard: + + make handwired/acacia: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. + +## Bootloader + +Enter the bootloader by using the small buttons on the PCB: press the RESET button while connected to QMK Toolbox. + +Then you can flash the HEX file you built above. diff --git a/keyboards/handwired/acacia/rules.mk b/keyboards/handwired/acacia/rules.mk new file mode 100644 index 000000000000..c70b7f10c745 --- /dev/null +++ b/keyboards/handwired/acacia/rules.mk @@ -0,0 +1,7 @@ +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes +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 # N-Key Rollover +LTO_ENABLE = yes # Link-time optimisation for smaller code From d196ab56d3ceb74d8bee9d373fd4eaaf3cc855a3 Mon Sep 17 00:00:00 2001 From: Duccio Date: Fri, 13 Jan 2023 12:08:12 +0100 Subject: [PATCH 059/139] [bluebell/Swoop] Enable RGB underlight by default (#19501) --- keyboards/bluebell/swoop/rules.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/keyboards/bluebell/swoop/rules.mk b/keyboards/bluebell/swoop/rules.mk index c39923dfab44..127e8782acba 100644 --- a/keyboards/bluebell/swoop/rules.mk +++ b/keyboards/bluebell/swoop/rules.mk @@ -13,6 +13,7 @@ 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 +RGBLIGHT_ENABLE = yes # Enable underlight SPLIT_KEYBOARD = yes LAYOUTS = split_3x5_3 From 9c02b2990acfcbd628c38edb3d70dec691390d9c Mon Sep 17 00:00:00 2001 From: gitdrik <58667795+gitdrik@users.noreply.github.com> Date: Fri, 13 Jan 2023 23:19:57 +0100 Subject: [PATCH 060/139] Updates to gitdrik Planck keymap (#19585) --- keyboards/planck/keymaps/gitdrik/config.h | 16 ++++---- keyboards/planck/keymaps/gitdrik/keymap.c | 46 +++++++++++----------- keyboards/planck/keymaps/gitdrik/readme.md | 2 +- 3 files changed, 32 insertions(+), 32 deletions(-) diff --git a/keyboards/planck/keymaps/gitdrik/config.h b/keyboards/planck/keymaps/gitdrik/config.h index 7ee14c73bedb..455e33d6d288 100644 --- a/keyboards/planck/keymaps/gitdrik/config.h +++ b/keyboards/planck/keymaps/gitdrik/config.h @@ -1,4 +1,4 @@ -/* Original code probably copyright 2015-2017 Jack Humbert +/* Copyright 2015-2021 Jack Humbert * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,18 +14,17 @@ * along with this program. If not, see . */ -/* Passed along from planck default to Finnish SFS 5966 by gitdrik, 2020. */ +/* Passed along from planck default to Finnish SFS 5966 by gitdrik, 2020-2023. */ #pragma once #ifdef AUDIO_ENABLE - #define STARTUP_SONG SONG(PLANCK_SOUND) - // #define STARTUP_SONG SONG(NO_SOUND) +# define STARTUP_SONG SONG(NO_SOUND) +//# define STARTUP_SONG SONG(PLANCK_SOUND) +//# define AUDIO_INIT_DELAY // Get startup_song to actually play - #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \ - SONG(COLEMAK_SOUND), \ - SONG(DVORAK_SOUND) \ - } +# define DEFAULT_LAYER_SONGS \ + { SONG(QWERTY_SOUND), SONG(COLEMAK_SOUND), SONG(DVORAK_SOUND) } #endif /* @@ -51,3 +50,4 @@ // Most tactile encoders have detents every 4 stages #define ENCODER_RESOLUTION 4 + diff --git a/keyboards/planck/keymaps/gitdrik/keymap.c b/keyboards/planck/keymaps/gitdrik/keymap.c index 8d9e39b9f491..c62e93671a99 100644 --- a/keyboards/planck/keymaps/gitdrik/keymap.c +++ b/keyboards/planck/keymaps/gitdrik/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2015-2017 Jack Humbert +/* Copyright 2015-2021 Jack Humbert * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,7 +14,7 @@ * along with this program. If not, see . */ -/* Modified from planck default to Finnish SFS 5966 by gitdrik, 2020. */ +/* Modified from planck default to Finnish SFS 5966 by gitdrik, 2020-2023. */ #include QMK_KEYBOARD_H #include "muse.h" @@ -38,35 +38,35 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * | Tab | Q | W | E | R | T | Y | U | I | O | P | Å | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Esc | A | S | D | F | G | H | J | K | L | Ö | Ä | + * | Ctrl | A | S | D | F | G | H | J | K | L | Ö | Ä | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Shift| X | C | V | B | N | M | , | . | Shift| Enter| + * | Esc | Shift| X | C | V | B | N | M | , | . | Shift| Enter| * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Z | GUI | Alt |Left2 | Left |BkSpc | Spc |Right |Rghter| < | - | / | + * | Z | GUI | Alt |Left2 | Left |BkSpc | Spc |Right |Rghter| \ | - | / | * `-----------------------------------------------------------------------------------' */ [_BASE] = LAYOUT_planck_grid( - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, - KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - KC_LCTL, KC_LSFT, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, KC_ENT , - KC_Z, KC_LGUI, KC_LALT, LEFTER, LEFT, KC_BSPC, KC_SPC, RIGHT, RIGHTER, KC_NUBS, KC_SLSH, LSFT(KC_7) + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_ESC, KC_LSFT, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, KC_ENT , + KC_Z, KC_LGUI, KC_LALT, LEFTER, LEFT, KC_BSPC, KC_SPC, RIGHT, RIGHTER, RALT(KC_MINS), KC_SLSH, KC_PSLS ), /* Left * ,-----------------------------------------------------------------------------------. * | Tab | F10 | F9 | F8 | F7 | { | } | 7 | 8 | 9 | ^ | = | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Esc | F11 | F6 | F5 | F4 | ( | ) | 4 | 5 | 6 | + | * | + * | RCtrl| F11 | F6 | F5 | F4 | ( | ) | 4 | 5 | 6 | + | * | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | RCtrl| Shift| F3 | F2 | F1 | [ | ] | 1 | 2 | 3 | Shift| Enter| + * | Esc | Shift| F3 | F2 | F1 | [ | ] | 1 | 2 | 3 | Shift| Enter| * |------+------+------+------+------+------+------+------+------+------+------+------| * | F12 | GUI | Alt |Lefter| Left |BkSpc | Spc |Right | 0 | , | - | / | * `-----------------------------------------------------------------------------------' */ [_LEFT] = LAYOUT_planck_grid( KC_TRNS, KC_F10, KC_F9, KC_F8, KC_F7, RALT(KC_7), RALT(KC_0), KC_7, KC_8, KC_9, LSFT(KC_RBRC), LSFT(KC_0), - KC_TRNS, KC_F11, KC_F6, KC_F5, KC_F4, LSFT(KC_8), LSFT(KC_9), KC_4, KC_5, KC_6, KC_PPLS, KC_PAST, - KC_RCTL, KC_TRNS, KC_F3, KC_F2, KC_F1, RALT(KC_8), RALT(KC_9), KC_1, KC_2, KC_3, KC_TRNS, KC_TRNS, + KC_RCTL, KC_F11, KC_F6, KC_F5, KC_F4, LSFT(KC_8), LSFT(KC_9), KC_4, KC_5, KC_6, KC_PPLS, KC_PAST, + KC_TRNS, KC_TRNS, KC_F3, KC_F2, KC_F1, RALT(KC_8), RALT(KC_9), KC_1, KC_2, KC_3, KC_TRNS, KC_TRNS, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_COMM, KC_PMNS, KC_PSLS ), @@ -74,36 +74,36 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * | Tab | ◌̄ | ◌̈ | ◌́ | ◌̀ | ◌̃ | ◌̆ | Home | Up | End | Ins | PgUp | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Esc | @ | $ | ° | & | # | % | Left | Down | Right| Del | PgDn | + * | RCtrl| @ | $ | ° | & | # | % | Left | Down | Right| Del | PgDn | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | RCtrl| Shift| ” | « | » | ‚ „ | ‰ |PlayPs| << | >> | Shift| Enter| + * | Esc | Shift| ” | « | » | ‚ „ | ‰ |PlayPs| << | >> | Shift| Enter| * |------+------+------+------+------+------+------+------+------+------+------+------| * | “ | GUI | Alt |Lefter| |BkSpc | Spc |Right |Rghter| Vol- | Vol+ | Mute | * `-----------------------------------------------------------------------------------' */ [_RIGHT] = LAYOUT_planck_grid( KC_TRNS, RALT(LSFT(KC_RBRC)), KC_RBRC, KC_EQL , LSFT(KC_EQL), RALT(KC_RBRC), RALT(KC_NUHS), KC_HOME, KC_UP, KC_END , KC_INS , KC_PGUP, - KC_TRNS, RALT(KC_2), RALT(KC_4), RALT(LSFT(KC_0)), LSFT(KC_6), LSFT(KC_3), LSFT(KC_5), KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL, KC_PGDN, - KC_RCTL, KC_TRNS, RALT(LSFT(KC_2)), RALT(LSFT(KC_4)), RALT(LSFT(KC_3)), RALT(KC_6), RALT(KC_5), KC_MPLY, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, - RALT(LSFT(KC_5)), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE + KC_RCTL, RALT(KC_2), RALT(KC_4), RALT(LSFT(KC_0)), LSFT(KC_6), LSFT(KC_3), LSFT(KC_5), KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL, KC_PGDN, + KC_TRNS, KC_TRNS, RALT(LSFT(KC_2)), RALT(LSFT(KC_4)), RALT(LSFT(KC_3)), RALT(KC_6), RALT(KC_5), KC_MPLY, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, + RALT(LSFT(KC_5)), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE ), /* Lefter * ,-----------------------------------------------------------------------------------. * | Tab | § ½ | " | € | | þ Þ | ¡ | ! | ı | œ Œ | ◌̛ ◌̉ | ◌̋ ◌̊ | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Esc | ə Ə | ß ẞ | ð Ð | ' | | | | ĸ | ◌̵ | ø Ø | æ Æ | + * | Ctrl | ə Ə | ß ẞ | ð Ð | ' | < | > | | ĸ | ◌̵ | ø Ø | æ Æ | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Shift| × · | ◌̧ ◌̨ | | \ | ŋ Ŋ | µ — | ’ ‘ | ◌̣ ◌̇ | Shift| Enter| + * | Esc | Shift| × · | ◌̧ ◌̨ | | | ŋ Ŋ | µ — | ’ ‘ | ◌̣ ◌̇ | Shift| Enter| * |------+------+------+------+------+------+------+------+------+------+------+------| * | ʒ Ʒ | GUI | Alt |Lefter| | BkSpc| NbSp | |Rghter| | | – ◌̦ | ? | * `-----------------------------------------------------------------------------------' */ [_LEFTER] = LAYOUT_planck_grid( KC_TRNS, KC_GRV, LSFT(KC_2), RALT(KC_E), RALT(KC_R), RALT(KC_T), RALT(LSFT(KC_1)), LSFT(KC_1), RALT(KC_I), RALT(KC_O), RALT(KC_P), RALT(KC_LBRC), - KC_TRNS, RALT(KC_A),RALT(KC_S), RALT(KC_D), KC_NUHS, RALT(KC_G), RALT(KC_H), RALT(KC_J), RALT(KC_K), RALT(KC_L), RALT(KC_SCLN), RALT(KC_QUOT), - KC_TRNS, KC_TRNS, RALT(KC_X), RALT(KC_EQL), RALT(KC_V), RALT(KC_MINS), RALT(KC_N), RALT(KC_M), RALT(KC_COMM), RALT(KC_DOT), KC_TRNS, KC_TRNS, - RALT(KC_Z),KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RALT(KC_BSPC), RALT(KC_SPC), KC_TRNS, KC_TRNS, RALT(KC_NUBS), RALT(KC_SLSH), LSFT(KC_MINS) + KC_TRNS, RALT(KC_A),RALT(KC_S), RALT(KC_D), KC_NUHS, KC_NUBS, LSFT(KC_NUBS), RALT(KC_J), RALT(KC_K), RALT(KC_L), RALT(KC_SCLN), RALT(KC_QUOT), + KC_TRNS, KC_TRNS, RALT(KC_X), RALT(KC_EQL), RALT(KC_V), RALT(KC_B), RALT(KC_N), RALT(KC_M), RALT(KC_COMM), RALT(KC_DOT), KC_TRNS, KC_TRNS, + RALT(KC_Z),KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RALT(KC_BSPC), RALT(KC_SPC), KC_TRNS, KC_TRNS, RALT(KC_NUBS), RALT(KC_SLSH), LSFT(KC_MINS) ), /* Righter diff --git a/keyboards/planck/keymaps/gitdrik/readme.md b/keyboards/planck/keymaps/gitdrik/readme.md index f064565182e1..44fba1db9a7e 100644 --- a/keyboards/planck/keymaps/gitdrik/readme.md +++ b/keyboards/planck/keymaps/gitdrik/readme.md @@ -1 +1 @@ -# Finnish SFS 5966 layout by gitdrik 2020. +# Finnish SFS 5966 layout by gitdrik 2020-2023. From 3f2cbc9e68fa026ac14471e4ef15c9c349d78f38 Mon Sep 17 00:00:00 2001 From: Renegade-Master Date: Sat, 14 Jan 2023 02:25:07 +0000 Subject: [PATCH 061/139] Pr/reorder docker podman check (#19561) --- util/docker_build.sh | 8 ++++---- util/docker_cmd.sh | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/util/docker_build.sh b/util/docker_build.sh index 7e10a4f76ba2..8dce38732064 100755 --- a/util/docker_build.sh +++ b/util/docker_build.sh @@ -20,13 +20,13 @@ if [ $# -gt 1 ]; then fi # Allow $RUNTIME to be overridden by the user as an environment variable -# Else check if either docker or podman exit and set them as runtime +# Else check if either podman or docker exit and set them as runtime # if none are found error out if [ -z "$RUNTIME" ]; then - if command -v docker >/dev/null 2>&1; then - RUNTIME="docker" - elif command -v podman >/dev/null 2>&1; then + if command -v podman >/dev/null 2>&1; then RUNTIME="podman" + elif command -v docker >/dev/null 2>&1; then + RUNTIME="docker" else errcho "Error: no compatible container runtime found." errcho "Either podman or docker are required." diff --git a/util/docker_cmd.sh b/util/docker_cmd.sh index f3c4c7804f82..a179cef732ce 100755 --- a/util/docker_cmd.sh +++ b/util/docker_cmd.sh @@ -16,13 +16,13 @@ for arg; do done # Allow $RUNTIME to be overridden by the user as an environment variable -# Else check if either docker or podman exit and set them as runtime +# Else check if either podman or docker exit and set them as runtime # if none are found error out if [ -z "$RUNTIME" ]; then - if command -v docker >/dev/null 2>&1; then - RUNTIME="docker" - elif command -v podman >/dev/null 2>&1; then + if command -v podman >/dev/null 2>&1; then RUNTIME="podman" + elif command -v docker >/dev/null 2>&1; then + RUNTIME="docker" else errcho "Error: no compatible container runtime found." errcho "Either podman or docker are required." From 4a53d9c4318ebc97655699d98e5bc0967d003f28 Mon Sep 17 00:00:00 2001 From: Bastien BALOUP <35816948+Bastien-Baloup@users.noreply.github.com> Date: Sun, 15 Jan 2023 04:46:13 +0100 Subject: [PATCH 062/139] [Keymap] Add Bastian-Baloup sofle keymap (#18836) Co-authored-by: Ryan --- .../sofle/keymaps/bastien-baloup_fr/config.h | 54 +++++ .../sofle/keymaps/bastien-baloup_fr/keymap.c | 211 ++++++++++++++++++ .../sofle/keymaps/bastien-baloup_fr/readme.md | 5 + .../sofle/keymaps/bastien-baloup_fr/rules.mk | 9 + 4 files changed, 279 insertions(+) create mode 100644 keyboards/sofle/keymaps/bastien-baloup_fr/config.h create mode 100644 keyboards/sofle/keymaps/bastien-baloup_fr/keymap.c create mode 100644 keyboards/sofle/keymaps/bastien-baloup_fr/readme.md create mode 100644 keyboards/sofle/keymaps/bastien-baloup_fr/rules.mk diff --git a/keyboards/sofle/keymaps/bastien-baloup_fr/config.h b/keyboards/sofle/keymaps/bastien-baloup_fr/config.h new file mode 100644 index 000000000000..f15cd7b8fb2b --- /dev/null +++ b/keyboards/sofle/keymaps/bastien-baloup_fr/config.h @@ -0,0 +1,54 @@ + /* Copyright 2022 Bastien Baloup + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +// More lighting options in quantum/rgblight/rgblight.h +#ifdef RGBLIGHT_ENABLE + + // Disabling some of these is a good way to save flash space. +// #define RGBLIGHT_EFFECT_ALTERNATING +// #define RGBLIGHT_EFFECT_RGB_TEST +// #define RGBLIGHT_EFFECT_RAINBOW_MOOD +// #define RGBLIGHT_EFFECT_STATIC_GRADIENT + #define RGBLIGHT_EFFECT_RAINBOW_SWIRL +// #define RGBLIGHT_EFFECT_BREATHING +// #define RGBLIGHT_EFFECT_KNIGHT +// #define RGBLIGHT_EFFECT_SNAKE +// #define RGBLIGHT_EFFECT_CHRISTMAS +// #define RGBLIGHT_EFFECT_TWINKLE + + // Set default lighting option + #define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL+2 + // Allow use of LEDs as modifier/layer indicators without disrupting animations. + #define RGBLIGHT_LAYERS + + // Allow compiling to work on sofle/rev1 + #if defined(KEYBOARD_sofle_rev1) + #define RGBLED_NUM 70 + // D3 for ws2812 RGB LED + #define RGB_DI_PIN D3 + #endif +#endif + +// Disabled to save space +#define NO_ACTION_ONESHOT +#define NO_MUSIC_MODE +#undef LOCKING_SUPPORT_ENABLE +#undef LOCKING_RESYNC_ENABLE + +// Limit the number of layers that the firmware can use to save space +#define LAYER_STATE_8BIT diff --git a/keyboards/sofle/keymaps/bastien-baloup_fr/keymap.c b/keyboards/sofle/keymaps/bastien-baloup_fr/keymap.c new file mode 100644 index 000000000000..8b9746837662 --- /dev/null +++ b/keyboards/sofle/keymaps/bastien-baloup_fr/keymap.c @@ -0,0 +1,211 @@ + /* Copyright 2022 Bastien Baloup + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 { + // CL_ keycodes are here for charaters that need capslock on to be inputed. + CL_AGRV = SAFE_RANGE, // À + CL_EACU, // É + CL_EGRV, // È + // UC_ keycodes uses (ctrl+shift+u)+code+enter to input unicode. + // I do not use the qmk unicode implementation because it does not uses the right keycodes to input numbers in a french layout. + UC_PI , // π + UC_ELIP // … +}; + +// Following keymaps are made for the french ISO keyboard layout + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* + * LOWERcase + * ,-----------------------------------------. ,-----------------------------------------. + * | ² | & | é | " | ' | ^ | | ¨ | è | % | ç | à | TG3 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ESC | a | z | e | r | t | | y | u | i | o | p | Bspc | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | q | s | d | f | g |-------. ,-------| h | j | k | l | m | ù | + * |------+------+------+------+------+------| | | Mute |------+------+------+------+------+------| + * | MO1 | w | x | c | v | b |-------| |-------| n | , | ; | : | ! | MO1 | + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR | MO2 | /Enter / \Space \ | MO3 | RCTR | RAlt | HYPER| + * | | | | |/ / \ \ | | | | | + * `-----------------------------------' '------''---------------------------' + */ + +[0] = LAYOUT( + KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_LBRC, S(KC_LBRC), KC_7 , S(KC_QUOT), KC_9 , KC_0 , TG(3) , + KC_ESC , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_BSPC, + KC_TAB , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, + MO(1) , KC_Z , KC_X , KC_C , KC_V , KC_B , XXXXXXX, KC_MUTE, KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH, MO(1) , + KC_LGUI, KC_LALT, KC_LCTL, MO(2) , KC_ENT, KC_SPC, MO(3) , KC_RCTL, KC_RALT, KC_HYPR +), +// I use a uppercase layer instead of using the Shift key because I find it easier to change the effect of shift+key chords this way. +/* + * UPPERcase + * ,-----------------------------------------. ,-----------------------------------------. + * | | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | TG3 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ESC | A | Z | E | R | T | | Y | U | I | O | P | Bspc | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | TAB | Q | S | D | F | G |-------. ,-------| H | J | K | L | M | µ | + * |------+------+------+------+------+------| | | Mute |------+------+------+------+------+------| + * | MO1 | W | X | C | V | B |-------| |-------| N | ? | . | / | § | MO1 | + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR | MO2 | /Enter / \Space \ | MO3 | RCTR | RAlt | HYPER| + * | | | | |/ / \ \ | | | | | + * `-----------------------------------' '------''---------------------------' + */ +[1] = LAYOUT( + _______, S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6) , S(KC_7), S(KC_8) , S(KC_9) , S(KC_0) , _______ , + _______, S(KC_Q), S(KC_W), S(KC_E), S(KC_R), S(KC_T), S(KC_Y) , S(KC_U), S(KC_I) , S(KC_O) , S(KC_P) , _______ , + _______, S(KC_A), S(KC_S), S(KC_D), S(KC_F), S(KC_G), S(KC_H) , S(KC_J), S(KC_K) , S(KC_L) , S(KC_SCLN), S(KC_NUHS), + _______, S(KC_Z), S(KC_X), S(KC_C), S(KC_V), S(KC_B), _______, _______, S(KC_N) , S(KC_M), S(KC_COMM), S(KC_DOT), S(KC_SLSH), _______ , + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), + +// I replaced MO1 with the Shift key in the next layers to be able to use it for some shortcuts. + +/* SYMBOLS + * ,-----------------------------------------. ,-----------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ESC | À | È | É | ( | ) | | = | | | \ | · | @ | Bspc | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | ` | ~ | # | < | > |-------. ,-------| + | - | / | * | ° | … | + * |------+------+------+------+------+------| | | Play |------+------+------+------+------+------| + * | Shift| ¤ | [ | ] | { | } |-------| |-------| π | _ | € | $ | £ | Shift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR | MO2 | /Enter / \Space \ | MO3 | RCTR | RAlt | HYPER|~ + * | | | | |/ / \ \ | | | | | + * `-----------------------------------' '------''---------------------------' + */ +[2] = LAYOUT( + KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , + _______, CL_AGRV , CL_EGRV , CL_EACU , KC_5 , KC_MINS , KC_EQL , ALGR(KC_6), ALGR(KC_8), ALGR(KC_COMM), ALGR(KC_0), _______, + _______, ALGR(KC_7) , ALGR(KC_2), ALGR(KC_3) , KC_NUBS , S(KC_NUBS) , S(KC_EQL), KC_6 , S(KC_DOT) , KC_NUHS , S(KC_MINS), UC_ELIP, + KC_LSFT, ALGR(KC_RBRC), ALGR(KC_5), ALGR(KC_MINS), ALGR(KC_4), ALGR(KC_EQL), _______, KC_MPLY, UC_PI , KC_8 , ALGR(KC_E), KC_RBRC , S(KC_RBRC), KC_RSFT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), +/* UTILS + * ,----------------------------------------. ,-----------------------------------------. + * | | & | é | " | ( | ^ | | CLock|PScr |ScLock| Pause| Ins | TG3 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Esc | a | z | e | r | t | | PgUp | Home | Up | End | Del | Bspc | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | q | s | d | f | g |-------. ,-------| PgDo | Left | Down | Rigth|CALeft|CARigt| + * |------+------+------+------+------+------| | | Play |------+------+------+------+------+------| + * |Shift | w | x | c | v | b |-------| |-------| | PWrd | | NWrd | Menu | Shift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR | MO2 | /Enter / \Space \ | MO3 | RCTR | RAlt | HYPER| + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ +[3] = LAYOUT( + _______, _______, _______, _______, _______, _______, KC_CAPS, KC_PSCR , KC_SCRL, KC_PAUS , KC_INS , _______ , + _______, _______, _______, _______, _______, _______, KC_PGUP, KC_HOME , KC_UP , KC_END , KC_DEL , _______ , + _______, _______, _______, _______, _______, _______, KC_PGDN, KC_LEFT , KC_DOWN, KC_RGHT , C(A(KC_LEFT)), C(A(KC_RGHT)), + KC_LSFT, _______, _______, _______, _______, _______, _______, KC_MPLY, XXXXXXX, C(KC_LEFT), XXXXXXX, C(KC_RGHT), KC_MENU , KC_RSFT , + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +) +}; + +// Custom keycode handling. +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + // handling this once instead of in each keycode uses less program memory. + if (record->event.pressed) { + switch (keycode) { + case CL_AGRV: + // capsLockOn à capsLockOff + SEND_STRING(SS_TAP(X_CAPS)"0"SS_TAP(X_CAPS)); + break; + case CL_EACU: + // capsLockOn é capsLockOff + SEND_STRING(SS_TAP(X_CAPS)"2"SS_TAP(X_CAPS)); + break; + case CL_EGRV: + // capsLockOn è capsLockOff + SEND_STRING(SS_TAP(X_CAPS)"7"SS_TAP(X_CAPS)); + break; + case UC_PI: + // Ctrl+Shift+u 3CO Enter + tap_code16(LCTL(LSFT(KC_U))); + tap_code16(S(KC_3)); + tap_code16(KC_C); + tap_code16(S(KC_0)); + tap_code16(KC_ENT); + break; + case UC_ELIP: + // Ctrl+Shift+u 2026 Enter + tap_code16(LCTL(LSFT(KC_U))); + tap_code16(S(KC_2)); + tap_code16(S(KC_0)); + tap_code16(S(KC_2)); + tap_code16(S(KC_6)); + tap_code16(KC_ENT); + break; + } + } + // this uses less memory than returning in each case. + return keycode < SAFE_RANGE; +}; + +#if defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE) +// This section is like the keymap matrix, but for rotary encoders +// My left encoder is currently not working, so I'm using Layers instead +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [0] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(KC_VOLU, KC_VOLD)}, + [1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(KC_VOLU, KC_VOLD)}, + [2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(KC_MNXT, KC_MPRV)}, + [3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(KC_MNXT, KC_MPRV)}, +}; +#endif + +#ifdef RGBLIGHT_ENABLE +// This section define RGB_Lighting overrides by layers + +const rgblight_segment_t PROGMEM rgb_layer_1[] = RGBLIGHT_LAYER_SEGMENTS( + {30, 6, HSV_TURQUOISE}, + {38, 6, HSV_TURQUOISE} +); +const rgblight_segment_t PROGMEM rgb_layer_2[] = RGBLIGHT_LAYER_SEGMENTS( + {30, 6, HSV_TEAL}, + {38, 6, HSV_TEAL} +); +const rgblight_segment_t PROGMEM rgb_layer_3[] = RGBLIGHT_LAYER_SEGMENTS( + {38, 6, HSV_PURPLE} +); + +const rgblight_segment_t* const PROGMEM rgb_layers[] = RGBLIGHT_LAYERS_LIST( + rgb_layer_1, // Overrides for layer 1 + rgb_layer_2, // Overrides for layer 2 + rgb_layer_3 // Overrides for layer 3 +); + +// Enable the LED layers +void keyboard_post_init_user(void) { + rgblight_layers = rgb_layers; +} + +// Set activation conditions for each LED layers +layer_state_t layer_state_set_user(layer_state_t state) { + rgblight_set_layer_state(0, layer_state_cmp(state, 1)); + rgblight_set_layer_state(1, layer_state_cmp(state, 2)); + rgblight_set_layer_state(2, layer_state_cmp(state, 3)); + return state; +} + +#endif diff --git a/keyboards/sofle/keymaps/bastien-baloup_fr/readme.md b/keyboards/sofle/keymaps/bastien-baloup_fr/readme.md new file mode 100644 index 000000000000..315f172a7473 --- /dev/null +++ b/keyboards/sofle/keymaps/bastien-baloup_fr/readme.md @@ -0,0 +1,5 @@ +![Bastien-Baloup_FR keymap for sofle keyboard](https://i.imgur.com/Zlv1dj1h.jpg) + +# Bastien-Baloup's French keymap for sofle keyboard + +Keymap based on the french azerty keyboard layout. diff --git a/keyboards/sofle/keymaps/bastien-baloup_fr/rules.mk b/keyboards/sofle/keymaps/bastien-baloup_fr/rules.mk new file mode 100644 index 000000000000..e3a0bd51934f --- /dev/null +++ b/keyboards/sofle/keymaps/bastien-baloup_fr/rules.mk @@ -0,0 +1,9 @@ +RGBLIGHT_ENABLE = yes +EXTRAKEY_ENABLE = yes +LTO_ENABLE = yes +ENCODER_ENABLE = yes +ENCODER_MAP_ENABLE = yes +OLED_ENABLE = no +SPACE_CADET_ENABLE = no +GRAVE_ESC_ENABLE = no +MAGIC_ENABLE = no From e7d1b210ba89ad174f1011488f9f6a0cbab28f89 Mon Sep 17 00:00:00 2001 From: jurassic73 <50930136+jurassic73@users.noreply.github.com> Date: Sat, 14 Jan 2023 19:58:09 -0800 Subject: [PATCH 063/139] [Keyboard] Update handwired/split89 to new standard. (#19540) Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> --- keyboards/handwired/split89/info.json | 92 ++++++++++++++++++- .../split89/keymaps/default/keymap.c | 30 +++--- keyboards/handwired/split89/split89.c | 17 ---- keyboards/handwired/split89/split89.h | 50 ---------- 4 files changed, 106 insertions(+), 83 deletions(-) delete mode 100644 keyboards/handwired/split89/split89.c delete mode 100644 keyboards/handwired/split89/split89.h diff --git a/keyboards/handwired/split89/info.json b/keyboards/handwired/split89/info.json index fda9b2c9f00c..e4b98e458c62 100644 --- a/keyboards/handwired/split89/info.json +++ b/keyboards/handwired/split89/info.json @@ -10,7 +10,97 @@ }, "layouts": { "LAYOUT": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6, "y":0}, {"label":"F6", "x":10.25, "y":0}, {"label":"F7", "x":11.25, "y":0}, {"label":"F8", "x":12.25, "y":0}, {"label":"F9", "x":13.75, "y":0}, {"label":"F10", "x":14.75, "y":0}, {"label":"F11", "x":15.75, "y":0}, {"label":"F12", "x":16.75, "y":0}, {"label":"PrtSc", "x":18, "y":0}, {"label":"Scroll Lock", "x":19, "y":0}, {"label":"Pause", "x":20, "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":9.75, "y":1.5}, {"label":"*", "x":10.75, "y":1.5}, {"label":"(", "x":11.75, "y":1.5}, {"label":")", "x":12.75, "y":1.5}, {"label":"_", "x":13.75, "y":1.5}, {"label":"+", "x":14.75, "y":1.5}, {"label":"Backspace", "x":15.75, "y":1.5, "w":2}, {"label":"Insert", "x":18, "y":1.5}, {"label":"Home", "x":19, "y":1.5}, {"label":"PgUp", "x":20, "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":9.25, "y":2.5}, {"label":"U", "x":10.25, "y":2.5}, {"label":"I", "x":11.25, "y":2.5}, {"label":"O", "x":12.25, "y":2.5}, {"label":"P", "x":13.25, "y":2.5}, {"label":"{", "x":14.25, "y":2.5}, {"label":"}", "x":15.25, "y":2.5}, {"label":"|", "x":16.25, "y":2.5, "w":1.5}, {"label":"Delete", "x":18, "y":2.5}, {"label":"End", "x":19, "y":2.5}, {"label":"PgDn", "x":20, "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":9.5, "y":3.5}, {"label":"J", "x":10.5, "y":3.5}, {"label":"K", "x":11.5, "y":3.5}, {"label":"L", "x":12.5, "y":3.5}, {"label":":", "x":13.5, "y":3.5}, {"label":"\"", "x":14.5, "y":3.5}, {"label":"Enter", "x":15.5, "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":10, "y":4.5}, {"label":"M", "x":11, "y":4.5}, {"label":"<", "x":12, "y":4.5}, {"label":">", "x":13, "y":4.5}, {"label":"?", "x":14, "y":4.5}, {"label":"Shift", "x":15, "y":4.5, "w":2.75}, {"label":"\u2191", "x":19, "y":4.5}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Fn", "x":1.25, "y":5.5, "w":1.25}, {"label":"Win", "x":2.5, "y":5.5, "w":1.25}, {"label":"Alt", "x":3.75, "y":5.5, "w":1.25}, {"x":5, "y":5.5, "w":2.25}, {"x":10, "y":5.5, "w":2.75}, {"label":"Alt", "x":12.75, "y":5.5, "w":1.25}, {"label":"Win", "x":14, "y":5.5, "w":1.25}, {"label":"Menu", "x":15.25, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":16.5, "y":5.5, "w":1.25}, {"label":"\u2190", "x":18, "y":5.5}, {"label":"\u2193", "x":19, "y":5.5}, {"label":"\u2192", "x":20, "y":5.5}] + "layout": [ + {"label":"Esc", "matrix": [0, 4], "x":0 , "y":0}, + {"label":"F1" , "matrix": [0, 5], "x":2 , "y":0}, + {"label":"F2" , "matrix": [0, 6], "x":3 , "y":0}, + {"label":"F3" , "matrix": [0, 7], "x":4 , "y":0}, + {"label":"F4" , "matrix": [0, 8], "x":5 , "y":0}, + {"label":"F5" , "matrix": [0, 9], "x":6 , "y":0}, + {"label":"F6" , "matrix": [6, 0], "x":10.25 , "y":0}, + {"label":"F7" , "matrix": [6, 1], "x":11.25 , "y":0}, + {"label":"F8" , "matrix": [6, 2], "x":12.25 , "y":0}, + {"label":"F9" , "matrix": [6, 3], "x":13.75 , "y":0}, + {"label":"F10" , "matrix": [6, 4], "x":14.75 , "y":0}, + {"label":"F11" , "matrix": [6, 5], "x":15.75 , "y":0}, + {"label":"F12" , "matrix": [6, 6], "x":16.75 , "y":0}, + {"label":"PrtSc" , "matrix": [6, 7], "x":18 , "y":0}, + {"label":"Scroll Lock" , "matrix": [6, 8], "x":19 , "y":0}, + {"label":"Pause" , "matrix": [6, 9], "x":20 , "y":0}, + {"label":"~" , "matrix": [2, 4], "x":0 , "y":1.5}, + {"label":"1!" , "matrix": [1, 4], "x":1 , "y":1.5}, + {"label":"2@" , "matrix": [1, 5], "x":2 , "y":1.5}, + {"label":"3#" , "matrix": [1, 6], "x":3 , "y":1.5}, + {"label":"4$" , "matrix": [1, 7], "x":4 , "y":1.5}, + {"label":"5%" , "matrix": [1, 8], "x":5 , "y":1.5}, + {"label":"6^" , "matrix": [1, 9], "x":6 , "y":1.5}, + {"label":"7&" , "matrix": [7, 0], "x":9.75 , "y":1.5}, + {"label":"8*" , "matrix": [7, 1], "x":10.75 , "y":1.5}, + {"label":"9(" , "matrix": [7, 2], "x":11.75 , "y":1.5}, + {"label":"0)" , "matrix": [7, 3], "x":12.75 , "y":1.5}, + {"label":"-_" , "matrix": [7, 4], "x":13.75 , "y":1.5}, + {"label":"=+" , "matrix": [7, 5], "x":14.75 , "y":1.5}, + {"label":"Backspace" , "matrix": [7, 6], "x":15.75 , "y":1.5 , "w":2}, + {"label":"Insert" , "matrix": [7, 7], "x":18 , "y":1.5}, + {"label":"Home" , "matrix": [7, 8], "x":19 , "y":1.5}, + {"label":"PgUp" , "matrix": [7, 9], "x":20 , "y":1.5}, + {"label":"Tab" , "matrix": [3, 4], "x":0 , "y":2.5 , "w":1.5}, + {"label":"Q" , "matrix": [2, 5], "x":1.5 , "y":2.5}, + {"label":"W" , "matrix": [2, 6], "x":2.5 , "y":2.5}, + {"label":"E" , "matrix": [2, 7], "x":3.5 , "y":2.5}, + {"label":"R" , "matrix": [2, 8], "x":4.5 , "y":2.5}, + {"label":"T" , "matrix": [2, 9], "x":5.5 , "y":2.5}, + {"label":"Y" , "matrix": [9, 0], "x":9.25 , "y":2.5}, + {"label":"U" , "matrix": [8, 0], "x":10.25 , "y":2.5}, + {"label":"I" , "matrix": [8, 1], "x":11.25 , "y":2.5}, + {"label":"O" , "matrix": [8, 2], "x":12.25 , "y":2.5}, + {"label":"P" , "matrix": [8, 3], "x":13.25 , "y":2.5}, + {"label":"{" , "matrix": [8, 4], "x":14.25 , "y":2.5}, + {"label":"}" , "matrix": [8, 5], "x":15.25 , "y":2.5}, + {"label":"|" , "matrix": [8, 6], "x":16.25 , "y":2.5 , "w":1.5}, + {"label":"Delete" , "matrix": [8, 7], "x":18 , "y":2.5}, + {"label":"End" , "matrix": [8, 8], "x":19 , "y":2.5}, + {"label":"PgDn" , "matrix": [8, 9], "x":20 , "y":2.5}, + {"label":"Caps Lock" , "matrix": [4, 4], "x":0 , "y":3.5 , "w":1.75}, + {"label":"A" , "matrix": [3, 5], "x":1.75 , "y":3.5}, + {"label":"S" , "matrix": [3, 6], "x":2.75 , "y":3.5}, + {"label":"D" , "matrix": [3, 7], "x":3.75 , "y":3.5}, + {"label":"F" , "matrix": [3, 8], "x":4.75 , "y":3.5}, + {"label":"G" , "matrix": [3, 9], "x":5.75 , "y":3.5}, + {"label":"H" , "matrix": [10, 0], "x":9.5 , "y":3.5}, + {"label":"J" , "matrix": [9, 1], "x":10.5 , "y":3.5}, + {"label":"K" , "matrix": [9, 2], "x":11.5 , "y":3.5}, + {"label":"L" , "matrix": [9, 3], "x":12.5 , "y":3.5}, + {"label":":" , "matrix": [9, 4], "x":13.5 , "y":3.5}, + {"label":"\"" , "matrix": [9, 5], "x":14.5 , "y":3.5}, + {"label":"Enter" , "matrix": [9, 6], "x":15.5 , "y":3.5 , "w":2.25}, + {"label":"Shift" , "matrix": [5, 4], "x":0 , "y":4.5 , "w":2.25}, + {"label":"Z" , "matrix": [4, 5], "x":2.25 , "y":4.5}, + {"label":"X" , "matrix": [4, 6], "x":3.25 , "y":4.5}, + {"label":"C" , "matrix": [4, 7], "x":4.25 , "y":4.5}, + {"label":"V" , "matrix": [4, 8], "x":5.25 , "y":4.5}, + {"label":"B" , "matrix": [4, 9], "x":6.25 , "y":4.5}, + {"label":"N" , "matrix": [11, 0], "x":10 , "y":4.5}, + {"label":"M" , "matrix": [10, 1], "x":11 , "y":4.5}, + {"label":"<" , "matrix": [10, 2], "x":12 , "y":4.5}, + {"label":">" , "matrix": [10, 3], "x":13 , "y":4.5}, + {"label":"?" , "matrix": [10, 4], "x":14 , "y":4.5}, + {"label":"Shift" , "matrix": [10, 6], "x":15 , "y":4.5 , "w":2.75}, + {"label":"\u2191" , "matrix": [10, 8], "x":19 , "y":4.5}, + {"label":"Ctrl" , "matrix": [5, 5], "x":0 , "y":5.5 , "w":1.25}, + {"label":"Fn" , "matrix": [5, 6], "x":1.25 , "y":5.5 , "w":1.25}, + {"label":"Win" , "matrix": [5, 7], "x":2.5 , "y":5.5 , "w":1.25}, + {"label":"Alt" , "matrix": [5, 8], "x":3.75 , "y":5.5 , "w":1.25}, + {"label":"Space" , "matrix": [5, 9], "x":5 , "y":5.5 , "w":2.25}, + {"label":"Space" , "matrix": [11, 1], "x":10 , "y":5.5 , "w":2.75}, + {"label":"Alt" , "matrix": [11, 3], "x":12.75 , "y":5.5 , "w":1.25}, + {"label":"Win" , "matrix": [11, 4], "x":14 , "y":5.5 , "w":1.25}, + {"label":"Menu" , "matrix": [11, 5], "x":15.25 , "y":5.5 , "w":1.25}, + {"label":"Ctrl" , "matrix": [11, 6], "x":16.5 , "y":5.5 , "w":1.25}, + {"label":"\u2190" , "matrix": [11, 7], "x":18 , "y":5.5}, + {"label":"\u2193" , "matrix": [11, 8], "x":19 , "y":5.5}, + {"label":"\u2192" , "matrix": [11, 9], "x":20 , "y":5.5} + ] } } } diff --git a/keyboards/handwired/split89/keymaps/default/keymap.c b/keyboards/handwired/split89/keymaps/default/keymap.c index 393bfc6758a9..fef2a50c2ce4 100644 --- a/keyboards/handwired/split89/keymaps/default/keymap.c +++ b/keyboards/handwired/split89/keymaps/default/keymap.c @@ -21,22 +21,22 @@ enum layer_names { AUD, }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Base */ + /* BASE */ [0] = LAYOUT( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, - KC_GRV,KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB,KC_Q, KC_W, KC_E, KC_R, KC_T, KC_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_Y, 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_H, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL,MO(1),KC_LGUI,KC_LALT,KC_SPACE, KC_N, KC_SPACE, KC_RALT,KC_RGUI, KC_APP, 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_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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, MO(1), KC_LGUI,KC_LALT,KC_SPACE,KC_SPACE,KC_RALT,KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - /* Volume */ + /* AUD */ [1] = LAYOUT( - KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, - KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, - KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, - KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, - KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_VOLU, - KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_MEDIA_PLAY_PAUSE, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT - ), + KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, + KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, + KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_MEDIA_PLAY_PAUSE,KC_MEDIA_PLAY_PAUSE,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT + ) }; diff --git a/keyboards/handwired/split89/split89.c b/keyboards/handwired/split89/split89.c deleted file mode 100644 index 8cceee9c591b..000000000000 --- a/keyboards/handwired/split89/split89.c +++ /dev/null @@ -1,17 +0,0 @@ -/* Copyright 2021 jurassic73 - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "split89.h" diff --git a/keyboards/handwired/split89/split89.h b/keyboards/handwired/split89/split89.h deleted file mode 100644 index 7e94027078bb..000000000000 --- a/keyboards/handwired/split89/split89.h +++ /dev/null @@ -1,50 +0,0 @@ -/* Copyright 2021 jurassic73 - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for 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 minus blanks in the matrix. - * - * The second converts the arguments into a two-dimensional array which - * represents the switch matrix which includes blanks in the wired out matrix. - */ -#define LAYOUT( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, k14, k15, \ - k32, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k30, k31, \ - k48, k33, k34, k35, k36, k37, k54, k38, k39, k40, k41, k42, k43, k44, k45, k46, k47, \ - k61, k49, k50, k51, k52, k53, k67, k55, k56, k57, k58, k59, k60, \ - k74, k62, k63, k64, k65, k66, k80, k68, k69, k70, k71, k72, k73, \ - k75, k76, k77, k78, k79, k81, k82, k83, k84, k85, k86, k87, k88 \ - ) \ - { \ - { KC_NO, KC_NO, KC_NO, KC_NO, k00, k01, k02, k03, k04, k05 }, \ - { KC_NO, KC_NO, KC_NO, KC_NO, k16, k17, k18, k19, k20, k21 }, \ - { KC_NO, KC_NO, KC_NO, KC_NO, k32, k33, k34, k35, k36, k37 }, \ - { KC_NO, KC_NO, KC_NO, KC_NO, k48, k49, k50, k51, k52, k53 }, \ - { KC_NO, KC_NO, KC_NO, KC_NO, k61, k62, k63, k64, k65, k66, }, \ - { KC_NO, KC_NO, KC_NO, KC_NO, k74, k75, k76, k77, k78, k79, }, \ - { k06, k07, k08, k09, k10, k11, k12, k13, k14, k15 }, \ - { k22, k23, k24, k25, k26, k27, k28, k29, k30, k31 }, \ - { k38, k39, k40, k41, k42, k43, k44, k45, k46, k47 }, \ - { k54, k55, k56, k57, k58, k59, k60, KC_NO, KC_NO, KC_NO }, \ - { k67, k68, k69, k70, k71, KC_NO, k72, KC_NO, k73, KC_NO }, \ - { k80, k81, KC_NO, k82, k83, k84, k85, k86, k87, k88 } \ -} From 2c98e795f7a857596ef550708bf0baf8b9d92154 Mon Sep 17 00:00:00 2001 From: jack <0x6A73@pm.me> Date: Sun, 15 Jan 2023 01:03:16 -0700 Subject: [PATCH 064/139] [Keyboard] Fixup gingko65 matrix pins (#19589) --- keyboards/mokey/ginkgo65/config.h | 34 +++--------------------------- keyboards/mokey/ginkgo65/info.json | 11 ++++++++++ 2 files changed, 14 insertions(+), 31 deletions(-) diff --git a/keyboards/mokey/ginkgo65/config.h b/keyboards/mokey/ginkgo65/config.h index 66057442216b..320718238af7 100644 --- a/keyboards/mokey/ginkgo65/config.h +++ b/keyboards/mokey/ginkgo65/config.h @@ -1,33 +1,5 @@ -/* -Copyright 2021 Kyle McCreery -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ -#pragma once - -#include "config_common.h" - -/* key matrix size */ -#define MATRIX_ROWS 5 -#define MATRIX_COLS 16 - /* 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ -#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, B1 } -#define DIODE_DIRECTION COL2ROW +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later -#define BACKLIGHT_PIN B6 -#define BACKLIGHT_LEVELS 6 +#pragma once #define BACKLIGHT_CAPS_LOCK -#define BACKLIGHT_BREATHING -#define BREATHING_PERIOD 5 - -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCE 5 diff --git a/keyboards/mokey/ginkgo65/info.json b/keyboards/mokey/ginkgo65/info.json index 462d1869b696..220bd79ad8fc 100644 --- a/keyboards/mokey/ginkgo65/info.json +++ b/keyboards/mokey/ginkgo65/info.json @@ -8,6 +8,17 @@ "pid": "0x3365", "device_version": "0.0.1" }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["C7", "F6", "F5", "F4", "F1", "E6", "D0", "D1", "D2", "D3", "D5", "D4", "D6", "D7", "B4", "B5"], + "rows": ["B0", "B1", "B2", "B3", "F7"] + }, + "backlight": { + "pin": "B6", + "levels": 6, + "breathing": true, + "breathing_period": 5 + }, "layout_aliases": { "LAYOUT": "LAYOUT_65_ansi_blocker" }, From 44bcde102d7db3ff80ab01e5377cb3ff8f574afa Mon Sep 17 00:00:00 2001 From: Christian Brauner Date: Sun, 15 Jan 2023 09:03:27 +0100 Subject: [PATCH 065/139] [Keymap] Update brauner preonic layout (#19595) --- keyboards/preonic/keymaps/brauner/keymap.c | 81 ++++++++++++---------- 1 file changed, 43 insertions(+), 38 deletions(-) diff --git a/keyboards/preonic/keymaps/brauner/keymap.c b/keyboards/preonic/keymaps/brauner/keymap.c index d1edec002d29..13b3b7b97145 100644 --- a/keyboards/preonic/keymaps/brauner/keymap.c +++ b/keyboards/preonic/keymaps/brauner/keymap.c @@ -142,24 +142,24 @@ const key_override_t **key_overrides = (const key_override_t *[]){ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty - * ,------------------------------------------------------------------------------------------------------------------------------------------------. - * | Caps Lock| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Leader | - * |----------+------+--------------------+-----------+------------+---------------+-----------+------------+------+------+------------+------------| - * | Ctrl | Q | W | E | R | T | Copy/Y | Ü/U | I | Ö/O | Paste/P | Ctrl | - * |----------+------+--------------------+-----------+------------+---------------------------+------------+------+------+------------+------------| - * | Shift/Esc| Ä/A | ß/S | D | F | G | H | J | K | L | ' | Shift/Enter| - * |----------+------+--------------------+-----------+------------+---------------|-----------+------------+------+------+------------+------------| - * | | Z | Cut/X | C | V | B | N | M | , | . | / | | - * |----------+------+--------------------+-----------+------------+---------------+-----------+------------+------+------+------------+------------| - * | | |Compositor+Alt+Shift| Raise |Lower/Space | Compositor+Alt| Mouse |Lower/Space |Raise | | | Manage | - * `------------------------------------------------------------------------------------------------------------------------------------------------' + * ,------------------------------------------------------------------------------------------------------------------------------------. + * | Caps Lock | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Leader | + * |--------------+--------------------+------+------+------+------+-----------+------+------+------+--------------------+--------------| + * | Ctrl | Q | W | E | R | T | Y/Copy | U/Ü | I | O/Ö | P/Paste | Ctrl | + * |--------------+--------------------+------+------+------+------+-----------+------+------+------+--------------------+--------------| + * | Shift/Esc | A/Ä | S/ß | D | F | G | H | J | K | L | ' | Shift/Enter | + * |--------------+--------------------+------+------+------+------+-----------+------+------+------+--------------------+--------------| + * |Compositor+Alt| Z |X/Cut | C | V | B | N | M | , | . | / |Compositor+Alt| + * |--------------+--------------------+------+------+------+------+-----------+------+------+------+--------------------+--------------| + * | |Compositor+Alt+Shift| | |Raise |Lower |Lower/Space|Raise | | |Compositor+Alt+Shift| Manage | + * `------------------------------------------------------------------------------------------------------------------------------------' */ [_QWERTY] = LAYOUT_preonic_grid( - KC_CAPS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LEAD, - KC_LCTL, KC_Q, KC_W, KC_E, KC_R, KC_T, LT_COPY_Y, LT_UE_U, KC_I, LT_OE_O, LT_PASTE_P, KC_RCTL, - MOD_TAP_LSFT_ESC, LT_AE_A, LT_SZ_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, MOD_TAP_LSFT_ENT, - _______, KC_Z, LT_CUT_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______, - _______, _______, LM_COMP_LALT_LSFT, RAISE, LOWER, LM_COMP_LALT, TG(_MOUSE), LT_LOWER_SPC, RAISE, _______, _______, MANAGE + KC_CAPS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LEAD, + KC_LCTL, KC_Q, KC_W, KC_E, KC_R, KC_T, LT_COPY_Y, LT_UE_U, KC_I, LT_OE_O, LT_PASTE_P, KC_RCTL, + MOD_TAP_LSFT_ESC, LT_AE_A, LT_SZ_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, MOD_TAP_LSFT_ENT, + LM_COMP_LALT, KC_Z, LT_CUT_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, LM_COMP_LALT, + _______, LM_COMP_LALT_LSFT, _______, _______, RAISE, LOWER, LT_LOWER_SPC, RAISE, _______, _______, _______, MANAGE ), /* Lower * ,-----------------------------------------------------------------------------------. @@ -202,24 +202,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX ), /* Mouse - * ,---------------------------------------------------------------------------------------------------------------------------------------. - * | | | | | | | | | | | | | - * |------+------+--------------+--------------+--------------+---------------+-----------+-----------+---------+------------+------+------| - * | | | | | | |Wheel Left |Wheel Down |Wheel Up |Wheel Right | |Ctrl | - * |------+------+--------------+--------------+--------------+---------------------------+-----------+---------+------------+------+------| - * | | | Button 3 | Button 2 | Button 1 | |Cursor Left|Cursor Down|Cursor Up|Cursor Right| | | - * |------+------+--------------+--------------+--------------+---------------|-----------+-----------+---------+------------+------+------| - * | | | | | | | | | | | | | - * |------+------+--------------+--------------+--------------+---------------+-----------+-----------+---------+------------+------+------| - * | | |Accelaration 2|Accelaration 1|Accelaration 0| Compositor+Alt| | | | | | | - * `---------------------------------------------------------------------------------------------------------------------------------------' + * ,-------------------------------------------------------------------------------------------------------------------------------------------------------. + * | Caps Lock | | | | | | | | | | | Leader | + * |--------------+-------+--------------+--------------+--------------+--------------+-----------+-----------+---------+------------+------+--------------| + * | | | | | | |Wheel Left |Wheel Down |Wheel Up |Wheel Right | | Ctrl | + * |--------------+-------+--------------+--------------+--------------+--------------+-----------+-----------+---------+------------+------+--------------| + * | | | Button 3 | Button 2 | Button 1 | |Cursor Left|Cursor Down|Cursor Up|Cursor Right| | | + * |--------------+-------+--------------+--------------+--------------+--------------+-----------+-----------+---------+------------+------+--------------| + * |Compositor+Alt| | | | | | | | | | |Compositor+Alt| + * |--------------+-------+--------------+--------------+--------------+--------------+-----------+-----------+---------+------------+------+--------------| + * | | | |Accelaration 2|Accelaration 1|Accelaration 0| | | | | | | + * `-------------------------------------------------------------------------------------------------------------------------------------------------------' */ [_MOUSE] = LAYOUT_preonic_grid( - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_WH_LEFT, KC_MS_WH_DOWN, KC_MS_WH_UP, KC_MS_WH_RIGHT, XXXXXXX, _______, - XXXXXXX, XXXXXXX, KC_MS_BTN3, KC_MS_BTN2, KC_MS_BTN1, XXXXXXX, KC_MS_LEFT, KC_MS_DOWN, KC_MS_UP, KC_MS_RIGHT, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, KC_MS_ACCEL2, KC_MS_ACCEL1, KC_MS_ACCEL0, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_WH_LEFT, KC_MS_WH_DOWN, KC_MS_WH_UP, KC_MS_WH_RIGHT, XXXXXXX, _______, + XXXXXXX, XXXXXXX, KC_MS_BTN3, KC_MS_BTN2, KC_MS_BTN1, XXXXXXX, KC_MS_LEFT, KC_MS_DOWN, KC_MS_UP, KC_MS_RIGHT, XXXXXXX, XXXXXXX, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, + XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_ACCEL2, KC_MS_ACCEL1, KC_MS_ACCEL0, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX ), /* Manage * ,---------------------------------------------------------------------------------------. @@ -251,15 +251,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------| * | | Z | X | C | V | B | N | M | , | . | / | | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | |Space | | | | | + * | | | | | | |Space | | | | | | * `-----------------------------------------------------------------------------------' */ [_COMPOSITOR] = LAYOUT_preonic_grid( - XXXXXXX, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, XXXXXXX, - XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, XXXXXXX, - XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT, - XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + XXXXXXX, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, XXXXXXX, + XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, XXXXXXX, + XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT, + XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX ) }; @@ -396,6 +396,11 @@ static inline void leader_bindings(void) { SEQ_ONE_KEY(KC_P) { tap_code16(C(S(KC_V))); } + + /* Toggle mouse layer. */ + SEQ_ONE_KEY(KC_CAPS) { + layer_invert(_MOUSE); + } } } From fe27e46e6da0ffb58b58578ba96646fdeb0742a7 Mon Sep 17 00:00:00 2001 From: Ryan Baker <76887060+ryanbaekr@users.noreply.github.com> Date: Sun, 15 Jan 2023 19:55:30 -0500 Subject: [PATCH 066/139] [Keyboard] Add rb87 (#19546) --- keyboards/ryanbaekr/rb1/info.json | 2 + .../ryanbaekr/rb1/keymaps/default/readme.md | 1 - keyboards/ryanbaekr/rb1/readme.md | 4 + keyboards/ryanbaekr/rb1/rules.mk | 6 -- keyboards/ryanbaekr/rb18/config.h | 4 - keyboards/ryanbaekr/rb18/info.json | 2 + .../ryanbaekr/rb18/keymaps/default/readme.md | 1 - keyboards/ryanbaekr/rb18/readme.md | 4 + keyboards/ryanbaekr/rb18/rules.mk | 6 -- keyboards/ryanbaekr/rb69/config.h | 4 - keyboards/ryanbaekr/rb69/info.json | 2 + .../ryanbaekr/rb69/keymaps/default/readme.md | 1 - keyboards/ryanbaekr/rb69/readme.md | 4 + keyboards/ryanbaekr/rb69/rules.mk | 6 -- keyboards/ryanbaekr/rb86/config.h | 4 - keyboards/ryanbaekr/rb86/info.json | 2 + .../ryanbaekr/rb86/keymaps/default/readme.md | 1 - keyboards/ryanbaekr/rb86/readme.md | 4 + keyboards/ryanbaekr/rb86/rules.mk | 6 -- keyboards/ryanbaekr/rb87/config.h | 102 ++++++++++++++++++ keyboards/ryanbaekr/rb87/info.json | 18 ++++ .../ryanbaekr/rb87/keymaps/default/keymap.c | 36 +++++++ keyboards/ryanbaekr/rb87/keymaps/via/keymap.c | 54 ++++++++++ keyboards/ryanbaekr/rb87/keymaps/via/rules.mk | 2 + keyboards/ryanbaekr/rb87/rb87.c | 17 +++ keyboards/ryanbaekr/rb87/rb87.h | 37 +++++++ keyboards/ryanbaekr/rb87/readme.md | 19 ++++ keyboards/ryanbaekr/rb87/rules.mk | 12 +++ 28 files changed, 321 insertions(+), 40 deletions(-) delete mode 100644 keyboards/ryanbaekr/rb1/keymaps/default/readme.md delete mode 100644 keyboards/ryanbaekr/rb18/keymaps/default/readme.md delete mode 100644 keyboards/ryanbaekr/rb69/keymaps/default/readme.md delete mode 100644 keyboards/ryanbaekr/rb86/keymaps/default/readme.md create mode 100644 keyboards/ryanbaekr/rb87/config.h create mode 100644 keyboards/ryanbaekr/rb87/info.json create mode 100644 keyboards/ryanbaekr/rb87/keymaps/default/keymap.c create mode 100644 keyboards/ryanbaekr/rb87/keymaps/via/keymap.c create mode 100644 keyboards/ryanbaekr/rb87/keymaps/via/rules.mk create mode 100644 keyboards/ryanbaekr/rb87/rb87.c create mode 100644 keyboards/ryanbaekr/rb87/rb87.h create mode 100644 keyboards/ryanbaekr/rb87/readme.md create mode 100644 keyboards/ryanbaekr/rb87/rules.mk diff --git a/keyboards/ryanbaekr/rb1/info.json b/keyboards/ryanbaekr/rb1/info.json index 07a76e578cc8..d368ceb9c3cd 100644 --- a/keyboards/ryanbaekr/rb1/info.json +++ b/keyboards/ryanbaekr/rb1/info.json @@ -3,6 +3,8 @@ "manufacturer": "ryanbaekr", "url": "", "maintainer": "ryanbaekr", + "processor": "atmega32u4", + "bootloader": "caterina", "usb": { "vid": "0x7262", "pid": "0x0001", diff --git a/keyboards/ryanbaekr/rb1/keymaps/default/readme.md b/keyboards/ryanbaekr/rb1/keymaps/default/readme.md deleted file mode 100644 index 30225e7aadf1..000000000000 --- a/keyboards/ryanbaekr/rb1/keymaps/default/readme.md +++ /dev/null @@ -1 +0,0 @@ -# The default keymap for rb1 diff --git a/keyboards/ryanbaekr/rb1/readme.md b/keyboards/ryanbaekr/rb1/readme.md index ce46a83f6994..c1af68067690 100644 --- a/keyboards/ryanbaekr/rb1/readme.md +++ b/keyboards/ryanbaekr/rb1/readme.md @@ -10,6 +10,10 @@ Make example for this keyboard (after setting up your build environment): make ryanbaekr/rb1:default +Flashing example for this keyboard: + + make ryanbaekr/rb1:default:flash + To boot into the bootloader, hold the reset button on the SparkFun Qwiic Pro Micro - USB-C on plug in See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/ryanbaekr/rb1/rules.mk b/keyboards/ryanbaekr/rb1/rules.mk index 515ca5621f8f..ab2c49da70e7 100644 --- a/keyboards/ryanbaekr/rb1/rules.mk +++ b/keyboards/ryanbaekr/rb1/rules.mk @@ -1,9 +1,3 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = caterina - # Build Options # change yes to no to disable # diff --git a/keyboards/ryanbaekr/rb18/config.h b/keyboards/ryanbaekr/rb18/config.h index 1df607db437b..eac923b4de97 100644 --- a/keyboards/ryanbaekr/rb18/config.h +++ b/keyboards/ryanbaekr/rb18/config.h @@ -19,10 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* key matrix size */ -#define MATRIX_ROWS 5 -#define MATRIX_COLS 4 - /* * Keyboard Matrix Assignments * diff --git a/keyboards/ryanbaekr/rb18/info.json b/keyboards/ryanbaekr/rb18/info.json index ba8f2955c1a0..09bdc0c47e66 100644 --- a/keyboards/ryanbaekr/rb18/info.json +++ b/keyboards/ryanbaekr/rb18/info.json @@ -3,6 +3,8 @@ "manufacturer": "ryanbaekr", "url": "", "maintainer": "ryanbaekr", + "processor": "atmega32u4", + "bootloader": "caterina", "usb": { "vid": "0x7262", "pid": "0x0018", diff --git a/keyboards/ryanbaekr/rb18/keymaps/default/readme.md b/keyboards/ryanbaekr/rb18/keymaps/default/readme.md deleted file mode 100644 index 87dbe30e5fa1..000000000000 --- a/keyboards/ryanbaekr/rb18/keymaps/default/readme.md +++ /dev/null @@ -1 +0,0 @@ -# The default keymap for rb18 diff --git a/keyboards/ryanbaekr/rb18/readme.md b/keyboards/ryanbaekr/rb18/readme.md index f670ef9808a5..81f3cb5e5e96 100644 --- a/keyboards/ryanbaekr/rb18/readme.md +++ b/keyboards/ryanbaekr/rb18/readme.md @@ -10,6 +10,10 @@ Make example for this keyboard (after setting up your build environment): make ryanbaekr/rb18:default +Flashing example for this keyboard: + + make ryanbaekr/rb18:default:flash + To boot into the bootloader, hold the reset button on the Elite-C on plug in See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/ryanbaekr/rb18/rules.mk b/keyboards/ryanbaekr/rb18/rules.mk index ebbb7bc613c7..951dd07d6e0b 100644 --- a/keyboards/ryanbaekr/rb18/rules.mk +++ b/keyboards/ryanbaekr/rb18/rules.mk @@ -1,9 +1,3 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = caterina - # Build Options # change yes to no to disable # diff --git a/keyboards/ryanbaekr/rb69/config.h b/keyboards/ryanbaekr/rb69/config.h index 447d2ca05a95..ba3eed38b968 100644 --- a/keyboards/ryanbaekr/rb69/config.h +++ b/keyboards/ryanbaekr/rb69/config.h @@ -19,10 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* key matrix size */ -#define MATRIX_ROWS 5 -#define MATRIX_COLS 16 - /* * Keyboard Matrix Assignments * diff --git a/keyboards/ryanbaekr/rb69/info.json b/keyboards/ryanbaekr/rb69/info.json index 03b20547122f..fdee9e51004f 100644 --- a/keyboards/ryanbaekr/rb69/info.json +++ b/keyboards/ryanbaekr/rb69/info.json @@ -3,6 +3,8 @@ "manufacturer": "ryanbaekr", "url": "", "maintainer": "ryanbaekr", + "processor": "atmega32u4", + "bootloader": "caterina", "usb": { "vid": "0x7262", "pid": "0x0069", diff --git a/keyboards/ryanbaekr/rb69/keymaps/default/readme.md b/keyboards/ryanbaekr/rb69/keymaps/default/readme.md deleted file mode 100644 index 35d623b10eea..000000000000 --- a/keyboards/ryanbaekr/rb69/keymaps/default/readme.md +++ /dev/null @@ -1 +0,0 @@ -# The default keymap for rb69 diff --git a/keyboards/ryanbaekr/rb69/readme.md b/keyboards/ryanbaekr/rb69/readme.md index d90c973a8966..3d0dbac4f2c9 100644 --- a/keyboards/ryanbaekr/rb69/readme.md +++ b/keyboards/ryanbaekr/rb69/readme.md @@ -10,6 +10,10 @@ Make example for this keyboard (after setting up your build environment): make ryanbaekr/rb69:default +Flashing example for this keyboard: + + make ryanbaekr/rb69:default:flash + To boot into the bootloader, hold the reset button on the Elite-C on plug in See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/ryanbaekr/rb69/rules.mk b/keyboards/ryanbaekr/rb69/rules.mk index ebbb7bc613c7..951dd07d6e0b 100644 --- a/keyboards/ryanbaekr/rb69/rules.mk +++ b/keyboards/ryanbaekr/rb69/rules.mk @@ -1,9 +1,3 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = caterina - # Build Options # change yes to no to disable # diff --git a/keyboards/ryanbaekr/rb86/config.h b/keyboards/ryanbaekr/rb86/config.h index e2541efe2b6b..a8ec6262a2a1 100644 --- a/keyboards/ryanbaekr/rb86/config.h +++ b/keyboards/ryanbaekr/rb86/config.h @@ -19,10 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* key matrix size */ -#define MATRIX_ROWS 6 -#define MATRIX_COLS 17 - /* * Keyboard Matrix Assignments * diff --git a/keyboards/ryanbaekr/rb86/info.json b/keyboards/ryanbaekr/rb86/info.json index 65806aef95dd..30f05e836109 100644 --- a/keyboards/ryanbaekr/rb86/info.json +++ b/keyboards/ryanbaekr/rb86/info.json @@ -3,6 +3,8 @@ "manufacturer": "ryanbaekr", "url": "", "maintainer": "ryanbaekr", + "processor": "atmega32u4", + "bootloader": "caterina", "usb": { "vid": "0x7262", "pid": "0x0086", diff --git a/keyboards/ryanbaekr/rb86/keymaps/default/readme.md b/keyboards/ryanbaekr/rb86/keymaps/default/readme.md deleted file mode 100644 index 81c91e2296d7..000000000000 --- a/keyboards/ryanbaekr/rb86/keymaps/default/readme.md +++ /dev/null @@ -1 +0,0 @@ -# The default keymap for rb86 diff --git a/keyboards/ryanbaekr/rb86/readme.md b/keyboards/ryanbaekr/rb86/readme.md index 36a8c6318341..dc9e55c52353 100644 --- a/keyboards/ryanbaekr/rb86/readme.md +++ b/keyboards/ryanbaekr/rb86/readme.md @@ -10,6 +10,10 @@ Make example for this keyboard (after setting up your build environment): make ryanbaekr/rb86:default +Flashing example for this keyboard: + + make ryanbaekr/rb86:default:flash + To boot into the bootloader, hold the reset button on the Elite-C on plug in See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/ryanbaekr/rb86/rules.mk b/keyboards/ryanbaekr/rb86/rules.mk index 33d28b3a89f2..309e55c9f4c8 100644 --- a/keyboards/ryanbaekr/rb86/rules.mk +++ b/keyboards/ryanbaekr/rb86/rules.mk @@ -1,9 +1,3 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = caterina - # Build Options # change yes to no to disable # diff --git a/keyboards/ryanbaekr/rb87/config.h b/keyboards/ryanbaekr/rb87/config.h new file mode 100644 index 000000000000..6d153b405ba7 --- /dev/null +++ b/keyboards/ryanbaekr/rb87/config.h @@ -0,0 +1,102 @@ +/* +Copyright 2022 ryanbaekr + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "config_common.h" + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { D2, D7, C6, D4, D0, D1 } +#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, B6, F0, F1, C7, E6, B4, B5, B7, D5, D3 } + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* + * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. + */ +//#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6 + + + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 10 + +/* Underglow options */ +#define RGB_DI_PIN B0 +#ifdef RGB_DI_PIN +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_SNAKE +#define RGBLIGHT_EFFECT_KNIGHT +#define RGBLIGHT_EFFECT_CHRISTMAS +#define RGBLIGHT_EFFECT_STATIC_GRADIENT +#define RGBLIGHT_EFFECT_RGB_TEST +#define RGBLIGHT_EFFECT_ALTERNATING +#define RGBLIGHT_EFFECT_TWINKLE +#define RGBLED_NUM 15 +#define RGBLED_HUE_STEP 8 +#define RGBLED_SAT_STEP 8 +#define RGBLED_VAL_STEP 8 +#endif + +/* 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 diff --git a/keyboards/ryanbaekr/rb87/info.json b/keyboards/ryanbaekr/rb87/info.json new file mode 100644 index 000000000000..f9401bac657b --- /dev/null +++ b/keyboards/ryanbaekr/rb87/info.json @@ -0,0 +1,18 @@ +{ + "keyboard_name": "rb87", + "manufacturer": "ryanbaekr", + "url": "", + "maintainer": "ryanbaekr", + "processor": "atmega32u4", + "bootloader": "caterina", + "usb": { + "vid": "0x7262", + "pid": "0x0087", + "device_version": "0.0.3" + }, + "layouts": { + "LAYOUT": { + "layout": [{"x":0, "y":0}, {"x":1.5, "y":0}, {"x":2.5, "y":0}, {"x":3.5, "y":0}, {"x":4.5, "y":0}, {"x":5.75, "y":0}, {"x":6.75, "y":0}, {"x":7.75, "y":0}, {"x":8.75, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14.25, "y":0}, {"x":15.25, "y":0}, {"x":16.25, "y":0}, {"x":0, "y":1.25}, {"x":1, "y":1.25}, {"x":2, "y":1.25}, {"x":3, "y":1.25}, {"x":4, "y":1.25}, {"x":5, "y":1.25}, {"x":6, "y":1.25}, {"x":7, "y":1.25}, {"x":8, "y":1.25}, {"x":9, "y":1.25}, {"x":10, "y":1.25}, {"x":11, "y":1.25}, {"x":12, "y":1.25}, {"x":13, "y":1.25, "w":2}, {"x":15.25, "y":1.25}, {"x":16.25, "y":1.25}, {"x":0, "y":2.25, "w":1.5}, {"x":1.5, "y":2.25}, {"x":2.5, "y":2.25}, {"x":3.5, "y":2.25}, {"x":4.5, "y":2.25}, {"x":5.5, "y":2.25}, {"x":6.5, "y":2.25}, {"x":7.5, "y":2.25}, {"x":8.5, "y":2.25}, {"x":9.5, "y":2.25}, {"x":10.5, "y":2.25}, {"x":11.5, "y":2.25}, {"x":12.5, "y":2.25}, {"x":13.5, "y":2.25, "w":1.5}, {"x":15.25, "y":2.25}, {"x":16.25, "y":2.25}, {"x":0, "y":3.25, "w":1.75}, {"x":1.75, "y":3.25}, {"x":2.75, "y":3.25}, {"x":3.75, "y":3.25}, {"x":4.75, "y":3.25}, {"x":5.75, "y":3.25}, {"x":6.75, "y":3.25}, {"x":7.75, "y":3.25}, {"x":8.75, "y":3.25}, {"x":9.75, "y":3.25}, {"x":10.75, "y":3.25}, {"x":11.75, "y":3.25}, {"x":12.75, "y":3.25, "w":2.25}, {"x":15.25, "y":3.25}, {"x":16.25, "y":3.25}, {"x":0, "y":4.25, "w":2.25}, {"x":2.25, "y":4.25}, {"x":3.25, "y":4.25}, {"x":4.25, "y":4.25}, {"x":5.25, "y":4.25}, {"x":6.25, "y":4.25}, {"x":7.25, "y":4.25}, {"x":8.25, "y":4.25}, {"x":9.25, "y":4.25}, {"x":10.25, "y":4.25}, {"x":11.25, "y":4.25}, {"x":12.25, "y":4.25, "w":2.75}, {"x":15.25, "y":4.5}, {"x":0, "y":5.25, "w":1.5}, {"x":1.5, "y":5.25, "w":1.25}, {"x":2.75, "y":5.25, "w":1.25}, {"x":4, "y":5.25, "w":6.25}, {"x":10.25, "y":5.25, "w":1.25}, {"x":11.5, "y":5.25, "w":1.25}, {"x":12.75, "y":5.25, "w":1.25}, {"x":14.25, "y":5.5}, {"x":15.25, "y":5.5}, {"x":16.25, "y":5.5}] + } + } +} diff --git a/keyboards/ryanbaekr/rb87/keymaps/default/keymap.c b/keyboards/ryanbaekr/rb87/keymaps/default/keymap.c new file mode 100644 index 000000000000..37483d80b553 --- /dev/null +++ b/keyboards/ryanbaekr/rb87/keymaps/default/keymap.c @@ -0,0 +1,36 @@ +/* Copyright 2022 ryanbaekr + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, 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, TG(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F13, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/ryanbaekr/rb87/keymaps/via/keymap.c b/keyboards/ryanbaekr/rb87/keymaps/via/keymap.c new file mode 100644 index 000000000000..5e2b543f7a9e --- /dev/null +++ b/keyboards/ryanbaekr/rb87/keymaps/via/keymap.c @@ -0,0 +1,54 @@ +/* Copyright 2022 ryanbaekr + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, 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, TG(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F13, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [2] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [3] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/ryanbaekr/rb87/keymaps/via/rules.mk b/keyboards/ryanbaekr/rb87/keymaps/via/rules.mk new file mode 100644 index 000000000000..36b7ba9cbc98 --- /dev/null +++ b/keyboards/ryanbaekr/rb87/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/ryanbaekr/rb87/rb87.c b/keyboards/ryanbaekr/rb87/rb87.c new file mode 100644 index 000000000000..4fd8a3decdb6 --- /dev/null +++ b/keyboards/ryanbaekr/rb87/rb87.c @@ -0,0 +1,17 @@ +/* Copyright 2022 ryanbaekr + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "rb87.h" diff --git a/keyboards/ryanbaekr/rb87/rb87.h b/keyboards/ryanbaekr/rb87/rb87.h new file mode 100644 index 000000000000..b5fc15bfe2db --- /dev/null +++ b/keyboards/ryanbaekr/rb87/rb87.h @@ -0,0 +1,37 @@ +/* Copyright 2022 ryanbaekr + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define ___ KC_NO + +#define LAYOUT( \ + 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, k1e, k1f, k1g, \ + k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, \ + k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3f, k3g, \ + k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4d, k4f, \ + k50, k52, k53, k57, k5a, k5c, k5d, k5e, k5f, k5g \ +){ \ + { 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, ___, k1e, k1f, k1g }, \ + { k20, ___, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g }, \ + { k30, ___, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, ___, k3f, k3g }, \ + { ___, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, ___, k4d, ___, k4f, ___ }, \ + { k50, ___, k52, k53, ___, ___, ___, k57, ___, ___, k5a, ___, k5c, k5d, k5e, k5f, k5g } \ +} diff --git a/keyboards/ryanbaekr/rb87/readme.md b/keyboards/ryanbaekr/rb87/readme.md new file mode 100644 index 000000000000..f38974b1fc86 --- /dev/null +++ b/keyboards/ryanbaekr/rb87/readme.md @@ -0,0 +1,19 @@ +# rb87 + +A diy stacked acrylic 80% keyboard. + +* Keyboard Maintainer: [ryanbaekr](https://github.com/ryanbaekr) +* Hardware Supported: rb87 with Elite-C +* Hardware Availability: 2022/12/30 + +Make example for this keyboard (after setting up your build environment): + + make ryanbaekr/rb87:default + +Flashing example for this keyboard: + + make ryanbaekr/rb87:default:flash + +To boot into the bootloader, hold the reset button on the Elite-C on plug in + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/ryanbaekr/rb87/rules.mk b/keyboards/ryanbaekr/rb87/rules.mk new file mode 100644 index 000000000000..951dd07d6e0b --- /dev/null +++ b/keyboards/ryanbaekr/rb87/rules.mk @@ -0,0 +1,12 @@ +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = no # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output From 4f83b673bdfd9d8a282255f8939d3a93657fe282 Mon Sep 17 00:00:00 2001 From: adiabatic Date: Mon, 16 Jan 2023 00:48:41 -0800 Subject: [PATCH 067/139] [Keymap] Improve Zweihander layout for the Ergodox EZ (#18737) --- .../ergodox/zweihander-macos/config.h | 14 ++++ .../ergodox/zweihander-macos/keymap.c | 72 +++++++++++-------- .../ergodox/zweihander-macos/readme.markdown | 25 ++++--- 3 files changed, 73 insertions(+), 38 deletions(-) create mode 100644 layouts/community/ergodox/zweihander-macos/config.h diff --git a/layouts/community/ergodox/zweihander-macos/config.h b/layouts/community/ergodox/zweihander-macos/config.h new file mode 100644 index 000000000000..5f414d86e7cc --- /dev/null +++ b/layouts/community/ergodox/zweihander-macos/config.h @@ -0,0 +1,14 @@ +/* + Set any config.h overrides for your specific keymap here. + See config.h options at https://docs.qmk.fm/#/config_options?id=the-configh-file +*/ + +#pragma once +// 15, the default, is too low for Kailh Coppers. I get lots of double presses. +// (ba-dum tish) +// #undef DEBOUNCE +// #define DEBOUNCE 22 + +// Reduce USB power consumption to 100 mA to make it work with a Lightning to USB 3 Camera Adapter (MK0W2AM/A). ZSA says 100 mA is high enough for the keyboard if you disable the big Shine/Glow LEDs first. +#undef USB_MAX_POWER_CONSUMPTION +#define USB_MAX_POWER_CONSUMPTION 100 diff --git a/layouts/community/ergodox/zweihander-macos/keymap.c b/layouts/community/ergodox/zweihander-macos/keymap.c index d1c444f48dda..9e0423375d8a 100644 --- a/layouts/community/ergodox/zweihander-macos/keymap.c +++ b/layouts/community/ergodox/zweihander-macos/keymap.c @@ -8,6 +8,23 @@ // Best viewed in Xcode in Menlo Regular or SF Mono. +enum custom_keycodes { + NEWITEM = SAFE_RANGE, +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case NEWITEM: + if (record->event.pressed) { + // when keycode NEWITEM is pressed + SEND_STRING("\n- "); // starts a new item in a Markdown-style list + } + // else-clause (for when NEWITEM is released) omitted + break; + } + return true; // the key press we just processed should continue to be processed as normal +}; + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: Basic layer * @@ -25,23 +42,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-------------. ,---------------. * | `~ | '" | | ⎋ | ⌫ | * ,------|------|------| |------+--------+------. - * | | | PgUp | | PgDn | | | + * | | | L⌥ | | R⌥ | | | * | ↩︎ | ⇥ |------| |------| ⇥ | | - * | | | R⌥ | | R⌃ | | | + * | | | L⌃ | | R⌃ | | | * `--------------------' `----------------------' */ // If it accepts an argument (i.e, is a function), it doesn't need KC_. // Otherwise, it needs KC_* [BASE] = LAYOUT_ergodox( // layer 0 : default // left hand - KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, TG(SYMB), - KC_DEL, KC_Q, KC_W, KC_E, KC_R, KC_T, MO(SYMB), - KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LGUI, - KC_LCTL, KC_LALT, KC_LGUI,KC_LEFT,KC_RGHT, - KC_GRV, KC_QUOT, - KC_PGUP, - KC_ENT ,KC_TAB ,KC_RALT, + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, TG(SYMB), + KC_DEL, KC_Q, KC_W, KC_E, KC_R, KC_T, MO(SYMB), + KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LGUI, + KC_LCTL, KC_LALT, KC_LGUI, KC_LEFT,KC_RGHT, + KC_GRV, KC_QUOT, + KC_LALT, + KC_ENT ,KC_TAB ,KC_LCTL, // right hand TG(SYMB), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, MO(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, @@ -49,7 +66,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_RGUI, KC_N, KC_M, KC_COMM,KC_DOT, RALT_T(KC_SLSH), KC_RSFT, KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_ENT , KC_ESC, KC_BSPC, - KC_PGDN, + KC_RALT, KC_RCTL, KC_TAB, KC_SPC ), /* Keymap 1: Symbol Layer @@ -59,7 +76,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| * | | [ | ] | { | } | " | | | | / | 7 | 8 | 9 | * | F12 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | < | > | ( | ) | ' |------| |------| - | 4 | 5 | 6 | + | | + * | | < | > | ( | ) | ' |------| |------| - | 4 | 5 | 6 | + | `~ | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | | | | | | = | | | | : | 1 | 2 | 3 | = | | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' @@ -79,7 +96,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, KC_TRNS,KC_LBRC,KC_RBRC,KC_LCBR,KC_RCBR,KC_DQT ,KC_TRNS, KC_TRNS,KC_LABK,KC_RABK,KC_LPRN,KC_RPRN,KC_QUOT, - KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_EQL ,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,NEWITEM,KC_EQL ,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, @@ -87,7 +104,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // right hand KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_TRNS, KC_SLSH, KC_7, KC_8, KC_9, KC_ASTR, KC_F12, - KC_MINS, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS, + KC_MINS, KC_4, KC_5, KC_6, KC_PLUS, KC_GRV, KC_TRNS, KC_COLN, KC_1, KC_2, KC_3, KC_EQL, KC_TRNS, KC_0, KC_DOT, KC_LEFT, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, @@ -97,9 +114,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 2: Media keys * * ,--------------------------------------------------. ,--------------------------------------------------. - * | | F14 | F15 |PrtScr|SclLck| Pause| | | | ⌘W | ⌘⇧` | ⌘` | | | Power | + * | | F14 | F15 |PrtScr|SclLck| Pause| | | | ⌘W | ⌘⇧` | ⌘` | | ⏏ | Power | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | PgUp | | | | | | ⌘] | ⌥⌘↑ | ↑ | ⌥⌘↓ | | | + * | | | ⌥↑ | PgUp | ⌥↓ | | | | | ⌘] | ⌥⌘↑ | ↑ | ⌥⌘↓ | | | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | | | Home | PgDn | End | |------| |------| ⌘[ | ← | ↓ | → | | F16 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| @@ -110,29 +127,29 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-------------. ,-------------. * | | | | | | * ,------|------|------| |------+------+------. - * | | | Home | | End | | | + * | | | | | | | | * | | |------| |------| ⌘C | ⌘V | * | | | | | ⌘X | | | * `--------------------' `--------------------' */ // MEDIA AND MOUSE [MDIA] = LAYOUT_ergodox( - KC_TRNS, KC_F14 , KC_F15 , KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS, /* F14 dims screen, F15 brightens */ - KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END , KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_HOME, - KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_F14 , KC_F15 , KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, /* F14 dims screen, F15 brightens */ + KC_TRNS, KC_TRNS, LALT(KC_UP), KC_PGUP, LALT(KC_DOWN), KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END , KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, // right hand - KC_TRNS, LGUI(KC_W), LGUI(LSFT(KC_GRV)), LGUI(KC_GRV), KC_TRNS, KC_TRNS, KC_PWR, + KC_TRNS, LGUI(KC_W), LGUI(LSFT(KC_GRV)), LGUI(KC_GRV), KC_TRNS, KC_EJCT, KC_POWER, KC_TRNS, LGUI(KC_RBRC), LGUI(LALT(KC_UP)), KC_UP , LGUI(LALT(KC_DOWN)), KC_TRNS, KC_TRNS, LGUI(KC_LBRC), KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_F16 , KC_TRNS, KC_TRNS, KC_MPLY, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_END , + KC_TRNS, LGUI(KC_X), LGUI(KC_C), LGUI(KC_V) ), }; @@ -158,5 +175,4 @@ void matrix_scan_user(void) { // none break; } - }; diff --git a/layouts/community/ergodox/zweihander-macos/readme.markdown b/layouts/community/ergodox/zweihander-macos/readme.markdown index 8921647bd3a7..d2b1b0ba6197 100644 --- a/layouts/community/ergodox/zweihander-macos/readme.markdown +++ b/layouts/community/ergodox/zweihander-macos/readme.markdown @@ -6,12 +6,10 @@ This README refers to two secondary layers: the Media Layer and the Symbol Layer This layout is tuned for people who… - ## use macOS While this layout works fine in Windows, it’s not tuned for it. No sane person who primarily uses Windows would put this many Windows keys on a keyboard layout. That said, Print Screen, Scroll Lock, and Pause are available in their usual order on the Media Layer if you need them. - ## mouse left-handed while doing other things with the right hand I tend to have my mouse in my left hand, but I like to use my other hand to make things go faster. I’ve added a bunch of buttons to the Media Layer (hold ;) to speed up browsing in applications like Safari and Finder: @@ -29,8 +27,7 @@ I also have a few keys dedicated to window management: Cut, Copy, and Paste (⌘X, ⌘C, and ⌘V) are also available on the three bottommost right-thumb buttons if you hold ;. - -## use lots of modifier keys in OS X menu-item shortcuts +## use lots of modifier keys in macOS menu-item shortcuts I wanted to preserve the feel of a number of shortcuts that involve pressing lots of modifier keys at once. This is why the bottom left of the keyboard has Shift, Control, Option, and Command in the usual spots. Further I’ve added affordances so some key combinations are easier to press with just the right hand. @@ -43,31 +40,39 @@ I also put a second Backspace (⌫) key on the right half of the keyboard to mak Pressing and holding / will give you Option. This makes a number of keyboard shortcuts easy to press with just the right hand: -- ⌥↑ — Move Line Up -- ⌥↓ — Move Line Down +- ⌥↑ — Move Line Up (in Visual Studio Code) +- ⌥↓ — Move Line Down (in Visual Studio Code) - ⌥⇧↑ — Copy Line Up / Go To Previous Channel With Unread Messages - ⌥⇧↓ — Copy Line Down / Go To Next Channel With Unread Messages - ## use Emacs-style shortcuts -I press C-a, C-e, and C-k all the time. It’s difficult to press these key combinations with the Control key on the far left, so the leftmost thumb button on the right side is another Control key. +I press C-a, C-e, and C-k all the time. It’s difficult to press these key combinations with the Control key on the far left, so the innermost thumb buttons are Control keys. Above/inside them are Option keys. -Having trouble remembering which innermost thumb key is Alt and which is Control? The two’re like on the lower right of a normal keyboard — leftmost is Alt, rightmost is Control. +## use Visual Studio Code +;-W and ;-R are bound to ⌥↑ and ⌥↓, respectively, for moving lines up and down in Visual Studio Code. In normal macOS applications, they’re used for moving the cursor to the beginning and end of a line, and then on to the previous/next line. ## use spreadsheets All the common spreadsheet operations (+-*/=) are on the right side of the Symbol Layer. Make-numbers-bigger (+, \*) operations on the right; make-numbers-smaller (-, /) on the left. There’s also a colon there for entering times and maybe IPv6 addresses. - ## know the ↑↓←→ fn-key shortcuts for MacBooks Have you looked at the Page Up, Page Down, Home, and End keys on the EDSF keys and wondered why they’re arranged that way? They’re arranged the same way as the fn-key shortcuts on an Apple laptop’s arrow keys. On Apple keyboards with an\* fn key, if you press fn-↑, you’ll get Page Up; if you press fn-← you’ll get Home. Similarly, on Zweihander, ;-E is Page Up and ;-S is Home. +## write a fair bit of Markdown + +If you’re on the second layer (hold/tap one of the four inside middle top keys), the `'` button on the far right is a `\`` key. + +If you’re on the second layer, pressing `v` will send the string `"\n- "`, not including the quotation marks. This is intended to be a faster way to make a new list item when writing meeting notes in Markdown. ## use Siri F16, accessed by holding ; and pressing the ' key next to it, is intended for Siri. +## use it with an iPad + +This layout overrides `USB_MAX_POWER_CONSUMPTION` to turn it down to 100 mA instead of the default of 500 mA. This is not what you want if your Ergodox EZ has the Shine or Glow lights, but good if you want to be able to plug it into your iPad’s lightning port with a USB adapter. The indicator lights that tell you what layer you’re on are _not_ Shine or Glow lights. + \* I pronounce “fn” as “effin’”. Your mileage may vary. From 917d93e968f8a6d99ba7f24bbc6a1f97237dfe56 Mon Sep 17 00:00:00 2001 From: Sergey Vlasov Date: Mon, 16 Jan 2023 11:52:18 +0300 Subject: [PATCH 068/139] [Docs] Fix `JOYSTICK_AXIS_COUNT` name in docs (#19605) --- docs/feature_joystick.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/feature_joystick.md b/docs/feature_joystick.md index dc7b49a600c1..7b699aef1751 100644 --- a/docs/feature_joystick.md +++ b/docs/feature_joystick.md @@ -40,7 +40,7 @@ When defining axes for your joystick, you must provide a definition array typica For instance, the below example configures two axes. The X axis is read from the `A4` pin. With the default axis resolution of 8 bits, the range of values between 900 and 575 are scaled to -127 through 0, and values 575 to 285 are scaled to 0 through 127. The Y axis is configured as a virtual axis, and its value is not read from any pin. Instead, the user must update the axis value programmatically. ```c -joystick_config_t joystick_axes[JOYSTICK_AXES_COUNT] = { +joystick_config_t joystick_axes[JOYSTICK_AXIS_COUNT] = { JOYSTICK_AXIS_IN(A4, 900, 575, 285), JOYSTICK_AXIS_VIRTUAL }; @@ -64,7 +64,7 @@ The `low` and `high` values can be swapped to effectively invert the axis. The following example adjusts two virtual axes (X and Y) based on keypad presses, with `KC_P0` as a precision modifier: ```c -joystick_config_t joystick_axes[JOYSTICK_AXES_COUNT] = { +joystick_config_t joystick_axes[JOYSTICK_AXIS_COUNT] = { JOYSTICK_AXIS_VIRTUAL, // x JOYSTICK_AXIS_VIRTUAL // y }; From 2bff00e1bad09a57b3a5af214f0d1f8243deaea5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20Mart=C3=ADnez?= <58857054+elpekenin@users.noreply.github.com> Date: Mon, 16 Jan 2023 10:32:43 +0100 Subject: [PATCH 069/139] Small doc changes (#19601) --- docs/feature_layers.md | 4 ++-- docs/feature_rgb_matrix.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/feature_layers.md b/docs/feature_layers.md index 5ad4005f5d92..8effb7125d89 100644 --- a/docs/feature_layers.md +++ b/docs/feature_layers.md @@ -53,7 +53,7 @@ There are a number of functions (and variables) related to how you can use or ma |Function |Description | |----------------------------------------------|---------------------------------------------------------------------------------------------------------| -| `layer_state_set(layer_mask)` | Directly sets the layer state (recommended, do not use unless you know what you are doing). | +| `layer_state_set(layer_mask)` | Directly sets the layer state (avoid unless you know what you are doing). | | `layer_clear()` | Clears all layers (turns them all off). | | `layer_move(layer)` | Turns specified layer on, and all other layers off. | | `layer_on(layer)` | Turns specified layer on, leaves all other layers in existing state. | @@ -63,7 +63,7 @@ There are a number of functions (and variables) related to how you can use or ma | `layer_and(layer_mask)` | Turns on layers based on matching enabled bits between specifed layer and existing layer state. | | `layer_xor(layer_mask)` | Turns on layers based on non-matching bits between specifed layer and existing layer state. | | `layer_debug(layer_mask)` | Prints out the current bit mask and highest active layer to debugger console. | -| `default_layer_set(layer_mask)` | Directly sets the default layer state (recommended, do not use unless you know what you are doing). | +| `default_layer_set(layer_mask)` | Directly sets the default layer state (avoid unless you know what you are doing). | | `default_layer_or(layer_mask)` | Turns on layers based on matching bits between specifed layer and existing default layer state. | | `default_layer_and(layer_mask)` | Turns on layers based on matching enabled bits between specifed layer and existing default layer state. | | `default_layer_xor(layer_mask)` | Turns on layers based on non-matching bits between specifed layer and existing default layer state. | diff --git a/docs/feature_rgb_matrix.md b/docs/feature_rgb_matrix.md index bc51b63c71cf..f9ba3c4d294d 100644 --- a/docs/feature_rgb_matrix.md +++ b/docs/feature_rgb_matrix.md @@ -576,7 +576,7 @@ enum rgb_matrix_effects { RGB_MATRIX_PIXEL_FRACTAL, // Single hue fractal filled keys pulsing horizontally out to edges RGB_MATRIX_PIXEL_FLOW, // Pulsing RGB flow along LED wiring with random hues RGB_MATRIX_PIXEL_RAIN, // Randomly light keys with random hues -#if define(RGB_MATRIX_FRAMEBUFFER_EFFECTS) +#if defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS) RGB_MATRIX_TYPING_HEATMAP, // How hot is your WPM! RGB_MATRIX_DIGITAL_RAIN, // That famous computer simulation #endif From 465b6a14e3624d0da98c220a7b4e0e2e5ef9c1d9 Mon Sep 17 00:00:00 2001 From: Tom Barnes Date: Mon, 16 Jan 2023 22:41:52 +0000 Subject: [PATCH 070/139] Docs/space b cleanup (#19612) * Clean up remaining mentions of the deprecated Space B reset method * cleanup auto_tag.yml that got sucked in --- keyboards/alf/x2/readme.md | 2 +- keyboards/charue/sunsetter/readme.md | 2 +- keyboards/mechkeys/acr60/readme.md | 2 +- keyboards/mechkeys/alu84/readme.md | 2 +- keyboards/misonoworks/karina/readme.md | 2 +- keyboards/mt/mt84/readme.md | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/keyboards/alf/x2/readme.md b/keyboards/alf/x2/readme.md index 671155a341c5..bd1e9f8b2e9f 100644 --- a/keyboards/alf/x2/readme.md +++ b/keyboards/alf/x2/readme.md @@ -16,6 +16,6 @@ Flashing example for this keyboard: make alf/x2:default:flash -To reset the board into bootloader mode, hold Space+B while plugging it in. +To reset the board into bootloader mode, the key at top left (usually escape) while plugging it in. See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/charue/sunsetter/readme.md b/keyboards/charue/sunsetter/readme.md index 84c0f3ed79ff..a761e151be5e 100644 --- a/keyboards/charue/sunsetter/readme.md +++ b/keyboards/charue/sunsetter/readme.md @@ -10,7 +10,7 @@ A 65 + 10% F-Key Column Keyboard kit made and sold by Charue Design. [More info #### Jumping to Bootloader -To enter the bootloader, you may use bootmagic by holding `Space+B` or by holding the reset button located at the back of the PCB, right beside the left shift key, for a few seconds. +To enter the bootloader, you may use bootmagic by holding the key at top left (usually escape) or by holding the reset button located at the back of the PCB, right beside the left shift key, for a few seconds. Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/mechkeys/acr60/readme.md b/keyboards/mechkeys/acr60/readme.md index 4d8bffa36414..560e1d12d608 100644 --- a/keyboards/mechkeys/acr60/readme.md +++ b/keyboards/mechkeys/acr60/readme.md @@ -19,6 +19,6 @@ Flashing example for this keyboard: To reset the board into bootloader mode, do one of the following: * Tap the Reset switch mounted on the bottom side of the PCB -* Hold Space+B while connecting the USB cable +* Hold the key at top left (usually escape) while connecting the USB cable See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).` diff --git a/keyboards/mechkeys/alu84/readme.md b/keyboards/mechkeys/alu84/readme.md index ca2afbe970b2..a1d524d41a1f 100644 --- a/keyboards/mechkeys/alu84/readme.md +++ b/keyboards/mechkeys/alu84/readme.md @@ -16,6 +16,6 @@ Flashing example for this keyboard: make mechkeys/alu84:default:flash -To reset the board into bootloader mode, hold Space+B while plugging the cable in. +To reset the board into bootloader mode, hold the key at top left (usually escape) while plugging the cable in. See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/misonoworks/karina/readme.md b/keyboards/misonoworks/karina/readme.md index debd418b39d5..ae0648a3aa8c 100644 --- a/keyboards/misonoworks/karina/readme.md +++ b/keyboards/misonoworks/karina/readme.md @@ -16,6 +16,6 @@ Flashing example for this keyboard: make misonoworks/karina:default:flash -To reset the board into bootloader mode, hold Space+B while connecting the USB cable. +To reset the board into bootloader mode, hold the key at top left (usually escape) while connecting the USB cable. See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/mt/mt84/readme.md b/keyboards/mt/mt84/readme.md index f26521ad6ab6..af641502a9ac 100644 --- a/keyboards/mt/mt84/readme.md +++ b/keyboards/mt/mt84/readme.md @@ -18,6 +18,6 @@ Flashing example for this keyboard: make mt/mt84:default:flash -To put the board into bootloader mode, either press the reset button on the bottom the PCB or hold Space+B while plugging it in. +To put the board into bootloader mode, either press the reset button on the bottom the PCB or hold the key at top left (usually escape) while plugging it in. See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). From 4098ff5574ab8129b83239ed9de6f1820b31b686 Mon Sep 17 00:00:00 2001 From: era <73109780+eerraa@users.noreply.github.com> Date: Tue, 17 Jan 2023 10:55:13 +0900 Subject: [PATCH 071/139] [Keyboard] Add ERA65 (#19591) Co-authored-by: Ryan --- keyboards/era/era65/config.h | 30 +++++ keyboards/era/era65/halconf.h | 8 ++ keyboards/era/era65/info.json | 113 +++++++++++++++++++ keyboards/era/era65/keymaps/default/keymap.c | 37 ++++++ keyboards/era/era65/keymaps/via/keymap.c | 68 +++++++++++ keyboards/era/era65/keymaps/via/rules.mk | 1 + keyboards/era/era65/mcuconf.h | 8 ++ keyboards/era/era65/readme.md | 25 ++++ keyboards/era/era65/rules.mk | 2 + 9 files changed, 292 insertions(+) create mode 100644 keyboards/era/era65/config.h create mode 100644 keyboards/era/era65/halconf.h create mode 100644 keyboards/era/era65/info.json create mode 100644 keyboards/era/era65/keymaps/default/keymap.c create mode 100644 keyboards/era/era65/keymaps/via/keymap.c create mode 100644 keyboards/era/era65/keymaps/via/rules.mk create mode 100644 keyboards/era/era65/mcuconf.h create mode 100644 keyboards/era/era65/readme.md create mode 100644 keyboards/era/era65/rules.mk diff --git a/keyboards/era/era65/config.h b/keyboards/era/era65/config.h new file mode 100644 index 000000000000..41dbe2178a09 --- /dev/null +++ b/keyboards/era/era65/config.h @@ -0,0 +1,30 @@ +// Copyright 2023 eerraa (@era) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + +#define DYNAMIC_KEYMAP_LAYER_COUNT 6 + +#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64 + +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET // Activates the double-tap behavior +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U // Timeout window in ms in which the double tap can occur. + +#define BACKLIGHT_PWM_DRIVER PWMD0 +#define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_A \ No newline at end of file diff --git a/keyboards/era/era65/halconf.h b/keyboards/era/era65/halconf.h new file mode 100644 index 000000000000..1960fffb5d4a --- /dev/null +++ b/keyboards/era/era65/halconf.h @@ -0,0 +1,8 @@ +// Copyright 2022 MatteoDM +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define HAL_USE_PWM TRUE + + +#include_next \ No newline at end of file diff --git a/keyboards/era/era65/info.json b/keyboards/era/era65/info.json new file mode 100644 index 000000000000..38199a2001c7 --- /dev/null +++ b/keyboards/era/era65/info.json @@ -0,0 +1,113 @@ +{ + "manufacturer": "ERA", + "keyboard_name": "ERA65 1.0.4", + "maintainer": "eerraa", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "backlight": true + + }, + "matrix_pins": { + "cols": ["GP29", "GP28", "GP27", "GP26", "GP25", "GP24", "GP21", "GP20", "GP19", "GP18", "GP17", "GP16", "GP22", "GP23", "GP3"], + "rows": ["GP1", "GP2", "GP4", "GP10", "GP11"] + }, + "processor": "RP2040", + "url": "", + "usb": { + "device_version": "1.0.4", + "pid": "0x0001", + "vid": "0x4552" + }, + "backlight": { + "breathing": true, + "breathing_period": 6, + "levels": 15, + "pin": "GP0" + }, + "indicators": { + "caps_lock": "GP12", + }, + "layouts": { + "LAYOUT_65_combo": { + "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], "w": 2, "x": 13, "y": 0 }, + { "matrix": [0, 14], "x": 15.5, "y": 0 }, + { "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1.5, "y": 1 }, + { "matrix": [1, 2], "x": 2.5, "y": 1 }, + { "matrix": [1, 3], "x": 3.5, "y": 1 }, + { "matrix": [1, 4], "x": 4.5, "y": 1 }, + { "matrix": [1, 5], "x": 5.5, "y": 1 }, + { "matrix": [1, 6], "x": 6.5, "y": 1 }, + { "matrix": [1, 7], "x": 7.5, "y": 1 }, + { "matrix": [1, 8], "x": 8.5, "y": 1 }, + { "matrix": [1, 9], "x": 9.5, "y": 1 }, + { "matrix": [1, 10], "x": 10.5, "y": 1 }, + { "matrix": [1, 11], "x": 11.5, "y": 1 }, + { "matrix": [1, 12], "x": 12.5, "y": 1 }, + { "matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1 }, + { "matrix": [1, 14], "x": 15.5, "y": 1 }, + { "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1.75, "y": 2 }, + { "matrix": [2, 2], "x": 2.75, "y": 2 }, + { "matrix": [2, 3], "x": 3.75, "y": 2 }, + { "matrix": [2, 4], "x": 4.75, "y": 2 }, + { "matrix": [2, 5], "x": 5.75, "y": 2 }, + { "matrix": [2, 6], "x": 6.75, "y": 2 }, + { "matrix": [2, 7], "x": 7.75, "y": 2 }, + { "matrix": [2, 8], "x": 8.75, "y": 2 }, + { "matrix": [2, 9], "x": 9.75, "y": 2 }, + { "matrix": [2, 10], "x": 10.75, "y": 2 }, + { "matrix": [2, 11], "x": 11.75, "y": 2 }, + { "matrix": [2, 12], "x": 12.75, "y": 2 }, + { "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 2 }, + { "matrix": [2, 14], "x": 15.5, "y": 2 }, + { "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, + { "matrix": [3, 1], "x": 1.25, "y": 3 }, + { "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "matrix": [3, 12], "w": 1.75, "x": 12.25, "y": 3 }, + { "matrix": [3, 13], "x": 14.25, "y": 3.25 }, + { "matrix": [3, 14], "x": 15.5, "y": 3 }, + { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4 }, + { "matrix": [4, 9], "x": 10, "y": 4 }, + { "matrix": [4, 10], "x": 11, "y": 4 }, + { "matrix": [4, 11], "x": 12, "y": 4 }, + { "matrix": [4, 12], "x": 13.25, "y": 4.25 }, + { "matrix": [4, 13], "x": 14.25, "y": 4.25 }, + { "matrix": [4, 14], "x": 15.25, "y": 4.25 } + ] + } + } +} \ No newline at end of file diff --git a/keyboards/era/era65/keymaps/default/keymap.c b/keyboards/era/era65/keymaps/default/keymap.c new file mode 100644 index 000000000000..b412fe3d082c --- /dev/null +++ b/keyboards/era/era65/keymaps/default/keymap.c @@ -0,0 +1,37 @@ +// Copyright 2018-2022 QMK (@qmk) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_65_combo( + 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_INS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGUP, + KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + * │ ` │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │PSc│Scr│Pause│Ins│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │Hom│ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │ │ │ │ │ │ │ │Mut│Vl-│Vl+│ │ │ │End│ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ + */ + [1] = LAYOUT_65_combo( + 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_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, KC_END, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +}; diff --git a/keyboards/era/era65/keymaps/via/keymap.c b/keyboards/era/era65/keymaps/via/keymap.c new file mode 100644 index 000000000000..f87b1b911411 --- /dev/null +++ b/keyboards/era/era65/keymaps/via/keymap.c @@ -0,0 +1,68 @@ +// Copyright 2018-2022 QMK (@qmk) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_65_combo( + 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_INS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGUP, + KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + * │ ` │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │PSc│Scr│Pause│Ins│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │Hom│ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │ │ │ │ │ │ │ │Mut│Vl-│Vl+│ │ │ │End│ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ + */ + [1] = LAYOUT_65_combo( + 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_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, KC_END, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [2] = LAYOUT_65_combo( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [3] = LAYOUT_65_combo( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [4] = LAYOUT_65_combo( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [5] = LAYOUT_65_combo( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/era/era65/keymaps/via/rules.mk b/keyboards/era/era65/keymaps/via/rules.mk new file mode 100644 index 000000000000..036bd6d1c3ec --- /dev/null +++ b/keyboards/era/era65/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/era/era65/mcuconf.h b/keyboards/era/era65/mcuconf.h new file mode 100644 index 000000000000..c9de0026f148 --- /dev/null +++ b/keyboards/era/era65/mcuconf.h @@ -0,0 +1,8 @@ +// Copyright 2022 MatteoDM +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once +#include_next + +/* Used for backlight display */ +#undef RP_PWM_USE_PWM0 +#define RP_PWM_USE_PWM0 TRUE \ No newline at end of file diff --git a/keyboards/era/era65/readme.md b/keyboards/era/era65/readme.md new file mode 100644 index 000000000000..cd25aafb1f77 --- /dev/null +++ b/keyboards/era/era65/readme.md @@ -0,0 +1,25 @@ +# ERA65 + +ERA65 Keyboard + +* Keyboard Maintainer: [ERA](https://github.com/eerraa) +* Hardware Supported: RP2040 +* Hardware Availability: [ERA](https://github.com/eerraa) + +Make example for this keyboard (after setting up your build environment): + + make era/era65:default + +Flashing example for this keyboard: + + make era/era65: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**: Short the reset hole of the PCB twice within 1 second. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/era/era65/rules.mk b/keyboards/era/era65/rules.mk new file mode 100644 index 000000000000..12a6f414c46b --- /dev/null +++ b/keyboards/era/era65/rules.mk @@ -0,0 +1,2 @@ +BACKLIGHT_DRIVER = pwm +DEBOUNCE_TYPE = asym_eager_defer_pk \ No newline at end of file From 49f3ffa2640c6f84dd29a7f90b22ce22d0bcbea6 Mon Sep 17 00:00:00 2001 From: d-floe <31980883+d-floe@users.noreply.github.com> Date: Mon, 16 Jan 2023 22:33:49 -0600 Subject: [PATCH 072/139] [Keyboard] Add Bubble 75 (#18863) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/bubble75/hotswap/config.h | 114 ++++++++++++++++++ keyboards/bubble75/hotswap/hotswap.c | 58 +++++++++ keyboards/bubble75/hotswap/hotswap.h | 35 ++++++ keyboards/bubble75/hotswap/info.json | 98 +++++++++++++++ .../bubble75/hotswap/keymaps/default/keymap.c | 40 ++++++ .../bubble75/hotswap/keymaps/via/keymap.c | 40 ++++++ .../bubble75/hotswap/keymaps/via/rules.mk | 1 + keyboards/bubble75/hotswap/readme.md | 22 ++++ keyboards/bubble75/hotswap/rules.mk | 13 ++ 9 files changed, 421 insertions(+) create mode 100644 keyboards/bubble75/hotswap/config.h create mode 100644 keyboards/bubble75/hotswap/hotswap.c create mode 100644 keyboards/bubble75/hotswap/hotswap.h create mode 100644 keyboards/bubble75/hotswap/info.json create mode 100644 keyboards/bubble75/hotswap/keymaps/default/keymap.c create mode 100644 keyboards/bubble75/hotswap/keymaps/via/keymap.c create mode 100644 keyboards/bubble75/hotswap/keymaps/via/rules.mk create mode 100644 keyboards/bubble75/hotswap/readme.md create mode 100644 keyboards/bubble75/hotswap/rules.mk diff --git a/keyboards/bubble75/hotswap/config.h b/keyboards/bubble75/hotswap/config.h new file mode 100644 index 000000000000..8497c88839d6 --- /dev/null +++ b/keyboards/bubble75/hotswap/config.h @@ -0,0 +1,114 @@ +/* Copyright 2022 Velocifire + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "config_common.h" + +/* key matrix pins */ +#define MATRIX_ROW_PINS { F4, F5, F6, F7, C7, F1 } +#define MATRIX_COL_PINS { B0, B1, B2, B3, E6, F0, D0, D1, D4, D6, D7, B4, B5, B6, C6 } +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE + +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +#define FORCE_NKRO + +/* WS2812 RGB */ +#ifdef RGB_MATRIX_ENABLE +#define RGB_DI_PIN B7 +#define RGBLED_NUM 81 +#define RGB_MATRIX_LED_COUNT 81 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#define RGBLIGHT_LAYERS +//#define RGBLIGHT_LAYER_BLINK +#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF + +#define RGB_MATRIX_KEYPRESSES + +#define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 +#define RGB_MATRIX_LED_FLUSH_LIMIT 16 +#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 +//#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT +#define RGB_MATRIX_DEFAULT_HUE 0 +#define RGB_MATRIX_DEFAULT_SAT 255 +#define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS +#define RGB_MATRIX_DEFAULT_SPD 127 + + + + +// RGB Matrix Animation modes. Explicitly enabled +// For full list of effects, see: +// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects +// #define ENABLE_RGB_MATRIX_ALPHAS_MODS +// #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN +// #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_BREATHING +// #define ENABLE_RGB_MATRIX_BAND_SAT +// #define ENABLE_RGB_MATRIX_BAND_VAL +// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT +// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL +#define ENABLE_RGB_MATRIX_CYCLE_ALL +#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN +#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN +#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL +#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL +#define ENABLE_RGB_MATRIX_DUAL_BEACON +#define ENABLE_RGB_MATRIX_RAINBOW_BEACON +// #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS +#define ENABLE_RGB_MATRIX_RAINDROPS +// #define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +// #define ENABLE_RGB_MATRIX_HUE_BREATHING +// #define ENABLE_RGB_MATRIX_HUE_PENDULUM +// #define ENABLE_RGB_MATRIX_HUE_WAVE +// #define ENABLE_RGB_MATRIX_PIXEL_RAIN +// #define ENABLE_RGB_MATRIX_PIXEL_FLOW +// #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL +// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined +#define ENABLE_RGB_MATRIX_TYPING_HEATMAP +#define ENABLE_RGB_MATRIX_DIGITAL_RAIN +// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +#define ENABLE_RGB_MATRIX_SPLASH +#define ENABLE_RGB_MATRIX_MULTISPLASH +#define ENABLE_RGB_MATRIX_SOLID_SPLASH +#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH + +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#endif diff --git a/keyboards/bubble75/hotswap/hotswap.c b/keyboards/bubble75/hotswap/hotswap.c new file mode 100644 index 000000000000..97ca40446c1f --- /dev/null +++ b/keyboards/bubble75/hotswap/hotswap.c @@ -0,0 +1,58 @@ +/* Copyright 2022 Velocifire + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "hotswap.h" +#ifdef RGB_MATRIX_ENABLE +led_config_t g_led_config = { + { + /* Key Matrix to LED Index */ + { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, NO_LED, 13 }, + { 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14 }, + { 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43 }, + { 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, NO_LED, 44 }, + { 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, NO_LED, 70, 71 }, + { 80, 79, 78, NO_LED, NO_LED, 77, NO_LED, NO_LED, 76, 75, NO_LED, 74, NO_LED, 73, 72 } + }, { + /* LED Index to Physical Position */ + // Switch LEDs + {0,0}, {23,0}, {38,0}, {54,0}, {69,0}, {75,0}, {90,0}, {105,0}, {120,0}, {143,0}, {158,0}, {173,0}, {188,0}, {225,0}, + {225,18}, {203,18}, {180,18}, {165,18}, {150,18}, {135,18}, {120,18}, {105,18}, {90,18}, {75,18}, {60,18}, {45,18}, {30,18}, {15,18}, {0,18}, + {4,30}, {19,30}, {34,30}, {49,30}, {64,30}, {79,30}, {84,30}, {99,30}, {114,30}, {129,30}, {144,30}, {159,30}, {174,30}, {219,30}, {225,30}, + {225,41}, {201,41}, {191,41}, {161,41}, {146,41}, {131,41}, {116,41}, {101,41}, {86,41}, {71,41}, {56,41}, {41,41}, {26,41}, {6,41}, + {13,52}, {34,52}, {49,52}, {64,52}, {79,52}, {94,52}, {109,52}, {124,52}, {139,52}, {154,52}, {169,52}, {189,52}, {210,52}, {225,52}, + {225,64}, {210,64}, {195,64}, {186,64}, {167,64}, {94,64}, {39,64}, {21,64}, {2,64}, + }, { + 4,4,4,4,4,4,4,4,4,4,4,4, 4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4, 4, + 4,4,4,4,4,4,4,4,4,4,4,4, 4,4, + 4,4,4, 4, 4,4, 4, 4,4, + } +}; + +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } + if (host_keyboard_led_state().caps_lock) { // Capslock = WHITE + rgb_matrix_set_color(57, 255, 255, 255); + } + return true; +} + + +#endif diff --git a/keyboards/bubble75/hotswap/hotswap.h b/keyboards/bubble75/hotswap/hotswap.h new file mode 100644 index 000000000000..9914ea651b8a --- /dev/null +++ b/keyboards/bubble75/hotswap/hotswap.h @@ -0,0 +1,35 @@ +/* Copyright 2022 Velocifire + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K014, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K314, \ + K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K414, \ + K500, K501, K502, K505, K508, K509, K511, K513, K514 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, KC_NO, K014 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, KC_NO, K314 }, \ + { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414 }, \ + { K500, K501, K502, KC_NO, KC_NO, K505, KC_NO, KC_NO, K508, K509, KC_NO, K511, KC_NO, K513, K514 } \ +} diff --git a/keyboards/bubble75/hotswap/info.json b/keyboards/bubble75/hotswap/info.json new file mode 100644 index 000000000000..b9519f15f184 --- /dev/null +++ b/keyboards/bubble75/hotswap/info.json @@ -0,0 +1,98 @@ +{ + "keyboard_name": "bubble75", + "url": "", + "manufacturer": "phl", + "maintainer": "velocifire", + "usb": { + "vid": "0x4242", + "pid": "0x5A4C", + "device_version": "0.0.1" + }, + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "layouts": { + "LAYOUT": { + "layout": [{"x":0, "y":0}, + {"x":1.5, "y":0}, + {"x":2.5, "y":0}, + {"x":3.5, "y":0}, + {"x":4.5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10.5, "y":0}, + {"x":11.5, "y":0}, + {"x":12.5, "y":0}, + {"x":13.5, "y":0}, + {"x":15, "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, "y":1.5}, + {"x":0, "y":2.5, "w":1.5}, + {"x":1.5, "y":2.5}, + {"x":2.5, "y":2.5}, + {"x":3.5, "y":2.5}, + {"x":4.5, "y":2.5}, + {"x":5.5, "y":2.5}, + {"x":6.5, "y":2.5}, + {"x":7.5, "y":2.5}, + {"x":8.5, "y":2.5}, + {"x":9.5, "y":2.5}, + {"x":10.5, "y":2.5}, + {"x":11.5, "y":2.5}, + {"x":12.5, "y":2.5}, + {"x":13.5, "y":2.5, "w":1.5}, + {"x":15, "y":2.5}, + {"x":0, "y":3.5, "w":1.75}, + {"x":1.75, "y":3.5}, + {"x":2.75, "y":3.5}, + {"x":3.75, "y":3.5}, + {"x":4.75, "y":3.5}, + {"x":5.75, "y":3.5}, + {"x":6.75, "y":3.5}, + {"x":7.75, "y":3.5}, + {"x":8.75, "y":3.5}, + {"x":9.75, "y":3.5}, + {"x":10.75, "y":3.5}, + {"x":11.75, "y":3.5}, + {"x":12.75, "y":3.5, "w":2.25}, + {"x":15, "y":3.5}, + {"x":0, "y":4.5, "w":2.25}, + {"x":2.25, "y":4.5}, + {"x":3.25, "y":4.5}, + {"x":4.25, "y":4.5}, + {"x":5.25, "y":4.5}, + {"x":6.25, "y":4.5}, + {"x":7.25, "y":4.5}, + {"x":8.25, "y":4.5}, + {"x":9.25, "y":4.5}, + {"x":10.25, "y":4.5}, + {"x":11.25, "y":4.5}, + {"x":12.25, "y":4.5, "w":1.75}, + {"x":14, "y":4.5}, + {"x":15, "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":13, "y":5.5}, + {"x":14, "y":5.5}, + {"x":15, "y":5.5}] + } + } +} diff --git a/keyboards/bubble75/hotswap/keymaps/default/keymap.c b/keyboards/bubble75/hotswap/keymaps/default/keymap.c new file mode 100644 index 000000000000..7ce1f6bf91c6 --- /dev/null +++ b/keyboards/bubble75/hotswap/keymaps/default/keymap.c @@ -0,0 +1,40 @@ +// Copyright 2022 Velocifire +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_END, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), + + [1] = LAYOUT( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, RGB_HUD, + _______, _______, _______, RGB_MOD, RGB_TOG, _______, RGB_SPD, RGB_VAD, RGB_SPI), + + [2] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [3] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______) + +}; diff --git a/keyboards/bubble75/hotswap/keymaps/via/keymap.c b/keyboards/bubble75/hotswap/keymaps/via/keymap.c new file mode 100644 index 000000000000..7ce1f6bf91c6 --- /dev/null +++ b/keyboards/bubble75/hotswap/keymaps/via/keymap.c @@ -0,0 +1,40 @@ +// Copyright 2022 Velocifire +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_END, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), + + [1] = LAYOUT( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, RGB_HUD, + _______, _______, _______, RGB_MOD, RGB_TOG, _______, RGB_SPD, RGB_VAD, RGB_SPI), + + [2] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [3] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______) + +}; diff --git a/keyboards/bubble75/hotswap/keymaps/via/rules.mk b/keyboards/bubble75/hotswap/keymaps/via/rules.mk new file mode 100644 index 000000000000..036bd6d1c3ec --- /dev/null +++ b/keyboards/bubble75/hotswap/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/bubble75/hotswap/readme.md b/keyboards/bubble75/hotswap/readme.md new file mode 100644 index 000000000000..a5a7fc56c55e --- /dev/null +++ b/keyboards/bubble75/hotswap/readme.md @@ -0,0 +1,22 @@ +# Bubble 75 + +![image](https://i.imgur.com/9J01bYHh.png) + + +A compact exploded F-Row 75% made by Velocifire. + +* Keyboard Maintainer: [d-floe](https://github.com/d-floe) +* Hardware Supported: Bubble75 Hotswap +* Hardware Availability: [velocifiretech.com](https://www.velocifiretech.com/collections/keyboards/products/bubble-75-premium-keyboard-kit?variant=39743137939574) + +Make example for this keyboard (after setting up your build environment): + + make bubble75/hotswap:default + +Flashing example for this keyboard: + + make bubble75/hotswap:default:flash + +Bootloader: Press the physical reset button on the bottom side of the PCB or hold down ESC while plugging in the board. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/bubble75/hotswap/rules.mk b/keyboards/bubble75/hotswap/rules.mk new file mode 100644 index 000000000000..d8dc7dca6f83 --- /dev/null +++ b/keyboards/bubble75/hotswap/rules.mk @@ -0,0 +1,13 @@ +# Build Options +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 +AUDIO_ENABLE = no # Audio output + +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812 +NO_USB_STARTUP_CHECK = yes \ No newline at end of file From 7b795b2921dc03ec77f91fc7c9c030a59e5525a0 Mon Sep 17 00:00:00 2001 From: Alabahuy Date: Tue, 17 Jan 2023 12:48:44 +0700 Subject: [PATCH 073/139] [Keyboard] add kamigakushi (#19514) --- keyboards/kamigakushi/config.h | 24 ++++ keyboards/kamigakushi/halconf.h | 5 + keyboards/kamigakushi/info.json | 123 ++++++++++++++++++ .../kamigakushi/keymaps/default/keymap.c | 37 ++++++ keyboards/kamigakushi/keymaps/via/keymap.c | 37 ++++++ keyboards/kamigakushi/keymaps/via/rules.mk | 1 + keyboards/kamigakushi/mcuconf.h | 6 + keyboards/kamigakushi/readme.md | 27 ++++ keyboards/kamigakushi/rules.mk | 3 + 9 files changed, 263 insertions(+) create mode 100644 keyboards/kamigakushi/config.h create mode 100644 keyboards/kamigakushi/halconf.h create mode 100644 keyboards/kamigakushi/info.json create mode 100644 keyboards/kamigakushi/keymaps/default/keymap.c create mode 100644 keyboards/kamigakushi/keymaps/via/keymap.c create mode 100644 keyboards/kamigakushi/keymaps/via/rules.mk create mode 100644 keyboards/kamigakushi/mcuconf.h create mode 100644 keyboards/kamigakushi/readme.md create mode 100644 keyboards/kamigakushi/rules.mk diff --git a/keyboards/kamigakushi/config.h b/keyboards/kamigakushi/config.h new file mode 100644 index 000000000000..c17e6d81f5a4 --- /dev/null +++ b/keyboards/kamigakushi/config.h @@ -0,0 +1,24 @@ +// Copyright 2023 Alabahuy (@Alabahuy) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define I2C_DRIVER I2CD2 +#define I2C1_SDA_PIN GP26 +#define I2C1_SCL_PIN GP27 + +/* + * 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/kamigakushi/halconf.h b/keyboards/kamigakushi/halconf.h new file mode 100644 index 000000000000..7ba72351cb80 --- /dev/null +++ b/keyboards/kamigakushi/halconf.h @@ -0,0 +1,5 @@ +// Copyright 2023 Alabahuy (@Alabahuy) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once +#define HAL_USE_I2C TRUE +#include_next diff --git a/keyboards/kamigakushi/info.json b/keyboards/kamigakushi/info.json new file mode 100644 index 000000000000..fc8de7bdca10 --- /dev/null +++ b/keyboards/kamigakushi/info.json @@ -0,0 +1,123 @@ +{ + "manufacturer": "Alabahuy", + "keyboard_name": "kamigakushi", + "maintainer": "Alabahuy", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "indicators": { + "caps_lock": "GP17", + "on_state": 1 + }, + "rgblight": { + "pin": "GP25", + "led_count": 2, + "hue_steps": 8, + "saturation_steps": 8, + "brightness_steps": 8, + "max_brightness": 255, + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "rgb_test": true, + "snake": true, + "static_gradient": true, + "twinkle": true + } + }, + "matrix_pins": { + "cols": ["GP28", "GP5", "GP4", "GP3", "GP2", "GP1", "GP0", "GP14", "GP13", "GP12", "GP11", "GP10", "GP9", "GP8", "GP7" ], + "rows": ["GP24", "GP29", "GP6", "GP15", "GP16"] + }, + "processor": "RP2040", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0765", + "vid": "0x414C" + }, + "layouts": { + "LAYOUT_65_ansi_blocker_tsangan": { + "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], "w": 2, "x": 13, "y": 0 }, + { "matrix": [0, 14], "x": 15, "y": 0 }, + { "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1.5, "y": 1 }, + { "matrix": [1, 2], "x": 2.5, "y": 1 }, + { "matrix": [1, 3], "x": 3.5, "y": 1 }, + { "matrix": [1, 4], "x": 4.5, "y": 1 }, + { "matrix": [1, 5], "x": 5.5, "y": 1 }, + { "matrix": [1, 6], "x": 6.5, "y": 1 }, + { "matrix": [1, 7], "x": 7.5, "y": 1 }, + { "matrix": [1, 8], "x": 8.5, "y": 1 }, + { "matrix": [1, 9], "x": 9.5, "y": 1 }, + { "matrix": [1, 10], "x": 10.5, "y": 1 }, + { "matrix": [1, 11], "x": 11.5, "y": 1 }, + { "matrix": [1, 12], "x": 12.5, "y": 1 }, + { "matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1 }, + { "matrix": [1, 14], "x": 15, "y": 1 }, + { "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1.75, "y": 2 }, + { "matrix": [2, 2], "x": 2.75, "y": 2 }, + { "matrix": [2, 3], "x": 3.75, "y": 2 }, + { "matrix": [2, 4], "x": 4.75, "y": 2 }, + { "matrix": [2, 5], "x": 5.75, "y": 2 }, + { "matrix": [2, 6], "x": 6.75, "y": 2 }, + { "matrix": [2, 7], "x": 7.75, "y": 2 }, + { "matrix": [2, 8], "x": 8.75, "y": 2 }, + { "matrix": [2, 9], "x": 9.75, "y": 2 }, + { "matrix": [2, 10], "x": 10.75, "y": 2 }, + { "matrix": [2, 11], "x": 11.75, "y": 2 }, + { "matrix": [2, 12], "w": 2.25, "x": 12.75, "y": 2 }, + { "matrix": [2, 14], "x": 15, "y": 2 }, + { "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, + { "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "matrix": [3, 12], "w": 1.75, "x": 12.25, "y": 3 }, + { "matrix": [3, 13], "x": 14, "y": 3 }, + { "matrix": [3, 14], "x": 15, "y": 3 }, + { "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 }, + { "matrix": [4, 1], "x": 1.5, "y": 4 }, + { "matrix": [4, 2], "w": 1.5, "x": 2.5, "y": 4 }, + { "matrix": [4, 3], "w": 7, "x": 4, "y": 4 }, + { "matrix": [4, 10], "w": 1.5, "x": 11, "y": 4 }, + { "matrix": [4, 12], "x": 13, "y": 4 }, + { "matrix": [4, 13], "x": 14, "y": 4 }, + { "matrix": [4, 14], "x": 15, "y": 4 } + ] + } + } +} \ No newline at end of file diff --git a/keyboards/kamigakushi/keymaps/default/keymap.c b/keyboards/kamigakushi/keymaps/default/keymap.c new file mode 100644 index 000000000000..6bbe6602a19b --- /dev/null +++ b/keyboards/kamigakushi/keymaps/default/keymap.c @@ -0,0 +1,37 @@ +// Copyright 2023 Alabahuy (@Alabahuy) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│Hom│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │PgU│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │PgD│ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│ ↑ │End│ + * ├──────┬─┴─┬─┴───┼───┴───┴───┴───┴───┴───┴─┬─┴───┼──┬───┼───┼───┤ + * │ Ctrl │GUI│ Alt │ │ FN │ │ ← │ ↓ │ → │ + * └──────┴───┴─────┴─────────────────────────┴─────┘ └───┴───┴───┘ + */ + [0] = LAYOUT_65_ansi_blocker_tsangan( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + + [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, QK_BOOT, + _______, _______, _______, _______, _______, _______, KC_INS, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ) + +}; diff --git a/keyboards/kamigakushi/keymaps/via/keymap.c b/keyboards/kamigakushi/keymaps/via/keymap.c new file mode 100644 index 000000000000..6bbe6602a19b --- /dev/null +++ b/keyboards/kamigakushi/keymaps/via/keymap.c @@ -0,0 +1,37 @@ +// Copyright 2023 Alabahuy (@Alabahuy) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│Hom│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │PgU│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │PgD│ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│ ↑ │End│ + * ├──────┬─┴─┬─┴───┼───┴───┴───┴───┴───┴───┴─┬─┴───┼──┬───┼───┼───┤ + * │ Ctrl │GUI│ Alt │ │ FN │ │ ← │ ↓ │ → │ + * └──────┴───┴─────┴─────────────────────────┴─────┘ └───┴───┴───┘ + */ + [0] = LAYOUT_65_ansi_blocker_tsangan( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + + [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, QK_BOOT, + _______, _______, _______, _______, _______, _______, KC_INS, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ) + +}; diff --git a/keyboards/kamigakushi/keymaps/via/rules.mk b/keyboards/kamigakushi/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/kamigakushi/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/kamigakushi/mcuconf.h b/keyboards/kamigakushi/mcuconf.h new file mode 100644 index 000000000000..8caa11e876db --- /dev/null +++ b/keyboards/kamigakushi/mcuconf.h @@ -0,0 +1,6 @@ +// Copyright 2023 Alabahuy (@Alabahuy) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once +#include_next +#undef RP_I2C_USE_I2C1 +#define RP_I2C_USE_I2C1 TRUE diff --git a/keyboards/kamigakushi/readme.md b/keyboards/kamigakushi/readme.md new file mode 100644 index 000000000000..e50b8563f345 --- /dev/null +++ b/keyboards/kamigakushi/readme.md @@ -0,0 +1,27 @@ +# kamigakushi + +![kamigakushi](https://imgur.com/3xCpeNDh.jpg) + +PCB Mechanical keyboard replace for kamigakushi + +* Keyboard Maintainer: [Alabahuy](https://github.com/Alabahuy) +* Hardware Supported: 65% Layout, RP2040 MCU +* Hardware Availability: Private GB + +Make example for this keyboard (after setting up your build environment): + + make kamigakushi:default + +Flashing example for this keyboard: + + make kamigakushi:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/kamigakushi/rules.mk b/keyboards/kamigakushi/rules.mk new file mode 100644 index 000000000000..027b21b5fe0c --- /dev/null +++ b/keyboards/kamigakushi/rules.mk @@ -0,0 +1,3 @@ +SERIAL_DRIVER = vendor +WS2812_DRIVER = vendor +OLED_DRIVER = SSD1306 \ No newline at end of file From c6cc104810633c687a5c563befa44e3a7282b9e4 Mon Sep 17 00:00:00 2001 From: JW2586 <70282382+JW2586@users.noreply.github.com> Date: Tue, 17 Jan 2023 05:56:37 +0000 Subject: [PATCH 074/139] [Keyboard] Waterfowl - Updated default keymap (#19438) Co-authored-by: jack <0x6a73@protonmail.com> --- keyboards/waterfowl/keymaps/default/keymap.c | 44 ++++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/keyboards/waterfowl/keymaps/default/keymap.c b/keyboards/waterfowl/keymaps/default/keymap.c index 18b750466f09..4d32cf300f32 100644 --- a/keyboards/waterfowl/keymaps/default/keymap.c +++ b/keyboards/waterfowl/keymaps/default/keymap.c @@ -33,17 +33,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------| |------+------+------+------+------| * | A | S | D | F | G | | H | J | K | L | ; | * |------+------+------+------+------| ,-----. ,-----. |------+------+------+------+------| - * | Z | X | C | V | B | | 2 | | 3 | | N | M | , | . | / | + * | Z | X | C | V | B | |CAPS | |NUMLK| | N | M | , | . | / | * `----------------------------------' `-----' `-----' `----------------------------------' * ,-----. ,--------------------. ,--------------------. ,-----. * | 1 | | DEL | SPACE | TAB | | ESC | BS | ENTER | | 4 | * `-----' `--------------------' `--------------------' `-----' */ [_QWERTY] = LAYOUT( - KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, - MT(MOD_LGUI, KC_A), MT(MOD_LALT, KC_S), MT(MOD_LCTL, KC_D), MT(MOD_LSFT, KC_F), KC_G, KC_H, MT(MOD_LSFT, KC_J), MT(MOD_LCTL, KC_K), MT(MOD_LALT, KC_L), MT(MOD_LGUI, KC_SCLN), - KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, - KC_1, LT(3,KC_DEL), LT(1,KC_SPC), KC_TAB, KC_2, KC_3, KC_ESC, KC_BSPC, LT(2,KC_ENT), KC_4 + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + MT(MOD_LGUI, KC_A), MT(MOD_LALT, KC_S), MT(MOD_LCTL, KC_D), MT(MOD_LSFT, KC_F), KC_G, KC_H, MT(MOD_LSFT, KC_J), MT(MOD_LCTL, KC_K), MT(MOD_LALT, KC_L), MT(MOD_LGUI, KC_SCLN), + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + KC_1, LT(3,KC_DEL), LT(1,KC_SPC), KC_TAB, KC_CAPS, KC_NUM, KC_ESC, KC_BSPC, LT(2,KC_ENT), KC_4 ), /* NAVNUM @@ -53,37 +53,37 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------| |------+------+------+------+------| * | Home | Left | Down | Right| End | | = | 4 | 5 | 6 | + | * |------+------+------+------+------| ,-----. ,-----. |------+------+------+------+------| - * | | | INS | | | | 2 | | 3 | | 0 | 1 | 2 | 3 | * | + * | | | INS | | | |CAPS | |NUMLK| | 0 | 1 | 2 | 3 | * | * `----------------------------------' `-----' `-----' `----------------------------------' * ,-----. ,--------------------. ,--------------------. ,-----. - * | 1 | | DEL | SPACE | MO(3)| | ESC | BS | ENTER | | 4 | + * | 1 | | DEL | SPACE | TAB | | ESC | BS | ENTER | | 4 | * `-----' `--------------------' `--------------------' `-----' */ [_NAVNUM] = LAYOUT( - KC_NO, KC_PGUP, KC_UP, KC_PGDN, KC_NO, KC_SLSH, KC_7, KC_8, KC_9, KC_MINS, - KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_EQL, KC_4, KC_5, KC_6, KC_PLUS, - KC_NO, KC_NO, KC_INS, KC_NO, KC_NO, KC_0, KC_1, KC_2, KC_3, KC_ASTR, - KC_1, LT(3,KC_DEL), LT(1,KC_SPC), KC_TAB, KC_2, KC_3, KC_ESC, KC_BSPC, LT(2,KC_ENT), KC_4 + KC_NO, KC_PGUP, KC_UP, KC_PGDN, KC_NO, KC_SLSH, KC_7, KC_8, KC_9, KC_MINS, + KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_EQL, KC_4, KC_5, KC_6, KC_PLUS, + KC_NO, KC_NO, KC_INS, KC_NO, KC_NO, KC_0, KC_1, KC_2, KC_3, KC_ASTR, + KC_1, LT(3,KC_DEL), LT(1,KC_SPC), KC_TAB, KC_CAPS, KC_NUM, KC_ESC, KC_BSPC, LT(2,KC_ENT), KC_4 ), /* SYM * * ,----------------------------------. ,----------------------------------. - * | % | @ | [ | ] | \ | | ¦ | ¬ | ^ | | | + * | % | @ | [ | ] | \ | | | | ^ | | | * |------+------+------+------+------| |------+------+------+------+------| * | # | ! | ( | ) | | | | _ | ' | " | ~ | ` | * |------+------+------+------+------| ,-----. ,-----. |------+------+------+------+------| - * | $ | £ | { | } | & | | 2 | | 3 | | | | | | | + * | $ | £ | { | } | & | |CAPS | |NUMLK| | | | | | | * `----------------------------------' `-----' `-----' `----------------------------------' * ,-----. ,--------------------. ,--------------------. ,-----. * | 1 | | DEL | SPACE | TAB | | ESC | BS | ENTER | | 4 | * `-----' `--------------------' `--------------------' `-----' */ [_SYM] = LAYOUT( - KC_PERC, S(KC_QUOT), KC_LBRC, KC_RBRC, KC_NUBS, RALT(KC_GRV), S(KC_GRV), KC_CIRC, KC_NO, KC_NO, - KC_NONUS_HASH, KC_EXLM, KC_LPRN, KC_RPRN, S(KC_NUBS), KC_UNDS, KC_QUOT, S(KC_2), S(KC_NUHS), KC_GRV, - KC_DLR, S(KC_3), KC_LCBR, KC_RCBR, KC_AMPR, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_1, LT(3,KC_DEL), LT(1,KC_SPC), KC_TAB, KC_2, KC_3, KC_ESC, KC_BSPC, LT(2,KC_ENT), KC_4 + KC_PERC, KC_AT, KC_LBRC, KC_RBRC, KC_BSLS, KC_NO, KC_NO, KC_CIRC, KC_NO, KC_NO, + KC_HASH, KC_EXLM, KC_LPRN, KC_RPRN, KC_PIPE, KC_UNDS, KC_QUOT, KC_DQT, KC_TILD, KC_GRV, + KC_DLR, KC_NO, KC_LCBR, KC_RCBR, KC_AMPR, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_1, LT(3,KC_DEL), LT(1,KC_SPC), KC_TAB, KC_CAPS, KC_NUM, KC_ESC, KC_BSPC, LT(2,KC_ENT), KC_4 ), /* FUNC @@ -93,16 +93,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------| |------+------+------+------+------| * | | | | | | | | F4 | F5 | F6 | F12 | * |------+------+------+------+------| ,-----. ,-----. |------+------+------+------+------| - * | Reset| | | | | | 2 | | 3 | | F10 | F1 | F2 | F3 | F13 | + * | Reset| | | | | |CAPS | |NUMLK| | F10 | F1 | F2 | F3 | F13 | * `----------------------------------' `-----' `-----' `----------------------------------' * ,-----. ,--------------------. ,--------------------. ,-----. * | 1 | | DEL | SPACE | TAB | | ESC | BS | ENTER | | 4 | * `-----' `--------------------' `--------------------' `-----' */ [_FUNC] = LAYOUT( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_F11, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F4, KC_F5, KC_F6, KC_F12, - QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_F10, KC_F1, KC_F2, KC_F3, KC_F13, - KC_1, LT(3,KC_DEL), LT(1,KC_SPC), KC_TAB, KC_2, KC_3, KC_ESC, KC_BSPC, LT(2,KC_ENT), KC_4 + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_F11, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F4, KC_F5, KC_F6, KC_F12, + QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_F10, KC_F1, KC_F2, KC_F3, KC_F13, + KC_1, LT(3,KC_DEL), LT(1,KC_SPC), KC_TAB, KC_CAPS, KC_NUM, KC_ESC, KC_BSPC, LT(2,KC_ENT), KC_4 ), }; From 9f84b9ac095f31d65ab0cb9310bf5130cc9775aa Mon Sep 17 00:00:00 2001 From: Ivan Gromov <38141348+key10iq@users.noreply.github.com> Date: Tue, 17 Jan 2023 09:57:18 +0400 Subject: [PATCH 075/139] [Keyboard] Add kt3700 (#19432) Co-authored-by: Sergey Vlasov Co-authored-by: Joel Challis Co-authored-by: Ryan --- keyboards/keyten/kt3700/config.h | 41 +++++++++ keyboards/keyten/kt3700/info.json | 81 +++++++++++++++++ .../keyten/kt3700/keymaps/default/keymap.c | 28 ++++++ .../keyten/kt3700/keymaps/default/readme.md | 1 + keyboards/keyten/kt3700/keymaps/via/keymap.c | 52 +++++++++++ keyboards/keyten/kt3700/keymaps/via/readme.md | 1 + keyboards/keyten/kt3700/keymaps/via/rules.mk | 1 + keyboards/keyten/kt3700/kt3700.c | 17 ++++ keyboards/keyten/kt3700/kt3700.h | 87 +++++++++++++++++++ keyboards/keyten/kt3700/readme.md | 27 ++++++ keyboards/keyten/kt3700/rules.mk | 12 +++ 11 files changed, 348 insertions(+) create mode 100644 keyboards/keyten/kt3700/config.h create mode 100644 keyboards/keyten/kt3700/info.json create mode 100644 keyboards/keyten/kt3700/keymaps/default/keymap.c create mode 100644 keyboards/keyten/kt3700/keymaps/default/readme.md create mode 100644 keyboards/keyten/kt3700/keymaps/via/keymap.c create mode 100644 keyboards/keyten/kt3700/keymaps/via/readme.md create mode 100644 keyboards/keyten/kt3700/keymaps/via/rules.mk create mode 100644 keyboards/keyten/kt3700/kt3700.c create mode 100644 keyboards/keyten/kt3700/kt3700.h create mode 100644 keyboards/keyten/kt3700/readme.md create mode 100644 keyboards/keyten/kt3700/rules.mk diff --git a/keyboards/keyten/kt3700/config.h b/keyboards/keyten/kt3700/config.h new file mode 100644 index 000000000000..ba1a69c0bd2e --- /dev/null +++ b/keyboards/keyten/kt3700/config.h @@ -0,0 +1,41 @@ +/* +Copyright 2022 Ivan Gromov (@key10iq) + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "config_common.h" + +/* + * 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, B7, B5, B4, B3, A15 } +#define MATRIX_COL_PINS { B0, B13, B9, B8 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +#define LED_NUM_LOCK_PIN B6 + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 diff --git a/keyboards/keyten/kt3700/info.json b/keyboards/keyten/kt3700/info.json new file mode 100644 index 000000000000..fe33c49fa87c --- /dev/null +++ b/keyboards/keyten/kt3700/info.json @@ -0,0 +1,81 @@ +{ + "keyboard_name": "kt3700", + "manufacturer": "keyten", + "url": "", + "maintainer": "key10iq", + "usb": { + "vid": "0xEB69", + "pid": "0x3700", + "device_version": "0.0.1" + }, + "processor": "STM32F401", + "bootloader": "stm32-dfu", + "layout_aliases": { + "LAYOUT_all": "LAYOUT_ortho_6x4" + }, + "community_layouts": ["numpad_6x4", "ortho_6x4"], + "layouts": { + "LAYOUT_numpad_6x4": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + + {"x":0, "y":2}, + {"x":1, "y":2}, + {"x":2, "y":2}, + {"x":3, "y":2}, + + {"x":0, "y":3}, + {"x":1, "y":3}, + {"x":2, "y":3}, + + {"x":0, "y":4}, + {"x":1, "y":4}, + {"x":2, "y":4}, + {"x":3, "y":3, "h":2}, + {"x":0, "y":5}, + {"x":1, "y":5}, + {"x":2, "y":5}, + + {"x":0, "y":6, "w":2}, + {"x":2, "y":6}, + {"x":3, "y":5, "h":2} + ] + }, + "LAYOUT_ortho_6x4": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + + {"x":0, "y":2}, + {"x":1, "y":2}, + {"x":2, "y":2}, + {"x":3, "y":2}, + + {"x":0, "y":3}, + {"x":1, "y":3}, + {"x":2, "y":3}, + {"x":3, "y":3}, + + {"x":0, "y":4}, + {"x":1, "y":4}, + {"x":2, "y":4}, + {"x":3, "y":4}, + + {"x":0, "y":5}, + {"x":1, "y":5}, + {"x":2, "y":5}, + {"x":3, "y":5}, + + {"x":0, "y":6}, + {"x":1, "y":6}, + {"x":2, "y":6}, + {"x":3, "y":6} + ] + } + } +} diff --git a/keyboards/keyten/kt3700/keymaps/default/keymap.c b/keyboards/keyten/kt3700/keymaps/default/keymap.c new file mode 100644 index 000000000000..b1d1e5168f3c --- /dev/null +++ b/keyboards/keyten/kt3700/keymaps/default/keymap.c @@ -0,0 +1,28 @@ +/* Copyright 2022 Ivan Gromov (@key10iq) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_ortho_6x4( + KC_ESC, KC_LCTL, KC_LALT, KC_BSPC, + KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_P7, KC_P8, KC_P9, KC_PSCR, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, KC_DEL, + KC_INS, KC_P0, KC_PDOT, KC_PENT) +}; diff --git a/keyboards/keyten/kt3700/keymaps/default/readme.md b/keyboards/keyten/kt3700/keymaps/default/readme.md new file mode 100644 index 000000000000..2d315a8536b4 --- /dev/null +++ b/keyboards/keyten/kt3700/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for kt3700 diff --git a/keyboards/keyten/kt3700/keymaps/via/keymap.c b/keyboards/keyten/kt3700/keymaps/via/keymap.c new file mode 100644 index 000000000000..46d733eeaed8 --- /dev/null +++ b/keyboards/keyten/kt3700/keymaps/via/keymap.c @@ -0,0 +1,52 @@ +/* Copyright 2022 Ivan Gromov (@key10iq) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_ortho_6x4( + KC_ESC, KC_LCTL, KC_LALT, KC_BSPC, + KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_P7, KC_P8, KC_P9, KC_PSCR, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, KC_DEL, + KC_INS, KC_P0, KC_PDOT, KC_PENT), + + [1] = LAYOUT_ortho_6x4( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______), + + [2] = LAYOUT_ortho_6x4( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______), + + [3] = LAYOUT_ortho_6x4( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______) +}; diff --git a/keyboards/keyten/kt3700/keymaps/via/readme.md b/keyboards/keyten/kt3700/keymaps/via/readme.md new file mode 100644 index 000000000000..eb53ddbfe13a --- /dev/null +++ b/keyboards/keyten/kt3700/keymaps/via/readme.md @@ -0,0 +1 @@ +# The VIA keymap for kt3700 diff --git a/keyboards/keyten/kt3700/keymaps/via/rules.mk b/keyboards/keyten/kt3700/keymaps/via/rules.mk new file mode 100644 index 000000000000..69de2e4c5a0c --- /dev/null +++ b/keyboards/keyten/kt3700/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/keyten/kt3700/kt3700.c b/keyboards/keyten/kt3700/kt3700.c new file mode 100644 index 000000000000..63596e1d21af --- /dev/null +++ b/keyboards/keyten/kt3700/kt3700.c @@ -0,0 +1,17 @@ +/* Copyright 2022 Ivan Gromov (@key10iq) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "kt3700.h" diff --git a/keyboards/keyten/kt3700/kt3700.h b/keyboards/keyten/kt3700/kt3700.h new file mode 100644 index 000000000000..7b65d4ba71ad --- /dev/null +++ b/keyboards/keyten/kt3700/kt3700.h @@ -0,0 +1,87 @@ +/* Copyright 2022 Ivan Gromov (@key10iq) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define XXX KC_NO + +/* LAYOUT_numpad_6x4 + * ┌───┬───┬───┬───┐ + * │00 │01 │02 │03 │ + * ├───┴───┴───┴───┤ + * │ │ + * ├───┬───┬───┬───┤ + * │10 │11 │12 │13 │ + * ├───┼───┼───┼───┤ + * │20 │21 │22 │ │ + * ├───┼───┼───┤33 │ + * │30 │31 │32 │ │ + * ├───┼───┼───┼───┤ + * │40 │41 │42 │ │ + * ├───┴───┼───┤53 │ + * │ 51 │52 │ │ + * └───────┴───┴───┘ + */ +#define LAYOUT_numpad_6x4( \ + K00, K01, K02, K03, \ + K10, K11, K12, K13, \ + K20, K21, K22, \ + K30, K31, K32, K33, \ + K40, K41, K42, \ + K51, K52, K53 \ +) { \ + { K00, K01, K02, K03 }, \ + { K10, K11, K12, K13 }, \ + { K20, K21, K22, XXX }, \ + { K30, K31, K32, K33 }, \ + { K40, K41, K42, XXX }, \ + { XXX, K51, K52, K53 } \ +} + +/* LAYOUT_ortho_6x4 + * ┌───┬───┬───┬───┐ + * │00 │01 │02 │03 │ + * ├───┴───┴───┴───┤ + * │ │ + * ├───┬───┬───┬───┤ + * │10 │11 │12 │13 │ + * ├───┼───┼───┼───┤ + * │20 │21 │22 │23 │ + * ├───┼───┼───┼───┤ + * │30 │31 │32 │33 │ + * ├───┼───┼───┼───┤ + * │40 │41 │42 │43 │ + * ├───┼───┼───┼───┤ + * │50 │51 │52 │53 │ + * └───┴───┴───┴───┘ + */ +#define LAYOUT_ortho_6x4( \ + K00, K01, K02, K03, \ + K10, K11, K12, K13, \ + K20, K21, K22, K23, \ + K30, K31, K32, K33, \ + K40, K41, K42, K43, \ + K50, K51, K52, K53 \ +) { \ + { K00, K01, K02, K03 }, \ + { K10, K11, K12, K13 }, \ + { K20, K21, K22, K23 }, \ + { K30, K31, K32, K33 }, \ + { K40, K41, K42, K43 }, \ + { K50, K51, K52, K53 } \ +} diff --git a/keyboards/keyten/kt3700/readme.md b/keyboards/keyten/kt3700/readme.md new file mode 100644 index 000000000000..a645013fb23d --- /dev/null +++ b/keyboards/keyten/kt3700/readme.md @@ -0,0 +1,27 @@ +# keyten kt3700 + +Replacement pcb for Cherry G80-3700. + +![kt3700 image](https://i.imgur.com/s5NhDAbl.png) + +* Keyboard Maintainer: [keyten](https://github.com/key10iq) +* Hardware Supported: keyten kt3700 +* Hardware Availability: [GB](https://t.me/keytenspcb/44) + +Make example for this keyboard (after setting up your build environment): + + make keyten/kt3700:default + +Flashing example for this keyboard: + + make keyten/kt3700: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 +* Keycode in layout: Press the key mapped to RESET if it is available +* Physical reset button: Hold down the BOOT0 button on the back of the PCB for a couple of seconds, then hold down the RESET button for a second diff --git a/keyboards/keyten/kt3700/rules.mk b/keyboards/keyten/kt3700/rules.mk new file mode 100644 index 000000000000..e3ecf72b0853 --- /dev/null +++ b/keyboards/keyten/kt3700/rules.mk @@ -0,0 +1,12 @@ +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output From 625e57480f47b261a3d116c7b20bb1aae1d8a911 Mon Sep 17 00:00:00 2001 From: QMK Bot Date: Mon, 16 Jan 2023 23:39:09 -0800 Subject: [PATCH 076/139] Format code according to conventions (#19615) --- keyboards/keyten/kt3700/keymaps/via/rules.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/keyten/kt3700/keymaps/via/rules.mk b/keyboards/keyten/kt3700/keymaps/via/rules.mk index 69de2e4c5a0c..1e5b99807cb7 100644 --- a/keyboards/keyten/kt3700/keymaps/via/rules.mk +++ b/keyboards/keyten/kt3700/keymaps/via/rules.mk @@ -1 +1 @@ -VIA_ENABLE = yes +VIA_ENABLE = yes From d907f104aa4776659ae29b6ec227cf9419103fc6 Mon Sep 17 00:00:00 2001 From: Anton Date: Tue, 17 Jan 2023 20:46:33 +0300 Subject: [PATCH 077/139] [Keymap] Add saph1s keymap for KPrepublic BM80v2 (#19608) Co-authored-by: jack <0x6A73@pm.me> --- .../kprepublic/bm80v2/keymaps/saph1s/config.h | 23 ++++ .../kprepublic/bm80v2/keymaps/saph1s/keymap.c | 50 ++++++++ .../bm80v2/keymaps/saph1s/readme.md | 6 + .../bm80v2/keymaps/saph1s/rgb_matrix_map.h | 113 ++++++++++++++++++ .../kprepublic/bm80v2/keymaps/saph1s/rules.mk | 2 + 5 files changed, 194 insertions(+) create mode 100644 keyboards/kprepublic/bm80v2/keymaps/saph1s/config.h create mode 100644 keyboards/kprepublic/bm80v2/keymaps/saph1s/keymap.c create mode 100644 keyboards/kprepublic/bm80v2/keymaps/saph1s/readme.md create mode 100644 keyboards/kprepublic/bm80v2/keymaps/saph1s/rgb_matrix_map.h create mode 100644 keyboards/kprepublic/bm80v2/keymaps/saph1s/rules.mk diff --git a/keyboards/kprepublic/bm80v2/keymaps/saph1s/config.h b/keyboards/kprepublic/bm80v2/keymaps/saph1s/config.h new file mode 100644 index 000000000000..4726396806bb --- /dev/null +++ b/keyboards/kprepublic/bm80v2/keymaps/saph1s/config.h @@ -0,0 +1,23 @@ +/* Copyright 2023 Saph1s @Saph1s + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#ifdef RGB_MATRIX_ENABLE + #undef RGB_MATRIX_DEFAULT_MODE + #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT + #define RGB_DISABLE_WHEN_USB_SUSPENDED +#endif diff --git a/keyboards/kprepublic/bm80v2/keymaps/saph1s/keymap.c b/keyboards/kprepublic/bm80v2/keymaps/saph1s/keymap.c new file mode 100644 index 000000000000..295832774f03 --- /dev/null +++ b/keyboards/kprepublic/bm80v2/keymaps/saph1s/keymap.c @@ -0,0 +1,50 @@ +/* Copyright 2023 Saph1s @Saph1s + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more 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_map.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_tkl_ansi( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_tkl_ansi( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_MPLY, KC_MPRV, KC_MNXT, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, GUI_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + +}; + +#ifdef RGB_MATRIX_ENABLE + bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { + if (keymap_config.no_gui) { + rgb_matrix_set_color(LED_LGUI, RGB_RED); //LGUI light + } + return false; + } +#endif diff --git a/keyboards/kprepublic/bm80v2/keymaps/saph1s/readme.md b/keyboards/kprepublic/bm80v2/keymaps/saph1s/readme.md new file mode 100644 index 000000000000..f97a0f9b2767 --- /dev/null +++ b/keyboards/kprepublic/bm80v2/keymaps/saph1s/readme.md @@ -0,0 +1,6 @@ +# [Saph1s](https://github.com/Saph1s) | KPrepublic BM80v2 keymap + +## Features + +- RGUI has been replaced by Fn +- Add Win Key lock function (Fn+Win) + RGB indication diff --git a/keyboards/kprepublic/bm80v2/keymaps/saph1s/rgb_matrix_map.h b/keyboards/kprepublic/bm80v2/keymaps/saph1s/rgb_matrix_map.h new file mode 100644 index 000000000000..f68a4a68f118 --- /dev/null +++ b/keyboards/kprepublic/bm80v2/keymaps/saph1s/rgb_matrix_map.h @@ -0,0 +1,113 @@ +/* Copyright 2023 Saph1s @Saph1s + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#pragma once +#ifdef RGB_MATRIX_ENABLE + + enum led_location_map { + LED_ESC, + LED_F1, + LED_F2, + LED_F3, + LED_F4, + LED_F5, + LED_F6, + LED_F7, + LED_F8, + LED_F9, + LED_F10, + LED_F11, + LED_F12, + LED_PSCR, + LED_SCRL, + LED_PAUS, + + LED_GRV, + LED_1, + LED_2, + LED_3, + LED_4, + LED_5, + LED_6, + LED_7, + LED_8, + LED_9, + LED_0, + LED_MINS, + LED_EQL, + LED_BSPC, + LED_INS, + LED_HOME, + LED_PGUP, + + LED_TAB, + LED_Q, + LED_W, + LED_E, + LED_R, + LED_T, + LED_Y, + LED_U, + LED_I, + LED_O, + LED_P, + LED_LBRC, + LED_RBRC, + LED_BSLS, + LED_DEL, + LED_END, + LED_PGDN, + + LED_CAPS, + LED_A, + LED_S, + LED_D, + LED_F, + LED_G, + LED_H, + LED_J, + LED_K, + LED_L, + LED_SCLN, + LED_QUOT, + LED_ENT, + + LED_LSFT, + LED_Z, + LED_X, + LED_C, + LED_V, + LED_B, + LED_N, + LED_M, + LED_COMM, + LED_DOT, + LED_SLSH, + LED_RSFT, + LED_UP, + + LED_LCTL, + LED_LGUI, + LED_LALT, + LED_SPC, + LED_RALT, + LED_FN, + LED_APP, + LED_RCTL, + LED_LEFT, + LED_DOWN, + LED_RGHT + }; +#endif diff --git a/keyboards/kprepublic/bm80v2/keymaps/saph1s/rules.mk b/keyboards/kprepublic/bm80v2/keymaps/saph1s/rules.mk new file mode 100644 index 000000000000..36b7ba9cbc98 --- /dev/null +++ b/keyboards/kprepublic/bm80v2/keymaps/saph1s/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes From 737e6bf027e43235c8db31a727b4c8bc9f44e6de Mon Sep 17 00:00:00 2001 From: Albert Y <76888457+filterpaper@users.noreply.github.com> Date: Wed, 18 Jan 2023 08:26:16 +0800 Subject: [PATCH 078/139] Highlight inclusion of extern macro (#19614) --- docs/feature_leader_key.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/docs/feature_leader_key.md b/docs/feature_leader_key.md index e285d1059775..28e4501036b3 100644 --- a/docs/feature_leader_key.md +++ b/docs/feature_leader_key.md @@ -41,14 +41,20 @@ As you can see, you have a few functions. You can use `SEQ_ONE_KEY` for single-k Each of these accepts one or more keycodes as arguments. This is an important point: You can use keycodes from **any layer on your keyboard**. That layer would need to be active for the leader macro to fire, obviously. -## Adding Leader Key Support in the `rules.mk` +## Adding Leader Key Support -To add support for Leader Key you simply need to add a single line to your keymap's `rules.mk`: +To enable Leader Key, add the following line to your keymap's `rules.mk`: ```make LEADER_ENABLE = yes ``` +Place the following macro in your `keymap.c` or user space source file, before any functional code. It handles declaration of external variables that will be referenced by Leader Key codes that follows: + +```c +LEADER_EXTERNS(); +``` + ## Per Key Timing on Leader keys Rather than relying on an incredibly high timeout for long leader key strings or those of us without 200wpm typing skills, we can enable per key timing to ensure that each key pressed provides us with more time to finish our stroke. This is incredibly helpful with leader key emulation of tap dance (read: multiple taps of the same key like C, C, C). From eb7a8d994af9befe7ff7742d19b03c297f5e6351 Mon Sep 17 00:00:00 2001 From: Albert Y <76888457+filterpaper@users.noreply.github.com> Date: Wed, 18 Jan 2023 09:22:19 +0800 Subject: [PATCH 079/139] Reduce RGB maximum brightness (#19618) --- keyboards/gopolar/gg86/config.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/gopolar/gg86/config.h b/keyboards/gopolar/gg86/config.h index cbbb85911447..4d5fc543d56e 100644 --- a/keyboards/gopolar/gg86/config.h +++ b/keyboards/gopolar/gg86/config.h @@ -42,7 +42,7 @@ /* RGB Matrix config */ #define RGB_DI_PIN E2 #define RGB_MATRIX_LED_COUNT 100 - #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 + #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 #define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS #define RGB_MATRIX_KEYPRESSES From 204ba02765629eae6e7431932243949a5cbc08ba Mon Sep 17 00:00:00 2001 From: Albert Y <76888457+filterpaper@users.noreply.github.com> Date: Wed, 18 Jan 2023 09:22:34 +0800 Subject: [PATCH 080/139] Use consistent highlight format (#19619) --- docs/feature_rgb_matrix.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/feature_rgb_matrix.md b/docs/feature_rgb_matrix.md index f9ba3c4d294d..20ad4c7faf22 100644 --- a/docs/feature_rgb_matrix.md +++ b/docs/feature_rgb_matrix.md @@ -1007,7 +1007,7 @@ bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { } ``` -!> RGB indicators on split keyboards will require state information synced to the slave half (e.g. `#define SPLIT_LAYER_STATE_ENABLE`). See [data sync options](feature_split_keyboard.md#data-sync-options) for more details. +?> RGB indicators on split keyboards will require state information synced to the slave half (e.g. `#define SPLIT_LAYER_STATE_ENABLE`). See [data sync options](feature_split_keyboard.md#data-sync-options) for more details. #### Indicators without RGB Matrix Effect From f5a31fdda62bef7883020acca2263f03700bf2eb Mon Sep 17 00:00:00 2001 From: lukeski14 <73951271+lukeski14@users.noreply.github.com> Date: Tue, 17 Jan 2023 20:38:53 -0500 Subject: [PATCH 081/139] updating productId for via compat (#19611) --- keyboards/nopunin10did/jabberwocky/v2/info.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/nopunin10did/jabberwocky/v2/info.json b/keyboards/nopunin10did/jabberwocky/v2/info.json index 10e6e285008b..6cccff491baf 100644 --- a/keyboards/nopunin10did/jabberwocky/v2/info.json +++ b/keyboards/nopunin10did/jabberwocky/v2/info.json @@ -5,7 +5,7 @@ "maintainer": "NoPunIn10Did", "usb": { "vid": "0x4E50", - "pid": "0x4A57", + "pid": "0x4A58", "device_version": "0.2.0" }, "layouts": { From e6ec2bde07368e7d69b424fde7c6804307ac02f2 Mon Sep 17 00:00:00 2001 From: spbgzh <72414103+spbgzh@users.noreply.github.com> Date: Wed, 18 Jan 2023 11:54:20 +0300 Subject: [PATCH 082/139] [Keyboard] Add tata80 (#19445) Co-authored-by: jack <0x6a73@protonmail.com> Co-authored-by: Ryan --- keyboards/wuque/tata80/wk/config.h | 57 +++++++++ keyboards/wuque/tata80/wk/info.json | 115 ++++++++++++++++++ .../wuque/tata80/wk/keymaps/default/keymap.c | 36 ++++++ .../wuque/tata80/wk/keymaps/via/keymap.c | 51 ++++++++ .../wuque/tata80/wk/keymaps/via/rules.mk | 2 + keyboards/wuque/tata80/wk/readme.md | 19 +++ keyboards/wuque/tata80/wk/rules.mk | 13 ++ keyboards/wuque/tata80/wk/wk.c | 16 +++ keyboards/wuque/tata80/wk/wk.h | 44 +++++++ keyboards/wuque/tata80/wkl/config.h | 57 +++++++++ keyboards/wuque/tata80/wkl/info.json | 114 +++++++++++++++++ .../wuque/tata80/wkl/keymaps/default/keymap.c | 36 ++++++ .../wuque/tata80/wkl/keymaps/via/keymap.c | 51 ++++++++ .../wuque/tata80/wkl/keymaps/via/rules.mk | 2 + keyboards/wuque/tata80/wkl/readme.md | 19 +++ keyboards/wuque/tata80/wkl/rules.mk | 13 ++ keyboards/wuque/tata80/wkl/wkl.c | 17 +++ keyboards/wuque/tata80/wkl/wkl.h | 44 +++++++ 18 files changed, 706 insertions(+) create mode 100644 keyboards/wuque/tata80/wk/config.h create mode 100644 keyboards/wuque/tata80/wk/info.json create mode 100644 keyboards/wuque/tata80/wk/keymaps/default/keymap.c create mode 100644 keyboards/wuque/tata80/wk/keymaps/via/keymap.c create mode 100644 keyboards/wuque/tata80/wk/keymaps/via/rules.mk create mode 100644 keyboards/wuque/tata80/wk/readme.md create mode 100644 keyboards/wuque/tata80/wk/rules.mk create mode 100644 keyboards/wuque/tata80/wk/wk.c create mode 100644 keyboards/wuque/tata80/wk/wk.h create mode 100644 keyboards/wuque/tata80/wkl/config.h create mode 100644 keyboards/wuque/tata80/wkl/info.json create mode 100644 keyboards/wuque/tata80/wkl/keymaps/default/keymap.c create mode 100644 keyboards/wuque/tata80/wkl/keymaps/via/keymap.c create mode 100644 keyboards/wuque/tata80/wkl/keymaps/via/rules.mk create mode 100644 keyboards/wuque/tata80/wkl/readme.md create mode 100644 keyboards/wuque/tata80/wkl/rules.mk create mode 100644 keyboards/wuque/tata80/wkl/wkl.c create mode 100644 keyboards/wuque/tata80/wkl/wkl.h diff --git a/keyboards/wuque/tata80/wk/config.h b/keyboards/wuque/tata80/wk/config.h new file mode 100644 index 000000000000..32738be1cd60 --- /dev/null +++ b/keyboards/wuque/tata80/wk/config.h @@ -0,0 +1,57 @@ +/* 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" + +/* key matrix pins */ +#define MATRIX_ROW_PINS { F0, F1, F4, F5, F6, F7 } +#define MATRIX_COL_PINS { C6, B6, B5, B4, D7, D6, D4, D5, D3, D2, D1, D0, B7, B3, B2, B1, B0 } + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +#define FORCE_NKRO diff --git a/keyboards/wuque/tata80/wk/info.json b/keyboards/wuque/tata80/wk/info.json new file mode 100644 index 000000000000..f1b5acf12d04 --- /dev/null +++ b/keyboards/wuque/tata80/wk/info.json @@ -0,0 +1,115 @@ +{ + "keyboard_name": "Tata80_wk", + "manufacturer": "wuque studio", + "url": "https://shop.wuquestudio.com/products/tata80-keyboard-kit", + "maintainer": "Koichi Katano", + "usb": { + "vid": "0x2365", + "pid": "0x0168", + "device_version": "0.0.1" + }, + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "indicators": { + "caps_lock": "E6" + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "F1", "x": 1.25, "y": 0 }, + { "label": "F2", "x": 2.25, "y": 0 }, + { "label": "F3", "x": 3.25, "y": 0 }, + { "label": "F4", "x": 4.25, "y": 0 }, + { "label": "F5", "x": 5.5, "y": 0 }, + { "label": "F6", "x": 6.5, "y": 0 }, + { "label": "F7", "x": 7.5, "y": 0 }, + { "label": "F8", "x": 8.5, "y": 0 }, + { "label": "F9", "x": 9.75, "y": 0 }, + { "label": "F10", "x": 10.75, "y": 0 }, + { "label": "F11", "x": 11.75, "y": 0 }, + { "label": "F12", "x": 12.75, "y": 0 }, + { "label": "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": "Fn", "x": 11.25, "y": 5.25, "w": 1.25 }, + { "label": "Win", "x": 12.5, "y": 5.25, "w": 1.25 }, + { "label": "Ctrl", "x": 13.75, "y": 5.25, "w": 1.25 }, + { "label": "\u2190", "x": 15.25, "y": 5.25 }, + { "label": "\u2193", "x": 16.25, "y": 5.25 }, + { "label": "\u2192", "x": 17.25, "y": 5.25 } + ] + } + } +} diff --git a/keyboards/wuque/tata80/wk/keymaps/default/keymap.c b/keyboards/wuque/tata80/wk/keymaps/default/keymap.c new file mode 100644 index 000000000000..ea4680a0fcda --- /dev/null +++ b/keyboards/wuque/tata80/wk/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( + 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_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( + _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/wuque/tata80/wk/keymaps/via/keymap.c b/keyboards/wuque/tata80/wk/keymaps/via/keymap.c new file mode 100644 index 000000000000..134eca5af187 --- /dev/null +++ b/keyboards/wuque/tata80/wk/keymaps/via/keymap.c @@ -0,0 +1,51 @@ +/* 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( + 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_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( + _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/wuque/tata80/wk/keymaps/via/rules.mk b/keyboards/wuque/tata80/wk/keymaps/via/rules.mk new file mode 100644 index 000000000000..43061db1dd46 --- /dev/null +++ b/keyboards/wuque/tata80/wk/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/tata80/wk/readme.md b/keyboards/wuque/tata80/wk/readme.md new file mode 100644 index 000000000000..dc47fce4853a --- /dev/null +++ b/keyboards/wuque/tata80/wk/readme.md @@ -0,0 +1,19 @@ +# Tata80 + +Support Atmega32u4 keyboard, with a specific configuration + +* Keyboard Maintainer: [zoumeiguang2000](https://github.com/zoumeiguang2000) +* Hardware Supported: Atmega32u4 + +## Bootloader + +* **Physical reset button**: Short press the button on the back of the PCB to enter the Bootloader and flash the firmware +Make example for this keyboard (after setting up your build environment): + + make wuque/tata80/wk:default + +Flashing example for this keyboard: + + make wuque/tata80/wk: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/wuque/tata80/wk/rules.mk b/keyboards/wuque/tata80/wk/rules.mk new file mode 100644 index 000000000000..93c8ae6d48dd --- /dev/null +++ b/keyboards/wuque/tata80/wk/rules.mk @@ -0,0 +1,13 @@ +# 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 + diff --git a/keyboards/wuque/tata80/wk/wk.c b/keyboards/wuque/tata80/wk/wk.c new file mode 100644 index 000000000000..184655971849 --- /dev/null +++ b/keyboards/wuque/tata80/wk/wk.c @@ -0,0 +1,16 @@ +/* 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 "wk.h" diff --git a/keyboards/wuque/tata80/wk/wk.h b/keyboards/wuque/tata80/wk/wk.h new file mode 100644 index 000000000000..d166d4312c9b --- /dev/null +++ b/keyboards/wuque/tata80/wk/wk.h @@ -0,0 +1,44 @@ +/* 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" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, k016, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, k115, k116, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, k214, k215, k216, \ + k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k313, \ + k400, k402, k403, k404, k405, k406, k407, k408, k409, k410, k411, k413, k415, \ + k500, k501, k502, k506, k509, k510, k511, k513, k514, k515, k516 \ +) \ +{ \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, k016 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, k115, k116 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, k214, k215, k216 }, \ + { k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, KC_NO, k313, KC_NO, KC_NO, KC_NO }, \ + { k400, KC_NO, k402, k403, k404, k405, k406, k407, k408, k409, k410, k411, KC_NO, k413, KC_NO, k415, KC_NO }, \ + { k500, k501, k502, KC_NO, KC_NO, KC_NO, k506, KC_NO, KC_NO, k509, k510, k511, KC_NO, k513, k514, k515, k516 } \ +} diff --git a/keyboards/wuque/tata80/wkl/config.h b/keyboards/wuque/tata80/wkl/config.h new file mode 100644 index 000000000000..32738be1cd60 --- /dev/null +++ b/keyboards/wuque/tata80/wkl/config.h @@ -0,0 +1,57 @@ +/* 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" + +/* key matrix pins */ +#define MATRIX_ROW_PINS { F0, F1, F4, F5, F6, F7 } +#define MATRIX_COL_PINS { C6, B6, B5, B4, D7, D6, D4, D5, D3, D2, D1, D0, B7, B3, B2, B1, B0 } + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +#define FORCE_NKRO diff --git a/keyboards/wuque/tata80/wkl/info.json b/keyboards/wuque/tata80/wkl/info.json new file mode 100644 index 000000000000..c23c8dd856f5 --- /dev/null +++ b/keyboards/wuque/tata80/wkl/info.json @@ -0,0 +1,114 @@ +{ + "keyboard_name": "Tata80_wkl", + "manufacturer": "wuque studio", + "url": "https://shop.wuquestudio.com/products/tata80-keyboard-kit", + "maintainer": "Koichi Katano", + "usb": { + "vid": "0x2365", + "pid": "0x0169", + "device_version": "0.0.1" + }, + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "indicators": { + "caps_lock": "E6" + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "F1", "x": 1.25, "y": 0 }, + { "label": "F2", "x": 2.25, "y": 0 }, + { "label": "F3", "x": 3.25, "y": 0 }, + { "label": "F4", "x": 4.25, "y": 0 }, + { "label": "F5", "x": 5.5, "y": 0 }, + { "label": "F6", "x": 6.5, "y": 0 }, + { "label": "F7", "x": 7.5, "y": 0 }, + { "label": "F8", "x": 8.5, "y": 0 }, + { "label": "F9", "x": 9.75, "y": 0 }, + { "label": "F10", "x": 10.75, "y": 0 }, + { "label": "F11", "x": 11.75, "y": 0 }, + { "label": "F12", "x": 12.75, "y": 0 }, + { "label": "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": "Fn", "x": 11.25, "y": 5.25, "w": 1.25 }, + { "label": "Win", "x": 12.5, "y": 5.25, "w": 1.25 }, + { "label": "Ctrl", "x": 13.75, "y": 5.25, "w": 1.25 }, + { "label": "\u2190", "x": 15.25, "y": 5.25 }, + { "label": "\u2193", "x": 16.25, "y": 5.25 }, + { "label": "\u2192", "x": 17.25, "y": 5.25 } + ] + } + } +} diff --git a/keyboards/wuque/tata80/wkl/keymaps/default/keymap.c b/keyboards/wuque/tata80/wkl/keymaps/default/keymap.c new file mode 100644 index 000000000000..8f135e2587ed --- /dev/null +++ b/keyboards/wuque/tata80/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( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( + _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/wuque/tata80/wkl/keymaps/via/keymap.c b/keyboards/wuque/tata80/wkl/keymaps/via/keymap.c new file mode 100644 index 000000000000..597bbacc08bf --- /dev/null +++ b/keyboards/wuque/tata80/wkl/keymaps/via/keymap.c @@ -0,0 +1,51 @@ +/* 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( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( + _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/wuque/tata80/wkl/keymaps/via/rules.mk b/keyboards/wuque/tata80/wkl/keymaps/via/rules.mk new file mode 100644 index 000000000000..43061db1dd46 --- /dev/null +++ b/keyboards/wuque/tata80/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/tata80/wkl/readme.md b/keyboards/wuque/tata80/wkl/readme.md new file mode 100644 index 000000000000..e39acffd364e --- /dev/null +++ b/keyboards/wuque/tata80/wkl/readme.md @@ -0,0 +1,19 @@ +# Tata80 + +Support Atmega32u4 keyboard, with a specific configuration + +* Keyboard Maintainer: [zoumeiguang2000](https://github.com/zoumeiguang2000) +* Hardware Supported: Atmega32u4 + +## Bootloader + +* **Physical reset button**: Short press the button on the back of the PCB to enter the Bootloader and flash the firmware +Make example for this keyboard (after setting up your build environment): + + make wuque/tata80/wkl:default + +Flashing example for this keyboard: + + make wuque/tata80/wkl: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/wuque/tata80/wkl/rules.mk b/keyboards/wuque/tata80/wkl/rules.mk new file mode 100644 index 000000000000..93c8ae6d48dd --- /dev/null +++ b/keyboards/wuque/tata80/wkl/rules.mk @@ -0,0 +1,13 @@ +# 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 + diff --git a/keyboards/wuque/tata80/wkl/wkl.c b/keyboards/wuque/tata80/wkl/wkl.c new file mode 100644 index 000000000000..23811762d148 --- /dev/null +++ b/keyboards/wuque/tata80/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/tata80/wkl/wkl.h b/keyboards/wuque/tata80/wkl/wkl.h new file mode 100644 index 000000000000..9795f513212c --- /dev/null +++ b/keyboards/wuque/tata80/wkl/wkl.h @@ -0,0 +1,44 @@ +/* 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" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k014, k015, k016, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, k115, k116, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, k214, k215, k216, \ + k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k313, \ + k400, k402, k403, k404, k405, k406, k407, k408, k409, k410, k411, k413, k415, \ + k500, k501, k502, k506, k509, k510, k511, k513, k514, k515, k516 \ +) \ +{ \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k014, k015, k016 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, k115, k116 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, k214, k215, k216 }, \ + { k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, KC_NO, k313, KC_NO, KC_NO, KC_NO }, \ + { k400, KC_NO, k402, k403, k404, k405, k406, k407, k408, k409, k410, k411, KC_NO, k413, KC_NO, k415, KC_NO }, \ + { k500, k501, k502, KC_NO, KC_NO, KC_NO, k506, KC_NO, KC_NO, k509, k510, k511, KC_NO, k513, k514, k515, k516 } \ +} From d73ad5204049648a912fe3b384b36d211570b544 Mon Sep 17 00:00:00 2001 From: Shandon Anderson Date: Wed, 18 Jan 2023 03:55:34 -0500 Subject: [PATCH 083/139] [Keyboard] Add Mino Plus Keyboard (#19535) Co-authored-by: Shandon Anderson --- keyboards/mino_plus/keymaps/default/keymap.c | 28 ++ keyboards/mino_plus/keymaps/via/keymap.c | 36 ++ keyboards/mino_plus/keymaps/via/rules.mk | 1 + keyboards/mino_plus/mino_plus.c | 248 +++++++++++ keyboards/mino_plus/mino_plus.h | 10 + keyboards/mino_plus/readme.md | 27 ++ keyboards/mino_plus/soldered/config.h | 19 + keyboards/mino_plus/soldered/halconf.h | 7 + keyboards/mino_plus/soldered/info.json | 423 +++++++++++++++++++ keyboards/mino_plus/soldered/mcuconf.h | 8 + keyboards/mino_plus/soldered/rules.mk | 3 + keyboards/mino_plus/soldered/soldered.c | 8 + keyboards/mino_plus/soldered/soldered.h | 28 ++ 13 files changed, 846 insertions(+) create mode 100644 keyboards/mino_plus/keymaps/default/keymap.c create mode 100644 keyboards/mino_plus/keymaps/via/keymap.c create mode 100644 keyboards/mino_plus/keymaps/via/rules.mk create mode 100644 keyboards/mino_plus/mino_plus.c create mode 100644 keyboards/mino_plus/mino_plus.h create mode 100644 keyboards/mino_plus/readme.md create mode 100644 keyboards/mino_plus/soldered/config.h create mode 100644 keyboards/mino_plus/soldered/halconf.h create mode 100644 keyboards/mino_plus/soldered/info.json create mode 100644 keyboards/mino_plus/soldered/mcuconf.h create mode 100644 keyboards/mino_plus/soldered/rules.mk create mode 100644 keyboards/mino_plus/soldered/soldered.c create mode 100644 keyboards/mino_plus/soldered/soldered.h diff --git a/keyboards/mino_plus/keymaps/default/keymap.c b/keyboards/mino_plus/keymaps/default/keymap.c new file mode 100644 index 000000000000..365f31440ac3 --- /dev/null +++ b/keyboards/mino_plus/keymaps/default/keymap.c @@ -0,0 +1,28 @@ +// Copyright 2022 ShandonCodes (@ShandonCodes) +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [0] = LAYOUT( + KC_ESCAPE, KC_1, KC_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_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_ENTER, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_SPACE, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; \ No newline at end of file diff --git a/keyboards/mino_plus/keymaps/via/keymap.c b/keyboards/mino_plus/keymaps/via/keymap.c new file mode 100644 index 000000000000..2a7e816e361b --- /dev/null +++ b/keyboards/mino_plus/keymaps/via/keymap.c @@ -0,0 +1,36 @@ +// Copyright 2022 ShandonCodes (@ShandonCodes) +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [0] = LAYOUT( + KC_ESCAPE, KC_1, KC_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_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_ENTER, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_SPACE, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; \ No newline at end of file diff --git a/keyboards/mino_plus/keymaps/via/rules.mk b/keyboards/mino_plus/keymaps/via/rules.mk new file mode 100644 index 000000000000..036bd6d1c3ec --- /dev/null +++ b/keyboards/mino_plus/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/mino_plus/mino_plus.c b/keyboards/mino_plus/mino_plus.c new file mode 100644 index 000000000000..befc5c450621 --- /dev/null +++ b/keyboards/mino_plus/mino_plus.c @@ -0,0 +1,248 @@ +// Copyright 2022 ShandonCodes (@ShandonCodes) +// SPDX-License-Identifier: GPL-2.0-or-later +#include "mino_plus.h" + +#ifdef OLED_ENABLE +#define FRAMES 5 +#define ANIMATION_SIZE 512 +#define TAP_SPEED 30 + +uint8_t current_frame = 0; +uint32_t anim_timer = 0; +uint32_t anim_sleep = 0; +uint32_t ANIM_FRAME_DURATION = 1000; + +static void render_animation(void) { + static const char PROGMEM animation_frames[FRAMES][ANIMATION_SIZE] = { + // 'Base', 32x128px + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 0x40, 0x40, 0xc0, + 0x40, 0x40, 0x40, 0xc0, 0x40, 0x40, 0x40, 0xc0, 0xc0, 0x40, 0x40, 0xc1, 0xc3, 0x43, 0x43, 0xc3, + 0x00, 0x00, 0x00, 0x00, 0xfe, 0x66, 0x66, 0xe6, 0xfc, 0x20, 0x20, 0xff, 0xe6, 0x66, 0x66, 0xff, + 0xe6, 0x26, 0x26, 0x67, 0xe6, 0x26, 0x26, 0xe7, 0xff, 0x66, 0x66, 0xff, 0x7f, 0x26, 0x26, 0x3f, + 0xe0, 0x20, 0x20, 0x20, 0xff, 0x22, 0x22, 0xff, 0xff, 0x22, 0x22, 0xff, 0xe3, 0x22, 0x22, 0xe3, + 0x3f, 0x22, 0x22, 0xe2, 0x3f, 0x22, 0x22, 0x3f, 0xff, 0x22, 0x22, 0xff, 0x22, 0x00, 0x00, 0x00, + 0xff, 0x33, 0x33, 0x33, 0xff, 0x1f, 0x13, 0x13, 0xff, 0xff, 0x33, 0x33, 0xff, 0x33, 0x13, 0x13, + 0x1f, 0x02, 0x02, 0x03, 0x00, 0x00, 0x00, 0x33, 0xff, 0x33, 0x33, 0xff, 0x02, 0x00, 0x00, 0x00, + 0xff, 0x11, 0x11, 0x91, 0xff, 0xf0, 0x10, 0x10, 0xff, 0xff, 0x11, 0x11, 0xff, 0x9b, 0x11, 0x11, + 0xff, 0x91, 0x11, 0x91, 0xff, 0x11, 0x11, 0x1f, 0x1f, 0x11, 0x11, 0x1f, 0x01, 0x00, 0x00, 0x00, + 0xff, 0x99, 0x99, 0x99, 0xff, 0x99, 0x99, 0xf9, 0xf9, 0x99, 0x99, 0xf9, 0xf9, 0x99, 0x99, 0xf9, + 0x9f, 0x99, 0x99, 0xf9, 0x1f, 0x19, 0x19, 0x1f, 0xff, 0x99, 0x99, 0xff, 0xff, 0x99, 0x99, 0xff, + 0xf8, 0x88, 0x88, 0x88, 0xff, 0x89, 0x89, 0xff, 0xff, 0x89, 0x89, 0xff, 0xff, 0x89, 0x89, 0xff, + 0x88, 0x88, 0x88, 0xf8, 0x88, 0x88, 0x88, 0xf8, 0x80, 0x80, 0x80, 0xff, 0xc9, 0x89, 0x89, 0xff, + 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0x40, 0x40, 0xcc, 0xff, 0xcc, 0xcc, 0xff, 0xff, 0xcc, 0xcc, 0xff, + 0xcc, 0x48, 0xc8, 0xff, 0xc8, 0xc8, 0xc8, 0xfc, 0xff, 0xcc, 0xcc, 0xff, 0xff, 0xcc, 0xcc, 0xff, + 0x7f, 0x7c, 0x7c, 0x7c, 0x7f, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f, + 0x7c, 0x7c, 0x7c, 0x7f, 0x7c, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f}, + + // 'Frame_1', 32x128px + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x4c, 0x4c, 0xfc, 0xfc, 0x4c, + 0x4c, 0xfc, 0xc0, 0x40, 0x40, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x04, + 0x04, 0x07, 0x07, 0x04, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 0x40, 0x40, 0xc0, + 0x40, 0x40, 0x40, 0xc0, 0x40, 0x40, 0x40, 0xc0, 0xc0, 0x40, 0x40, 0xc1, 0xc3, 0x43, 0x43, 0xc3, + 0x00, 0x00, 0x00, 0x00, 0xfe, 0x66, 0x66, 0xe6, 0xfc, 0x20, 0x20, 0xff, 0xe6, 0x66, 0x66, 0xff, + 0xe6, 0x26, 0x26, 0x67, 0xe6, 0x26, 0x26, 0xe7, 0xff, 0x66, 0x66, 0xff, 0x7f, 0x26, 0x26, 0x3f, + 0xe0, 0x20, 0x20, 0x20, 0xff, 0x22, 0x22, 0xff, 0xff, 0x22, 0x22, 0xff, 0xe3, 0x22, 0x22, 0xe3, + 0x3f, 0x22, 0x22, 0xe2, 0x3f, 0x22, 0x22, 0x3f, 0xff, 0x22, 0x22, 0xff, 0x22, 0x00, 0x00, 0x00, + 0xff, 0x33, 0x33, 0x33, 0xff, 0x1f, 0x13, 0x13, 0xff, 0xff, 0x33, 0x33, 0xff, 0x33, 0x13, 0x13, + 0x1f, 0x02, 0x02, 0x03, 0x00, 0x00, 0x00, 0x33, 0xff, 0x33, 0x33, 0xff, 0x02, 0x00, 0x00, 0x00, + 0xff, 0x11, 0x11, 0x91, 0xff, 0xf0, 0x10, 0x10, 0xff, 0xff, 0x11, 0x11, 0xff, 0x9b, 0x11, 0x11, + 0xff, 0x91, 0x11, 0x91, 0xff, 0x11, 0x11, 0x1f, 0x1f, 0x11, 0x11, 0x1f, 0x01, 0x00, 0x00, 0x00, + 0xff, 0x99, 0x99, 0x99, 0xff, 0x99, 0x99, 0xf9, 0xf9, 0x99, 0x99, 0xf9, 0xf9, 0x99, 0x99, 0xf9, + 0x9f, 0x99, 0x99, 0xf9, 0x1f, 0x19, 0x19, 0x1f, 0xff, 0x99, 0x99, 0xff, 0xff, 0x99, 0x99, 0xff, + 0xf8, 0x88, 0x88, 0x88, 0xff, 0x89, 0x89, 0xff, 0xff, 0x89, 0x89, 0xff, 0xff, 0x89, 0x89, 0xff, + 0x88, 0x88, 0x88, 0xf8, 0x88, 0x88, 0x88, 0xf8, 0x80, 0x80, 0x80, 0xff, 0xc9, 0x89, 0x89, 0xff, + 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0x40, 0x40, 0xcc, 0xff, 0xcc, 0xcc, 0xff, 0xff, 0xcc, 0xcc, 0xff, + 0xcc, 0x48, 0xc8, 0xff, 0xc8, 0xc8, 0xc8, 0xfc, 0xff, 0xcc, 0xcc, 0xff, 0xff, 0xcc, 0xcc, 0xff, + 0x7f, 0x7c, 0x7c, 0x7c, 0x7f, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f, + 0x7c, 0x7c, 0x7c, 0x7f, 0x7c, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f}, + + // 'Frame_2', 32x128px + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 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, 0x40, 0x40, 0xc0, 0xc0, 0x40, + 0x40, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x04, 0x04, 0x3f, 0x7f, 0x44, + 0x44, 0x7f, 0x7c, 0x44, 0x44, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 0x40, 0x40, 0xc0, + 0x40, 0x40, 0x40, 0xc0, 0x40, 0x40, 0x40, 0xc0, 0xc0, 0x40, 0x40, 0xc1, 0xc3, 0x43, 0x43, 0xc3, + 0x00, 0x00, 0x00, 0x00, 0xfe, 0x66, 0x66, 0xe6, 0xfc, 0x20, 0x20, 0xff, 0xe6, 0x66, 0x66, 0xff, + 0xe6, 0x26, 0x26, 0x67, 0xe6, 0x26, 0x26, 0xe7, 0xff, 0x66, 0x66, 0xff, 0x7f, 0x26, 0x26, 0x3f, + 0xe0, 0x20, 0x20, 0x20, 0xff, 0x22, 0x22, 0xff, 0xff, 0x22, 0x22, 0xff, 0xe3, 0x22, 0x22, 0xe3, + 0x3f, 0x22, 0x22, 0xe2, 0x3f, 0x22, 0x22, 0x3f, 0xff, 0x22, 0x22, 0xff, 0x22, 0x00, 0x00, 0x00, + 0xff, 0x33, 0x33, 0x33, 0xff, 0x1f, 0x13, 0x13, 0xff, 0xff, 0x33, 0x33, 0xff, 0x33, 0x13, 0x13, + 0x1f, 0x02, 0x02, 0x03, 0x00, 0x00, 0x00, 0x33, 0xff, 0x33, 0x33, 0xff, 0x02, 0x00, 0x00, 0x00, + 0xff, 0x11, 0x11, 0x91, 0xff, 0xf0, 0x10, 0x10, 0xff, 0xff, 0x11, 0x11, 0xff, 0x9b, 0x11, 0x11, + 0xff, 0x91, 0x11, 0x91, 0xff, 0x11, 0x11, 0x1f, 0x1f, 0x11, 0x11, 0x1f, 0x01, 0x00, 0x00, 0x00, + 0xff, 0x99, 0x99, 0x99, 0xff, 0x99, 0x99, 0xf9, 0xf9, 0x99, 0x99, 0xf9, 0xf9, 0x99, 0x99, 0xf9, + 0x9f, 0x99, 0x99, 0xf9, 0x1f, 0x19, 0x19, 0x1f, 0xff, 0x99, 0x99, 0xff, 0xff, 0x99, 0x99, 0xff, + 0xf8, 0x88, 0x88, 0x88, 0xff, 0x89, 0x89, 0xff, 0xff, 0x89, 0x89, 0xff, 0xff, 0x89, 0x89, 0xff, + 0x88, 0x88, 0x88, 0xf8, 0x88, 0x88, 0x88, 0xf8, 0x80, 0x80, 0x80, 0xff, 0xc9, 0x89, 0x89, 0xff, + 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0x40, 0x40, 0xcc, 0xff, 0xcc, 0xcc, 0xff, 0xff, 0xcc, 0xcc, 0xff, + 0xcc, 0x48, 0xc8, 0xff, 0xc8, 0xc8, 0xc8, 0xfc, 0xff, 0xcc, 0xcc, 0xff, 0xff, 0xcc, 0xcc, 0xff, + 0x7f, 0x7c, 0x7c, 0x7c, 0x7f, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f, + 0x7c, 0x7c, 0x7c, 0x7f, 0x7c, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f}, + + // 'Frame_3', 32x128px + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x44, 0x44, 0xfc, 0xfc, 0x44, + 0x44, 0xfc, 0xc0, 0x40, 0x40, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 0x43, 0x47, 0xc4, + 0x44, 0x47, 0x47, 0xc4, 0x44, 0x47, 0x40, 0xc0, 0xc0, 0x40, 0x40, 0xc1, 0xc3, 0x43, 0x43, 0xc3, + 0x00, 0x00, 0x00, 0x00, 0xfe, 0x66, 0x66, 0xe6, 0xfc, 0x20, 0x20, 0xff, 0xe6, 0x66, 0x66, 0xff, + 0xe6, 0x26, 0x26, 0x67, 0xe6, 0x26, 0x26, 0xe7, 0xff, 0x66, 0x66, 0xff, 0x7f, 0x26, 0x26, 0x3f, + 0xe0, 0x20, 0x20, 0x20, 0xff, 0x22, 0x22, 0xff, 0xff, 0x22, 0x22, 0xff, 0xe3, 0x22, 0x22, 0xe3, + 0x3f, 0x22, 0x22, 0xe2, 0x3f, 0x22, 0x22, 0x3f, 0xff, 0x22, 0x22, 0xff, 0x22, 0x00, 0x00, 0x00, + 0xff, 0x33, 0x33, 0x33, 0xff, 0x1f, 0x13, 0x13, 0xff, 0xff, 0x33, 0x33, 0xff, 0x33, 0x13, 0x13, + 0x1f, 0x02, 0x02, 0x03, 0x00, 0x00, 0x00, 0x33, 0xff, 0x33, 0x33, 0xff, 0x02, 0x00, 0x00, 0x00, + 0xff, 0x11, 0x11, 0x91, 0xff, 0xf0, 0x10, 0x10, 0xff, 0xff, 0x11, 0x11, 0xff, 0x9b, 0x11, 0x11, + 0xff, 0x91, 0x11, 0x91, 0xff, 0x11, 0x11, 0x1f, 0x1f, 0x11, 0x11, 0x1f, 0x01, 0x00, 0x00, 0x00, + 0xff, 0x99, 0x99, 0x99, 0xff, 0x99, 0x99, 0xf9, 0xf9, 0x99, 0x99, 0xf9, 0xf9, 0x99, 0x99, 0xf9, + 0x9f, 0x99, 0x99, 0xf9, 0x1f, 0x19, 0x19, 0x1f, 0xff, 0x99, 0x99, 0xff, 0xff, 0x99, 0x99, 0xff, + 0xf8, 0x88, 0x88, 0x88, 0xff, 0x89, 0x89, 0xff, 0xff, 0x89, 0x89, 0xff, 0xff, 0x89, 0x89, 0xff, + 0x88, 0x88, 0x88, 0xf8, 0x88, 0x88, 0x88, 0xf8, 0x80, 0x80, 0x80, 0xff, 0xc9, 0x89, 0x89, 0xff, + 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0x40, 0x40, 0xcc, 0xff, 0xcc, 0xcc, 0xff, 0xff, 0xcc, 0xcc, 0xff, + 0xcc, 0x48, 0xc8, 0xff, 0xc8, 0xc8, 0xc8, 0xfc, 0xff, 0xcc, 0xcc, 0xff, 0xff, 0xcc, 0xcc, 0xff, + 0x7f, 0x7c, 0x7c, 0x7c, 0x7f, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f, + 0x7c, 0x7c, 0x7c, 0x7f, 0x7c, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f}, + + // 'Frame_4', 32x128px + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 0x40, 0xc0, 0xc0, 0x40, + 0x40, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xc4, 0x44, 0x7f, 0x7f, 0xe6, + 0x66, 0x7f, 0x7e, 0xe4, 0x64, 0x7c, 0x40, 0xc0, 0xc0, 0x40, 0x40, 0xc1, 0xc3, 0x43, 0x43, 0xc3, + 0x00, 0x00, 0x00, 0x00, 0xfe, 0x66, 0x66, 0xe6, 0xfc, 0x20, 0x20, 0xff, 0xe6, 0x66, 0x66, 0xff, + 0xe6, 0x26, 0x26, 0x67, 0xe6, 0x26, 0x26, 0xe7, 0xff, 0x66, 0x66, 0xff, 0x7f, 0x26, 0x26, 0x3f, + 0xe0, 0x20, 0x20, 0x20, 0xff, 0x22, 0x22, 0xff, 0xff, 0x22, 0x22, 0xff, 0xe3, 0x22, 0x22, 0xe3, + 0x3f, 0x22, 0x22, 0xe2, 0x3f, 0x22, 0x22, 0x3f, 0xff, 0x22, 0x22, 0xff, 0x22, 0x00, 0x00, 0x00, + 0xff, 0x33, 0x33, 0x33, 0xff, 0x1f, 0x13, 0x13, 0xff, 0xff, 0x33, 0x33, 0xff, 0x33, 0x13, 0x13, + 0x1f, 0x02, 0x02, 0x03, 0x00, 0x00, 0x00, 0x33, 0xff, 0x33, 0x33, 0xff, 0x02, 0x00, 0x00, 0x00, + 0xff, 0x11, 0x11, 0x91, 0xff, 0xf0, 0x10, 0x10, 0xff, 0xff, 0x11, 0x11, 0xff, 0x9b, 0x11, 0x11, + 0xff, 0x91, 0x11, 0x91, 0xff, 0x11, 0x11, 0x1f, 0x1f, 0x11, 0x11, 0x1f, 0x01, 0x00, 0x00, 0x00, + 0xff, 0x99, 0x99, 0x99, 0xff, 0x99, 0x99, 0xf9, 0xf9, 0x99, 0x99, 0xf9, 0xf9, 0x99, 0x99, 0xf9, + 0x9f, 0x99, 0x99, 0xf9, 0x1f, 0x19, 0x19, 0x1f, 0xff, 0x99, 0x99, 0xff, 0xff, 0x99, 0x99, 0xff, + 0xf8, 0x88, 0x88, 0x88, 0xff, 0x89, 0x89, 0xff, 0xff, 0x89, 0x89, 0xff, 0xff, 0x89, 0x89, 0xff, + 0x88, 0x88, 0x88, 0xf8, 0x88, 0x88, 0x88, 0xf8, 0x80, 0x80, 0x80, 0xff, 0xc9, 0x89, 0x89, 0xff, + 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0x40, 0x40, 0xcc, 0xff, 0xcc, 0xcc, 0xff, 0xff, 0xcc, 0xcc, 0xff, + 0xcc, 0x48, 0xc8, 0xff, 0xc8, 0xc8, 0xc8, 0xfc, 0xff, 0xcc, 0xcc, 0xff, 0xff, 0xcc, 0xcc, 0xff, + 0x7f, 0x7c, 0x7c, 0x7c, 0x7f, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f, + 0x7c, 0x7c, 0x7c, 0x7f, 0x7c, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f} + }; + + void animate_phase(void) { + current_frame = (current_frame + 1) % FRAMES; + oled_write_raw_P(animation_frames[current_frame], ANIMATION_SIZE); + } + + if (get_current_wpm() != 000) { + oled_on(); // not essential but turns on animation OLED with any alpha keypress + if (get_current_wpm() > TAP_SPEED){ + ANIM_FRAME_DURATION = 100; + } else { + ANIM_FRAME_DURATION = 1000; + } + if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { + anim_timer = timer_read32(); + animate_phase(); + } + anim_sleep = timer_read32(); + } else { + if (timer_elapsed32(anim_sleep) > OLED_TIMEOUT) { + oled_off(); + } else { + if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { + anim_timer = timer_read32(); + animate_phase(); + } + } + } +} + +static void render_status(void) { + // Host Keyboard Layer Status + 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("1"), false); + break; + case 2: + oled_write_ln_P(PSTR("2"), false); + break; + default: + oled_write_ln_P(PSTR("Undefined"), false); + } +} + +oled_rotation_t oled_init_kb(oled_rotation_t rotation) { + return OLED_ROTATION_270; +} + +bool oled_task_kb(void) { + render_animation(); + render_status(); + + oled_write_ln_P(PSTR("WPM:"), false); + oled_write_ln(get_u8_str(get_current_wpm(), '0'), false); + + return false; +} +#endif \ No newline at end of file diff --git a/keyboards/mino_plus/mino_plus.h b/keyboards/mino_plus/mino_plus.h new file mode 100644 index 000000000000..c525c04462a8 --- /dev/null +++ b/keyboards/mino_plus/mino_plus.h @@ -0,0 +1,10 @@ +// Copyright 2022 ShandonCodes (@ShandonCodes) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "quantum.h" + +#ifdef KEYBOARD_mino_plus_soldered +# include "soldered.h" +#endif \ No newline at end of file diff --git a/keyboards/mino_plus/readme.md b/keyboards/mino_plus/readme.md new file mode 100644 index 000000000000..0730e30d63a8 --- /dev/null +++ b/keyboards/mino_plus/readme.md @@ -0,0 +1,27 @@ +# mino_plus + +![mino_plus](https://i.imgur.com/vZJ6kaNh.jpg) + +A 65% keyboard, inspried by tetrominos. + +* Keyboard Maintainer: [ShandonCodes](https://github.com/ShandonCodes) +* Hardware Supported: Mino Plus PCB +* Hardware Availability: https://store.shandon.codes/mino-plus/ + +Make example for this keyboard (after setting up your build environment): + + make mino_plus/soldered:default + +Flashing example for this keyboard: + + make mino_plus/soldered: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 +* **Keycode in layout**: Press the key mapped to `FN` + `R` if it is available. diff --git a/keyboards/mino_plus/soldered/config.h b/keyboards/mino_plus/soldered/config.h new file mode 100644 index 000000000000..a25c96b53758 --- /dev/null +++ b/keyboards/mino_plus/soldered/config.h @@ -0,0 +1,19 @@ +// Copyright 2022 ShandonCodes (@ShandonCodes) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include "config_common.h" + +#define DEBOUNCE 5 + +#define I2C_DRIVER I2CD1 +#define I2C1_SCL_PIN B6 +#define I2C1_SDA_PIN B7 +#define I2C1_SCL_PAL_MODE 1 +#define I2C1_SDA_PAL_MODE 1 +#define I2C1_TIMINGR_PRESC 0x00U +#define I2C1_TIMINGR_SCLDEL 0x03U +#define I2C1_TIMINGR_SDADEL 0x01U +#define I2C1_TIMINGR_SCLH 0x03U +#define I2C1_TIMINGR_SCLL 0x09U + diff --git a/keyboards/mino_plus/soldered/halconf.h b/keyboards/mino_plus/soldered/halconf.h new file mode 100644 index 000000000000..65321fb1c816 --- /dev/null +++ b/keyboards/mino_plus/soldered/halconf.h @@ -0,0 +1,7 @@ +// Copyright 2022 ShandonCodes (@ShandonCodes) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define HAL_USE_I2C TRUE + +#include_next diff --git a/keyboards/mino_plus/soldered/info.json b/keyboards/mino_plus/soldered/info.json new file mode 100644 index 000000000000..1c9504746683 --- /dev/null +++ b/keyboards/mino_plus/soldered/info.json @@ -0,0 +1,423 @@ +{ + "manufacturer": "ShandonCodes", + "keyboard_name": "Mino Plus", + "maintainer": "ShandonCodes", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": [ + "B4", + "B3", + "A15", + "A10", + "A8", + "B14", + "B12", + "B10", + "A5", + "A4", + "A3", + "B0", + "A7", + "C15", + "B5" + ], + "rows": [ + "B9", + "B8", + "A2", + "A1", + "A0" + ] + }, + "processor": "STM32F072", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0003", + "vid": "0x7877" + }, + "layouts": { + "LAYOUT": { + "layout": [ + { + "label": "Esc", + "x": 0, + "y": 0 + }, + { + "label": "1", + "x": 1, + "y": 0 + }, + { + "label": "2", + "x": 2, + "y": 0 + }, + { + "label": "3", + "x": 3, + "y": 0 + }, + { + "label": "4", + "x": 4, + "y": 0 + }, + { + "label": "5", + "x": 5, + "y": 0 + }, + { + "label": "6", + "x": 6, + "y": 0 + }, + { + "label": "7", + "x": 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": "Del", + "x": 15, + "y": 0 + }, + { + "label": "Tab", + "x": 0, + "y": 1, + "w": 1.5 + }, + { + "label": "Q", + "x": 1.5, + "y": 1 + }, + { + "label": "W", + "x": 2.5, + "y": 1 + }, + { + "label": "E", + "x": 3.5, + "y": 1 + }, + { + "label": "R", + "x": 4.5, + "y": 1 + }, + { + "label": "T", + "x": 5.5, + "y": 1 + }, + { + "label": "Y", + "x": 6.5, + "y": 1 + }, + { + "label": "U", + "x": 7.5, + "y": 1 + }, + { + "label": "I", + "x": 8.5, + "y": 1 + }, + { + "label": "O", + "x": 9.5, + "y": 1 + }, + { + "label": "P", + "x": 10.5, + "y": 1 + }, + { + "label": "{", + "x": 11.5, + "y": 1 + }, + { + "label": "}", + "x": 12.5, + "y": 1 + }, + { + "label": "|", + "x": 13.5, + "y": 1, + "w": 1.5 + }, + { + "label": "Ins", + "x": 15, + "y": 1 + }, + { + "label": "Caps", + "x": 0, + "y": 2, + "w": 1.75 + }, + { + "label": "A", + "x": 1.75, + "y": 2 + }, + { + "label": "S", + "x": 2.75, + "y": 2 + }, + { + "label": "D", + "x": 3.75, + "y": 2 + }, + { + "label": "F", + "x": 4.75, + "y": 2 + }, + { + "label": "G", + "x": 5.75, + "y": 2 + }, + { + "label": "H", + "x": 6.75, + "y": 2 + }, + { + "label": "J", + "x": 7.75, + "y": 2 + }, + { + "label": "K", + "x": 8.75, + "y": 2 + }, + { + "label": "L", + "x": 9.75, + "y": 2 + }, + { + "label": ":", + "x": 10.75, + "y": 2 + }, + { + "label": "Enter", + "x": 12.75, + "y": 2, + "w": 2.25 + }, + { + "label": "Pgup", + "x": 15, + "y": 2 + }, + { + "label": "Shift", + "x": 0, + "y": 3, + "w": 2.25 + }, + { + "label": "Z", + "x": 2.25, + "y": 3 + }, + { + "label": "X", + "x": 3.25, + "y": 3 + }, + { + "label": "C", + "x": 4.25, + "y": 3 + }, + { + "label": "V", + "x": 5.25, + "y": 3 + }, + { + "label": "B", + "x": 6.25, + "y": 3 + }, + { + "label": "N", + "x": 7.25, + "y": 3 + }, + { + "label": "M", + "x": 8.25, + "y": 3 + }, + { + "label": "<", + "x": 9.25, + "y": 3 + }, + { + "label": ">", + "x": 10.25, + "y": 3 + }, + { + "label": "?", + "x": 11.25, + "y": 3 + }, + { + "label": "Shift", + "x": 12.25, + "y": 3, + "w": 1.75 + }, + { + "label": "Up", + "x": 14, + "y": 3 + }, + { + "label": "Pgdn", + "x": 15, + "y": 3 + }, + { + "label": "Ctrl", + "x": 0, + "y": 4, + "w": 1.25 + }, + { + "label": "Super", + "x": 1.25, + "y": 4, + "w": 1.25 + }, + { + "label": "Alt", + "x": 2.5, + "y": 4, + "w": 1.25 + }, + { + "label": "Super", + "x": 3.75, + "y": 4, + "w": 6.25 + }, + { + "label": "2.25", + "x": 3.75, + "y": 4, + "w": 2.25 + }, + { + "label": "2.75", + "x": 3.75, + "y": 4, + "w": 2.75 + }, + { + "label": "1.25", + "x": 6, + "y": 4, + "w": 1.25 + }, + { + "label": "Meta", + "x": 10, + "y": 4 + }, + { + "label": "Win", + "x": 11, + "y": 4 + }, + { + "label": "Ctrl", + "x": 12, + "y": 4 + }, + { + "label": "Left", + "x": 13, + "y": 4 + }, + { + "label": "Down", + "x": 14, + "y": 4 + }, + { + "label": "Right", + "x": 15, + "y": 4 + }, + { + "label": "\"", + "x": 11.5, + "y": 7 + } + ] + } + } +} \ No newline at end of file diff --git a/keyboards/mino_plus/soldered/mcuconf.h b/keyboards/mino_plus/soldered/mcuconf.h new file mode 100644 index 000000000000..c1d45157c733 --- /dev/null +++ b/keyboards/mino_plus/soldered/mcuconf.h @@ -0,0 +1,8 @@ +// Copyright 2022 ShandonCodes (@ShandonCodes) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next "mcuconf.h" + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE \ No newline at end of file diff --git a/keyboards/mino_plus/soldered/rules.mk b/keyboards/mino_plus/soldered/rules.mk new file mode 100644 index 000000000000..842350f40ead --- /dev/null +++ b/keyboards/mino_plus/soldered/rules.mk @@ -0,0 +1,3 @@ +OLED_ENABLE = yes +WPM_ENABLE = yes +OLED_DRIVER = SSD1306 \ No newline at end of file diff --git a/keyboards/mino_plus/soldered/soldered.c b/keyboards/mino_plus/soldered/soldered.c new file mode 100644 index 000000000000..efaaef61c67a --- /dev/null +++ b/keyboards/mino_plus/soldered/soldered.c @@ -0,0 +1,8 @@ +// Copyright 2022 ShandonCodes (@ShandonCodes) +// SPDX-License-Identifier: GPL-2.0-or-later +#include "soldered.h" + +void board_init(void) { + SYSCFG->CFGR1 |= SYSCFG_CFGR1_I2C1_DMA_RMP; + SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_SPI2_DMA_RMP); +} \ No newline at end of file diff --git a/keyboards/mino_plus/soldered/soldered.h b/keyboards/mino_plus/soldered/soldered.h new file mode 100644 index 000000000000..73ae27a50667 --- /dev/null +++ b/keyboards/mino_plus/soldered/soldered.h @@ -0,0 +1,28 @@ +// Copyright 2022 ShandonCodes (@ShandonCodes) +// 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, k0c, k0d, k0e, k2e, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e,\ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \ + k40, k41, k42, k43, k45, k47, k49, k4a, k4b, k4c, k4d, k4e\ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e}, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e}, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e}, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \ + { k40, k41, k42, k43, KC_NO, k45, KC_NO, k47, KC_NO, k49, k4a, k4b, k4c, k4d, k4e}, \ +} + From 17c9388af5432f8e6d97828f6772eaf8031a786b Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Thu, 19 Jan 2023 09:36:32 +1100 Subject: [PATCH 084/139] Allow for wildcard filtering in `qmk mass-compile` (#19625) --- lib/python/qmk/cli/mass_compile.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/python/qmk/cli/mass_compile.py b/lib/python/qmk/cli/mass_compile.py index b5f12c502657..a98f7ad48243 100755 --- a/lib/python/qmk/cli/mass_compile.py +++ b/lib/python/qmk/cli/mass_compile.py @@ -2,6 +2,7 @@ This will compile everything in parallel, for testing purposes. """ +import fnmatch import logging import multiprocessing import os @@ -58,7 +59,8 @@ def _load_keymap_info(keyboard, keymap): arg_only=True, action='append', default=[], - help="Filter the list of keyboards based on the supplied value in rules.mk. Matches info.json structure, and accepts the format 'features.rgblight=true'. May be passed multiple times, all filters need to match." + help= # noqa: `format-python` and `pytest` don't agree here. + "Filter the list of keyboards based on the supplied value in rules.mk. Matches info.json structure, and accepts the format 'features.rgblight=true'. May be passed multiple times, all filters need to match. Value may include wildcards such as '*' and '?'." # noqa: `format-python` and `pytest` don't agree here. ) @cli.argument('-km', '--keymap', type=str, default='default', help="The keymap name to build. Default is 'default'.") @cli.argument('-e', '--env', arg_only=True, action='append', default=[], help="Set a variable to be passed to make. May be passed multiple times.") @@ -102,11 +104,13 @@ def mass_compile(cli): cli.log.info(f'Filtering on condition ("{key}" == "{value}")...') def _make_filter(k, v): + expr = fnmatch.translate(v) + rule = re.compile(expr, re.IGNORECASE) + def f(e): lhs = e[2].get(k) - lhs = str(False if lhs is None else lhs).lower() - rhs = str(v).lower() - return lhs == rhs + lhs = str(False if lhs is None else lhs) + return rule.search(lhs) is not None return f From 327f7ee9a74f1740106d46e65e909208a1372ad3 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Thu, 19 Jan 2023 12:05:29 +1100 Subject: [PATCH 085/139] Fixup ChibiOS header inclusion search ordering. (#19623) * Add STM32F446-Nucleo onekey. * Fixup onekey build for F446, all keymaps. * Fixup board inclusion search ordering. --- keyboards/akb/vero/mcuconf.h | 2 +- .../charybdis/3x5/blackpill/halconf.h | 2 +- .../charybdis/3x5/blackpill/mcuconf.h | 2 +- .../charybdis/3x5/keymaps/drashna/mcuconf.h | 2 +- .../charybdis/3x5/v2/splinky_2/mcuconf.h | 2 +- .../charybdis/3x5/v2/splinky_3/mcuconf.h | 2 +- .../charybdis/3x6/blackpill/halconf.h | 2 +- .../charybdis/3x6/blackpill/mcuconf.h | 2 +- .../charybdis/3x6/v2/splinky_2/mcuconf.h | 2 +- .../charybdis/3x6/v2/splinky_3/mcuconf.h | 2 +- .../charybdis/4x6/blackpill/halconf.h | 2 +- .../charybdis/4x6/blackpill/mcuconf.h | 2 +- .../charybdis/4x6/keymaps/drashna/mcuconf.h | 2 +- .../charybdis/4x6/v2/splinky_2/mcuconf.h | 2 +- .../charybdis/4x6/v2/splinky_3/mcuconf.h | 2 +- .../dilemma/3x5_2/assembled/halconf.h | 2 +- .../dilemma/3x5_2/assembled/mcuconf.h | 2 +- .../dilemma/3x5_2/keymaps/drashna/halconf.h | 2 +- .../dilemma/3x5_2/keymaps/drashna/mcuconf.h | 2 +- .../bastardkb/dilemma/3x5_2/splinky/halconf.h | 2 +- .../bastardkb/dilemma/3x5_2/splinky/mcuconf.h | 2 +- keyboards/bastardkb/dilemma/3x5_3/halconf.h | 2 +- keyboards/bastardkb/dilemma/3x5_3/mcuconf.h | 2 +- keyboards/controllerworks/mini36/halconf.h | 2 +- keyboards/controllerworks/mini36/mcuconf.h | 2 +- keyboards/controllerworks/mini42/halconf.h | 2 +- keyboards/controllerworks/mini42/mcuconf.h | 2 +- keyboards/drop/sense75/board.h | 2 +- keyboards/halokeys/elemental75/chconf.h | 2 +- .../6x6/blackpill_f411/mcuconf.h | 2 +- keyboards/handwired/macroboard/mcuconf.h | 2 +- .../handwired/onekey/blackpill_f401/mcuconf.h | 2 +- .../onekey/blackpill_f401_tinyuf2/mcuconf.h | 2 +- .../handwired/onekey/blackpill_f411/mcuconf.h | 2 +- .../onekey/blackpill_f411_tinyuf2/mcuconf.h | 2 +- .../handwired/onekey/evb_wb32f3g71/mcuconf.h | 2 +- .../handwired/onekey/evb_wb32fq95/mcuconf.h | 2 +- .../handwired/onekey/keymaps/default/keymap.c | 2 ++ .../handwired/onekey/nucleo_f446re/board.h | 9 ++++++++ .../handwired/onekey/nucleo_f446re/config.h | 16 +++++++++++++ .../handwired/onekey/nucleo_f446re/halconf.h | 10 ++++++++ .../handwired/onekey/nucleo_f446re/info.json | 15 ++++++++++++ .../handwired/onekey/nucleo_f446re/mcuconf.h | 23 +++++++++++++++++++ .../handwired/onekey/nucleo_f446re/readme.md | 5 ++++ .../handwired/onekey/nucleo_f446re/rules.mk | 1 + keyboards/handwired/onekey/proton_c/mcuconf.h | 2 +- keyboards/handwired/onekey/rp2040/mcuconf.h | 2 +- .../handwired/pill60/blackpill_f401/mcuconf.h | 2 +- .../handwired/pill60/blackpill_f411/mcuconf.h | 2 +- .../tractyl_manuform/5x6_right/f303/mcuconf.h | 2 +- .../tractyl_manuform/5x6_right/f411/mcuconf.h | 2 +- keyboards/handwired/uthol/rev3/mcuconf.h | 2 +- keyboards/keebio/sinc/rev3/halconf.h | 2 +- keyboards/keebio/sinc/rev3/mcuconf.h | 2 +- keyboards/kin80/blackpill401/mcuconf.h | 2 +- keyboards/kin80/blackpill411/mcuconf.h | 2 +- keyboards/linworks/whale75/chconf.h | 2 +- keyboards/linworks/whale75/mcuconf.h | 2 +- keyboards/mino_plus/soldered/mcuconf.h | 2 +- keyboards/moonlander/mcuconf.h | 2 +- keyboards/planck/ez/mcuconf.h | 2 +- keyboards/planck/rev6/mcuconf.h | 2 +- keyboards/planck/rev6_drop/mcuconf.h | 2 +- keyboards/preonic/rev3/mcuconf.h | 2 +- keyboards/preonic/rev3_drop/mcuconf.h | 2 +- .../splitkb/kyria/rev1/proton_c/chconf.h | 2 +- .../splitkb/kyria/rev2/proton_c/chconf.h | 2 +- keyboards/teleport/native/mcuconf.h | 2 +- keyboards/tzarc/ghoul/rev1/stm32/board.h | 2 +- keyboards/weirdo/geminate60/chconf.h | 2 +- keyboards/yandrstudio/buff67v3/board.h | 2 +- keyboards/yandrstudio/eau87/board.h | 2 +- keyboards/yandrstudio/eau_r2/board.h | 2 +- keyboards/yandrstudio/nightstar75/board.h | 2 +- keyboards/yandrstudio/nz64/board.h | 2 +- keyboards/yandrstudio/nz67v2/board.h | 2 +- keyboards/yandrstudio/tg67/board.h | 2 +- keyboards/yandrstudio/wave75/board.h | 2 +- keyboards/yandrstudio/yr6095/board.h | 2 +- keyboards/yandrstudio/yr80/board.h | 2 +- keyboards/yandrstudio/zhou65/board.h | 2 +- .../community/split_3x6_3/drashna/chconf.h | 2 +- lib/python/qmk/cli/lint.py | 23 +++++++++++++++++++ .../BLACKPILL_STM32_F401/configs/board.h | 2 +- .../BLACKPILL_STM32_F411/configs/board.h | 2 +- .../chibios/boards/BONSAI_C4/configs/board.h | 2 +- .../GENERIC_PROMICRO_RP2040/configs/board.h | 2 +- .../boards/GENERIC_RP_RP2040/configs/board.h | 2 +- .../GENERIC_STM32_F072XB/configs/board.h | 2 +- .../GENERIC_STM32_F303XC/configs/board.h | 2 +- .../GENERIC_STM32_F401XC/configs/board.h | 2 +- .../GENERIC_STM32_F405XG/configs/board.h | 2 +- .../GENERIC_STM32_F407XE/configs/board.h | 2 +- .../GENERIC_STM32_F411XE/configs/board.h | 2 +- .../GENERIC_STM32_F446XE/configs/board.h | 2 +- .../GENERIC_STM32_L412XB/configs/board.h | 2 +- .../GENERIC_STM32_L433XC/configs/board.h | 2 +- .../chibios/boards/QMK_PM2040/configs/board.h | 2 +- .../boards/QMK_PROTON_C/configs/board.h | 2 +- .../chibios/boards/STEMCELL/configs/board.h | 2 +- 100 files changed, 195 insertions(+), 91 deletions(-) create mode 100644 keyboards/handwired/onekey/nucleo_f446re/board.h create mode 100644 keyboards/handwired/onekey/nucleo_f446re/config.h create mode 100644 keyboards/handwired/onekey/nucleo_f446re/halconf.h create mode 100644 keyboards/handwired/onekey/nucleo_f446re/info.json create mode 100644 keyboards/handwired/onekey/nucleo_f446re/mcuconf.h create mode 100644 keyboards/handwired/onekey/nucleo_f446re/readme.md create mode 100644 keyboards/handwired/onekey/nucleo_f446re/rules.mk diff --git a/keyboards/akb/vero/mcuconf.h b/keyboards/akb/vero/mcuconf.h index 3439c90d524a..bf2d83997cb2 100644 --- a/keyboards/akb/vero/mcuconf.h +++ b/keyboards/akb/vero/mcuconf.h @@ -14,7 +14,7 @@ * along with this program. If not, see . */ -#include_next "mcuconf.h" +#include_next /* Set PLL M divider from 4 (F411 GENERIC default) to 8, because of 16 MHz crystal on board */ #undef STM32_PLLM_VALUE #define STM32_PLLM_VALUE 8 diff --git a/keyboards/bastardkb/charybdis/3x5/blackpill/halconf.h b/keyboards/bastardkb/charybdis/3x5/blackpill/halconf.h index 0e5caa9f9a9d..c43f84e0de25 100644 --- a/keyboards/bastardkb/charybdis/3x5/blackpill/halconf.h +++ b/keyboards/bastardkb/charybdis/3x5/blackpill/halconf.h @@ -24,4 +24,4 @@ #define SPI_USE_WAIT TRUE #define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -#include_next "halconf.h" +#include_next diff --git a/keyboards/bastardkb/charybdis/3x5/blackpill/mcuconf.h b/keyboards/bastardkb/charybdis/3x5/blackpill/mcuconf.h index 3b9c9056f8c9..46b3b42f8b8a 100644 --- a/keyboards/bastardkb/charybdis/3x5/blackpill/mcuconf.h +++ b/keyboards/bastardkb/charybdis/3x5/blackpill/mcuconf.h @@ -19,7 +19,7 @@ #pragma once -#include_next "mcuconf.h" +#include_next #undef STM32_PWM_USE_TIM2 #define STM32_PWM_USE_TIM2 TRUE diff --git a/keyboards/bastardkb/charybdis/3x5/keymaps/drashna/mcuconf.h b/keyboards/bastardkb/charybdis/3x5/keymaps/drashna/mcuconf.h index 9c4096701558..3defeed4dd64 100644 --- a/keyboards/bastardkb/charybdis/3x5/keymaps/drashna/mcuconf.h +++ b/keyboards/bastardkb/charybdis/3x5/keymaps/drashna/mcuconf.h @@ -16,7 +16,7 @@ #pragma once -#include_next "mcuconf.h" +#include_next #if defined(KEYBOARD_bastardkb_charybdis_3x5_blackpill) # undef STM32_I2C_USE_I2C1 diff --git a/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/mcuconf.h b/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/mcuconf.h index 0fdd67c3a29a..6aaf31428c12 100644 --- a/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/mcuconf.h +++ b/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/mcuconf.h @@ -17,7 +17,7 @@ #pragma once -#include_next "mcuconf.h" +#include_next #undef RP_SPI_USE_SPI0 #define RP_SPI_USE_SPI0 TRUE diff --git a/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/mcuconf.h b/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/mcuconf.h index 0fdd67c3a29a..6aaf31428c12 100644 --- a/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/mcuconf.h +++ b/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/mcuconf.h @@ -17,7 +17,7 @@ #pragma once -#include_next "mcuconf.h" +#include_next #undef RP_SPI_USE_SPI0 #define RP_SPI_USE_SPI0 TRUE diff --git a/keyboards/bastardkb/charybdis/3x6/blackpill/halconf.h b/keyboards/bastardkb/charybdis/3x6/blackpill/halconf.h index 78885b687082..1ba700a80fa1 100644 --- a/keyboards/bastardkb/charybdis/3x6/blackpill/halconf.h +++ b/keyboards/bastardkb/charybdis/3x6/blackpill/halconf.h @@ -24,4 +24,4 @@ #define SPI_USE_WAIT TRUE #define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -#include_next "halconf.h" +#include_next diff --git a/keyboards/bastardkb/charybdis/3x6/blackpill/mcuconf.h b/keyboards/bastardkb/charybdis/3x6/blackpill/mcuconf.h index 7adcb837deb8..e4cde4880be8 100644 --- a/keyboards/bastardkb/charybdis/3x6/blackpill/mcuconf.h +++ b/keyboards/bastardkb/charybdis/3x6/blackpill/mcuconf.h @@ -19,7 +19,7 @@ #pragma once -#include_next "mcuconf.h" +#include_next #undef STM32_PWM_USE_TIM2 #define STM32_PWM_USE_TIM2 TRUE diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/mcuconf.h b/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/mcuconf.h index 0fdd67c3a29a..6aaf31428c12 100644 --- a/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/mcuconf.h +++ b/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/mcuconf.h @@ -17,7 +17,7 @@ #pragma once -#include_next "mcuconf.h" +#include_next #undef RP_SPI_USE_SPI0 #define RP_SPI_USE_SPI0 TRUE diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/mcuconf.h b/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/mcuconf.h index 0fdd67c3a29a..6aaf31428c12 100644 --- a/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/mcuconf.h +++ b/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/mcuconf.h @@ -17,7 +17,7 @@ #pragma once -#include_next "mcuconf.h" +#include_next #undef RP_SPI_USE_SPI0 #define RP_SPI_USE_SPI0 TRUE diff --git a/keyboards/bastardkb/charybdis/4x6/blackpill/halconf.h b/keyboards/bastardkb/charybdis/4x6/blackpill/halconf.h index 0e5caa9f9a9d..c43f84e0de25 100644 --- a/keyboards/bastardkb/charybdis/4x6/blackpill/halconf.h +++ b/keyboards/bastardkb/charybdis/4x6/blackpill/halconf.h @@ -24,4 +24,4 @@ #define SPI_USE_WAIT TRUE #define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -#include_next "halconf.h" +#include_next diff --git a/keyboards/bastardkb/charybdis/4x6/blackpill/mcuconf.h b/keyboards/bastardkb/charybdis/4x6/blackpill/mcuconf.h index 3b9c9056f8c9..46b3b42f8b8a 100644 --- a/keyboards/bastardkb/charybdis/4x6/blackpill/mcuconf.h +++ b/keyboards/bastardkb/charybdis/4x6/blackpill/mcuconf.h @@ -19,7 +19,7 @@ #pragma once -#include_next "mcuconf.h" +#include_next #undef STM32_PWM_USE_TIM2 #define STM32_PWM_USE_TIM2 TRUE diff --git a/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/mcuconf.h b/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/mcuconf.h index 3a23d5f3707f..0541043c5384 100644 --- a/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/mcuconf.h +++ b/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/mcuconf.h @@ -16,7 +16,7 @@ #pragma once -#include_next "mcuconf.h" +#include_next #if defined(KEYBOARD_bastardkb_charybdis_4x6_blackpill) # undef STM32_PWM_USE_ADVANCED diff --git a/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/mcuconf.h b/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/mcuconf.h index 0fdd67c3a29a..6aaf31428c12 100644 --- a/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/mcuconf.h +++ b/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/mcuconf.h @@ -17,7 +17,7 @@ #pragma once -#include_next "mcuconf.h" +#include_next #undef RP_SPI_USE_SPI0 #define RP_SPI_USE_SPI0 TRUE diff --git a/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/mcuconf.h b/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/mcuconf.h index 0fdd67c3a29a..6aaf31428c12 100644 --- a/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/mcuconf.h +++ b/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/mcuconf.h @@ -17,7 +17,7 @@ #pragma once -#include_next "mcuconf.h" +#include_next #undef RP_SPI_USE_SPI0 #define RP_SPI_USE_SPI0 TRUE diff --git a/keyboards/bastardkb/dilemma/3x5_2/assembled/halconf.h b/keyboards/bastardkb/dilemma/3x5_2/assembled/halconf.h index 7a79bec953f6..57d15376d63a 100644 --- a/keyboards/bastardkb/dilemma/3x5_2/assembled/halconf.h +++ b/keyboards/bastardkb/dilemma/3x5_2/assembled/halconf.h @@ -19,4 +19,4 @@ #define HAL_USE_SPI TRUE -#include_next "halconf.h" +#include_next diff --git a/keyboards/bastardkb/dilemma/3x5_2/assembled/mcuconf.h b/keyboards/bastardkb/dilemma/3x5_2/assembled/mcuconf.h index b54d705b5426..81821c159dca 100644 --- a/keyboards/bastardkb/dilemma/3x5_2/assembled/mcuconf.h +++ b/keyboards/bastardkb/dilemma/3x5_2/assembled/mcuconf.h @@ -17,7 +17,7 @@ #pragma once -#include_next "mcuconf.h" +#include_next #undef RP_SPI_USE_SPI1 #define RP_SPI_USE_SPI1 TRUE diff --git a/keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/halconf.h b/keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/halconf.h index 135994a43cbc..906bd6519780 100644 --- a/keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/halconf.h +++ b/keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/halconf.h @@ -20,4 +20,4 @@ #define HAL_USE_SPI TRUE #define HAL_USE_I2C TRUE -#include_next "halconf.h" +#include_next diff --git a/keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/mcuconf.h b/keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/mcuconf.h index f9aa8946657f..f194dd225ced 100644 --- a/keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/mcuconf.h +++ b/keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/mcuconf.h @@ -17,7 +17,7 @@ #pragma once -#include_next "mcuconf.h" +#include_next #undef RP_SPI_USE_SPI1 #define RP_SPI_USE_SPI1 TRUE diff --git a/keyboards/bastardkb/dilemma/3x5_2/splinky/halconf.h b/keyboards/bastardkb/dilemma/3x5_2/splinky/halconf.h index a4c25c090a2e..2e098f5113d9 100644 --- a/keyboards/bastardkb/dilemma/3x5_2/splinky/halconf.h +++ b/keyboards/bastardkb/dilemma/3x5_2/splinky/halconf.h @@ -18,4 +18,4 @@ #define HAL_USE_I2C TRUE -#include_next "halconf.h" +#include_next diff --git a/keyboards/bastardkb/dilemma/3x5_2/splinky/mcuconf.h b/keyboards/bastardkb/dilemma/3x5_2/splinky/mcuconf.h index 5e47eac54f95..c748d941e9a6 100644 --- a/keyboards/bastardkb/dilemma/3x5_2/splinky/mcuconf.h +++ b/keyboards/bastardkb/dilemma/3x5_2/splinky/mcuconf.h @@ -17,7 +17,7 @@ #pragma once -#include_next "mcuconf.h" +#include_next #undef RP_I2C_USE_I2C1 #define RP_I2C_USE_I2C1 TRUE diff --git a/keyboards/bastardkb/dilemma/3x5_3/halconf.h b/keyboards/bastardkb/dilemma/3x5_3/halconf.h index a3774605a8f7..b79b0f9e8867 100644 --- a/keyboards/bastardkb/dilemma/3x5_3/halconf.h +++ b/keyboards/bastardkb/dilemma/3x5_3/halconf.h @@ -20,4 +20,4 @@ #define HAL_USE_I2C TRUE #define HAL_USE_SPI TRUE -#include_next "halconf.h" +#include_next diff --git a/keyboards/bastardkb/dilemma/3x5_3/mcuconf.h b/keyboards/bastardkb/dilemma/3x5_3/mcuconf.h index f9aa8946657f..f194dd225ced 100644 --- a/keyboards/bastardkb/dilemma/3x5_3/mcuconf.h +++ b/keyboards/bastardkb/dilemma/3x5_3/mcuconf.h @@ -17,7 +17,7 @@ #pragma once -#include_next "mcuconf.h" +#include_next #undef RP_SPI_USE_SPI1 #define RP_SPI_USE_SPI1 TRUE diff --git a/keyboards/controllerworks/mini36/halconf.h b/keyboards/controllerworks/mini36/halconf.h index 1664802d6c8a..68ccc528d632 100644 --- a/keyboards/controllerworks/mini36/halconf.h +++ b/keyboards/controllerworks/mini36/halconf.h @@ -19,4 +19,4 @@ #define HAL_USE_I2C TRUE -#include_next "halconf.h" +#include_next diff --git a/keyboards/controllerworks/mini36/mcuconf.h b/keyboards/controllerworks/mini36/mcuconf.h index 7f0840c7a7df..c92e5035a842 100644 --- a/keyboards/controllerworks/mini36/mcuconf.h +++ b/keyboards/controllerworks/mini36/mcuconf.h @@ -17,7 +17,7 @@ #pragma once -#include_next "mcuconf.h" +#include_next #undef RP_I2C_USE_I2C0 #define RP_I2C_USE_I2C0 TRUE \ No newline at end of file diff --git a/keyboards/controllerworks/mini42/halconf.h b/keyboards/controllerworks/mini42/halconf.h index 1664802d6c8a..68ccc528d632 100644 --- a/keyboards/controllerworks/mini42/halconf.h +++ b/keyboards/controllerworks/mini42/halconf.h @@ -19,4 +19,4 @@ #define HAL_USE_I2C TRUE -#include_next "halconf.h" +#include_next diff --git a/keyboards/controllerworks/mini42/mcuconf.h b/keyboards/controllerworks/mini42/mcuconf.h index 7f0840c7a7df..c92e5035a842 100644 --- a/keyboards/controllerworks/mini42/mcuconf.h +++ b/keyboards/controllerworks/mini42/mcuconf.h @@ -17,7 +17,7 @@ #pragma once -#include_next "mcuconf.h" +#include_next #undef RP_I2C_USE_I2C0 #define RP_I2C_USE_I2C0 TRUE \ No newline at end of file diff --git a/keyboards/drop/sense75/board.h b/keyboards/drop/sense75/board.h index fc227f69b19e..5de178fa61c6 100644 --- a/keyboards/drop/sense75/board.h +++ b/keyboards/drop/sense75/board.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: GPL-2.0-or-later #pragma once -#include_next "board.h" +#include_next #undef STM32_HSECLK #define STM32_HSECLK 16000000U diff --git a/keyboards/halokeys/elemental75/chconf.h b/keyboards/halokeys/elemental75/chconf.h index b780a0e77b2e..f826479adf30 100644 --- a/keyboards/halokeys/elemental75/chconf.h +++ b/keyboards/halokeys/elemental75/chconf.h @@ -18,4 +18,4 @@ // so we need to change resolution and frequency to match. #define CH_CFG_ST_RESOLUTION 16 #define CH_CFG_ST_FREQUENCY 10000 -#include_next "chconf.h" +#include_next diff --git a/keyboards/handwired/dactyl_manuform/6x6/blackpill_f411/mcuconf.h b/keyboards/handwired/dactyl_manuform/6x6/blackpill_f411/mcuconf.h index b8bb363d9123..f1a02293fd03 100644 --- a/keyboards/handwired/dactyl_manuform/6x6/blackpill_f411/mcuconf.h +++ b/keyboards/handwired/dactyl_manuform/6x6/blackpill_f411/mcuconf.h @@ -16,7 +16,7 @@ #pragma once -#include_next "mcuconf.h" +#include_next #undef STM32_SERIAL_USE_USART1 #define STM32_SERIAL_USE_USART1 TRUE diff --git a/keyboards/handwired/macroboard/mcuconf.h b/keyboards/handwired/macroboard/mcuconf.h index e62fb3341eaa..94fa17b95045 100644 --- a/keyboards/handwired/macroboard/mcuconf.h +++ b/keyboards/handwired/macroboard/mcuconf.h @@ -15,7 +15,7 @@ */ #pragma once -#include_next "mcuconf.h" +#include_next #undef STM32_PWM_USE_TIM2 #define STM32_PWM_USE_TIM2 TRUE diff --git a/keyboards/handwired/onekey/blackpill_f401/mcuconf.h b/keyboards/handwired/onekey/blackpill_f401/mcuconf.h index fcb7d84f9696..f69da38b271e 100644 --- a/keyboards/handwired/onekey/blackpill_f401/mcuconf.h +++ b/keyboards/handwired/onekey/blackpill_f401/mcuconf.h @@ -16,7 +16,7 @@ #pragma once -#include_next "mcuconf.h" +#include_next #undef STM32_ADC_USE_ADC1 #define STM32_ADC_USE_ADC1 TRUE diff --git a/keyboards/handwired/onekey/blackpill_f401_tinyuf2/mcuconf.h b/keyboards/handwired/onekey/blackpill_f401_tinyuf2/mcuconf.h index fcb7d84f9696..f69da38b271e 100755 --- a/keyboards/handwired/onekey/blackpill_f401_tinyuf2/mcuconf.h +++ b/keyboards/handwired/onekey/blackpill_f401_tinyuf2/mcuconf.h @@ -16,7 +16,7 @@ #pragma once -#include_next "mcuconf.h" +#include_next #undef STM32_ADC_USE_ADC1 #define STM32_ADC_USE_ADC1 TRUE diff --git a/keyboards/handwired/onekey/blackpill_f411/mcuconf.h b/keyboards/handwired/onekey/blackpill_f411/mcuconf.h index fcb7d84f9696..f69da38b271e 100644 --- a/keyboards/handwired/onekey/blackpill_f411/mcuconf.h +++ b/keyboards/handwired/onekey/blackpill_f411/mcuconf.h @@ -16,7 +16,7 @@ #pragma once -#include_next "mcuconf.h" +#include_next #undef STM32_ADC_USE_ADC1 #define STM32_ADC_USE_ADC1 TRUE diff --git a/keyboards/handwired/onekey/blackpill_f411_tinyuf2/mcuconf.h b/keyboards/handwired/onekey/blackpill_f411_tinyuf2/mcuconf.h index fcb7d84f9696..f69da38b271e 100755 --- a/keyboards/handwired/onekey/blackpill_f411_tinyuf2/mcuconf.h +++ b/keyboards/handwired/onekey/blackpill_f411_tinyuf2/mcuconf.h @@ -16,7 +16,7 @@ #pragma once -#include_next "mcuconf.h" +#include_next #undef STM32_ADC_USE_ADC1 #define STM32_ADC_USE_ADC1 TRUE diff --git a/keyboards/handwired/onekey/evb_wb32f3g71/mcuconf.h b/keyboards/handwired/onekey/evb_wb32f3g71/mcuconf.h index 7ef36ff66c7d..322282b4b3cb 100644 --- a/keyboards/handwired/onekey/evb_wb32f3g71/mcuconf.h +++ b/keyboards/handwired/onekey/evb_wb32f3g71/mcuconf.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: GPL-2.0-or-later #pragma once -#include_next "mcuconf.h" +#include_next #undef WB32_ADC_USE_ADC1 #define WB32_ADC_USE_ADC1 TRUE diff --git a/keyboards/handwired/onekey/evb_wb32fq95/mcuconf.h b/keyboards/handwired/onekey/evb_wb32fq95/mcuconf.h index 7ef36ff66c7d..322282b4b3cb 100644 --- a/keyboards/handwired/onekey/evb_wb32fq95/mcuconf.h +++ b/keyboards/handwired/onekey/evb_wb32fq95/mcuconf.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: GPL-2.0-or-later #pragma once -#include_next "mcuconf.h" +#include_next #undef WB32_ADC_USE_ADC1 #define WB32_ADC_USE_ADC1 TRUE diff --git a/keyboards/handwired/onekey/keymaps/default/keymap.c b/keyboards/handwired/onekey/keymaps/default/keymap.c index a5782f7a1368..1c0375e56ccc 100644 --- a/keyboards/handwired/onekey/keymaps/default/keymap.c +++ b/keyboards/handwired/onekey/keymaps/default/keymap.c @@ -1,3 +1,5 @@ +// Copyright 2020 QMK +// SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { diff --git a/keyboards/handwired/onekey/nucleo_f446re/board.h b/keyboards/handwired/onekey/nucleo_f446re/board.h new file mode 100644 index 000000000000..0c5f4dde799a --- /dev/null +++ b/keyboards/handwired/onekey/nucleo_f446re/board.h @@ -0,0 +1,9 @@ +// Copyright 2023 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_HSECLK +#define STM32_HSECLK 8000000U +#define STM32_HSE_BYPASS diff --git a/keyboards/handwired/onekey/nucleo_f446re/config.h b/keyboards/handwired/onekey/nucleo_f446re/config.h new file mode 100644 index 000000000000..612cbf0eab08 --- /dev/null +++ b/keyboards/handwired/onekey/nucleo_f446re/config.h @@ -0,0 +1,16 @@ +// Copyright 2021 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include "config_common.h" + +#define BACKLIGHT_PWM_DRIVER PWMD4 +#define BACKLIGHT_PWM_CHANNEL 3 +#define BACKLIGHT_PAL_MODE 2 + +#define RGB_CI_PIN B13 + +#define ADC_PIN A0 + +#define SOLENOID_PINS { B12, B13, B14, B15 } +#define SOLENOID_PINS_ACTIVE_STATE { high, high, low } diff --git a/keyboards/handwired/onekey/nucleo_f446re/halconf.h b/keyboards/handwired/onekey/nucleo_f446re/halconf.h new file mode 100644 index 000000000000..e3fd1cf6e1ad --- /dev/null +++ b/keyboards/handwired/onekey/nucleo_f446re/halconf.h @@ -0,0 +1,10 @@ +// Copyright 2023 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define HAL_USE_ADC TRUE +#define HAL_USE_SPI TRUE +#define HAL_USE_I2C TRUE +#define HAL_USE_PWM TRUE + +#include_next diff --git a/keyboards/handwired/onekey/nucleo_f446re/info.json b/keyboards/handwired/onekey/nucleo_f446re/info.json new file mode 100644 index 000000000000..6b9206f98731 --- /dev/null +++ b/keyboards/handwired/onekey/nucleo_f446re/info.json @@ -0,0 +1,15 @@ +{ + "keyboard_name": "Onekey Nucleo F446RE", + "processor": "STM32F446", + "bootloader": "stm32-dfu", + "matrix_pins": { + "cols": ["A2"], + "rows": ["A1"] + }, + "backlight": { + "pin": "B8" + }, + "rgblight": { + "pin": "A0" + } +} diff --git a/keyboards/handwired/onekey/nucleo_f446re/mcuconf.h b/keyboards/handwired/onekey/nucleo_f446re/mcuconf.h new file mode 100644 index 000000000000..701d61d31de8 --- /dev/null +++ b/keyboards/handwired/onekey/nucleo_f446re/mcuconf.h @@ -0,0 +1,23 @@ +// Copyright 2023 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_PLLM_VALUE +#define STM32_PLLM_VALUE 4 + +#undef STM32_PLLSAIM_VALUE +#define STM32_PLLSAIM_VALUE 4 + +#undef STM32_ADC_USE_ADC1 +#define STM32_ADC_USE_ADC1 TRUE + +#undef STM32_PWM_USE_TIM4 +#define STM32_PWM_USE_TIM4 TRUE + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE + +#undef STM32_SPI_USE_SPI1 +#define STM32_SPI_USE_SPI1 TRUE diff --git a/keyboards/handwired/onekey/nucleo_f446re/readme.md b/keyboards/handwired/onekey/nucleo_f446re/readme.md new file mode 100644 index 000000000000..c7d13cb97385 --- /dev/null +++ b/keyboards/handwired/onekey/nucleo_f446re/readme.md @@ -0,0 +1,5 @@ +# STM32 Nucleo-L432 onekey + +To trigger keypress, short together pins *A1* and *A2*. + +You'll also need to connect `VIN`, `GND`, USB `D+` to `PA12`/`D2`, and USB `D-` to `PA11`/`D10`. diff --git a/keyboards/handwired/onekey/nucleo_f446re/rules.mk b/keyboards/handwired/onekey/nucleo_f446re/rules.mk new file mode 100644 index 000000000000..8515c3fae029 --- /dev/null +++ b/keyboards/handwired/onekey/nucleo_f446re/rules.mk @@ -0,0 +1 @@ +SRC += analog.c diff --git a/keyboards/handwired/onekey/proton_c/mcuconf.h b/keyboards/handwired/onekey/proton_c/mcuconf.h index 935056eb6a42..5bf9e0544b88 100644 --- a/keyboards/handwired/onekey/proton_c/mcuconf.h +++ b/keyboards/handwired/onekey/proton_c/mcuconf.h @@ -16,7 +16,7 @@ #pragma once -#include_next "mcuconf.h" +#include_next #undef STM32_ADC_USE_ADC1 #define STM32_ADC_USE_ADC1 TRUE diff --git a/keyboards/handwired/onekey/rp2040/mcuconf.h b/keyboards/handwired/onekey/rp2040/mcuconf.h index 5c2587395d77..e24a0d4f24eb 100644 --- a/keyboards/handwired/onekey/rp2040/mcuconf.h +++ b/keyboards/handwired/onekey/rp2040/mcuconf.h @@ -3,7 +3,7 @@ #pragma once -#include_next "mcuconf.h" +#include_next #undef RP_PWM_USE_PWM0 #define RP_PWM_USE_PWM0 TRUE diff --git a/keyboards/handwired/pill60/blackpill_f401/mcuconf.h b/keyboards/handwired/pill60/blackpill_f401/mcuconf.h index a8b0a56602c6..ab89514fb1c7 100644 --- a/keyboards/handwired/pill60/blackpill_f401/mcuconf.h +++ b/keyboards/handwired/pill60/blackpill_f401/mcuconf.h @@ -15,7 +15,7 @@ */ #pragma once -#include_next "mcuconf.h" +#include_next #undef STM32_I2C_USE_I2C1 #define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/handwired/pill60/blackpill_f411/mcuconf.h b/keyboards/handwired/pill60/blackpill_f411/mcuconf.h index a8b0a56602c6..ab89514fb1c7 100644 --- a/keyboards/handwired/pill60/blackpill_f411/mcuconf.h +++ b/keyboards/handwired/pill60/blackpill_f411/mcuconf.h @@ -15,7 +15,7 @@ */ #pragma once -#include_next "mcuconf.h" +#include_next #undef STM32_I2C_USE_I2C1 #define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f303/mcuconf.h b/keyboards/handwired/tractyl_manuform/5x6_right/f303/mcuconf.h index 5525a077d27c..12add21a0a2c 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/f303/mcuconf.h +++ b/keyboards/handwired/tractyl_manuform/5x6_right/f303/mcuconf.h @@ -16,7 +16,7 @@ #pragma once -#include_next "mcuconf.h" +#include_next #undef STM32_I2C_USE_I2C1 #define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f411/mcuconf.h b/keyboards/handwired/tractyl_manuform/5x6_right/f411/mcuconf.h index fd71b54b77da..d3a21f72c4d3 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/f411/mcuconf.h +++ b/keyboards/handwired/tractyl_manuform/5x6_right/f411/mcuconf.h @@ -16,7 +16,7 @@ #pragma once -#include_next "mcuconf.h" +#include_next #undef STM32_I2C_USE_I2C1 #define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/handwired/uthol/rev3/mcuconf.h b/keyboards/handwired/uthol/rev3/mcuconf.h index 24fb0ef3a571..437f957fa653 100644 --- a/keyboards/handwired/uthol/rev3/mcuconf.h +++ b/keyboards/handwired/uthol/rev3/mcuconf.h @@ -16,7 +16,7 @@ */ #pragma once -#include_next "mcuconf.h" +#include_next #undef STM32_I2C_USE_I2C1 #define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/keebio/sinc/rev3/halconf.h b/keyboards/keebio/sinc/rev3/halconf.h index a4c25c090a2e..2e098f5113d9 100644 --- a/keyboards/keebio/sinc/rev3/halconf.h +++ b/keyboards/keebio/sinc/rev3/halconf.h @@ -18,4 +18,4 @@ #define HAL_USE_I2C TRUE -#include_next "halconf.h" +#include_next diff --git a/keyboards/keebio/sinc/rev3/mcuconf.h b/keyboards/keebio/sinc/rev3/mcuconf.h index 5e47eac54f95..c748d941e9a6 100644 --- a/keyboards/keebio/sinc/rev3/mcuconf.h +++ b/keyboards/keebio/sinc/rev3/mcuconf.h @@ -17,7 +17,7 @@ #pragma once -#include_next "mcuconf.h" +#include_next #undef RP_I2C_USE_I2C1 #define RP_I2C_USE_I2C1 TRUE diff --git a/keyboards/kin80/blackpill401/mcuconf.h b/keyboards/kin80/blackpill401/mcuconf.h index e614a9dfa93f..76250cb8962b 100644 --- a/keyboards/kin80/blackpill401/mcuconf.h +++ b/keyboards/kin80/blackpill401/mcuconf.h @@ -16,7 +16,7 @@ #pragma once -#include_next "mcuconf.h" +#include_next #undef STM32_I2C_USE_I2C1 #define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/kin80/blackpill411/mcuconf.h b/keyboards/kin80/blackpill411/mcuconf.h index e614a9dfa93f..76250cb8962b 100644 --- a/keyboards/kin80/blackpill411/mcuconf.h +++ b/keyboards/kin80/blackpill411/mcuconf.h @@ -16,7 +16,7 @@ #pragma once -#include_next "mcuconf.h" +#include_next #undef STM32_I2C_USE_I2C1 #define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/linworks/whale75/chconf.h b/keyboards/linworks/whale75/chconf.h index d32319aacf01..156fcf1ee2f4 100644 --- a/keyboards/linworks/whale75/chconf.h +++ b/keyboards/linworks/whale75/chconf.h @@ -14,4 +14,4 @@ * along with this program. If not, see . */ -#include_next "chconf.h" +#include_next diff --git a/keyboards/linworks/whale75/mcuconf.h b/keyboards/linworks/whale75/mcuconf.h index 044994708660..f6dc94d2db20 100644 --- a/keyboards/linworks/whale75/mcuconf.h +++ b/keyboards/linworks/whale75/mcuconf.h @@ -14,7 +14,7 @@ * along with this program. If not, see . */ -#include_next "mcuconf.h" +#include_next // Underglow uses TIM4, Backlight TIM1, so both are enabled here. #undef STM32_PWM_USE_TIM1 diff --git a/keyboards/mino_plus/soldered/mcuconf.h b/keyboards/mino_plus/soldered/mcuconf.h index c1d45157c733..7968bd26da87 100644 --- a/keyboards/mino_plus/soldered/mcuconf.h +++ b/keyboards/mino_plus/soldered/mcuconf.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: GPL-2.0-or-later #pragma once -#include_next "mcuconf.h" +#include_next #undef STM32_I2C_USE_I2C1 #define STM32_I2C_USE_I2C1 TRUE \ No newline at end of file diff --git a/keyboards/moonlander/mcuconf.h b/keyboards/moonlander/mcuconf.h index 69f458a9377b..032c853f4ebc 100644 --- a/keyboards/moonlander/mcuconf.h +++ b/keyboards/moonlander/mcuconf.h @@ -16,7 +16,7 @@ #pragma once -#include_next "mcuconf.h" +#include_next // for i2c expander, and ISSI #undef STM32_I2C_USE_I2C1 diff --git a/keyboards/planck/ez/mcuconf.h b/keyboards/planck/ez/mcuconf.h index 44035e782720..7475b0990c69 100644 --- a/keyboards/planck/ez/mcuconf.h +++ b/keyboards/planck/ez/mcuconf.h @@ -16,7 +16,7 @@ #pragma once -#include_next "mcuconf.h" +#include_next // for i2c expander, and ISSI #undef STM32_I2C_USE_I2C1 diff --git a/keyboards/planck/rev6/mcuconf.h b/keyboards/planck/rev6/mcuconf.h index dde67871cdda..540e708a6ee9 100644 --- a/keyboards/planck/rev6/mcuconf.h +++ b/keyboards/planck/rev6/mcuconf.h @@ -14,7 +14,7 @@ * along with this program. If not, see . */ -#include_next "mcuconf.h" +#include_next // The SysTick timer from the normal quantum/stm32 uses TIM2 -- the WS2812 pin used // on the Planck requires the use of TIM2 to run PWM -- rework which timers are diff --git a/keyboards/planck/rev6_drop/mcuconf.h b/keyboards/planck/rev6_drop/mcuconf.h index d7c29fcf65be..20337afbb27c 100644 --- a/keyboards/planck/rev6_drop/mcuconf.h +++ b/keyboards/planck/rev6_drop/mcuconf.h @@ -14,7 +14,7 @@ * along with this program. If not, see . */ -#include_next "mcuconf.h" +#include_next // The SysTick timer from the normal quantum/stm32 uses TIM2 -- the WS2812 pin used // on the Planck requires the use of TIM2 to run PWM -- rework which timers are diff --git a/keyboards/preonic/rev3/mcuconf.h b/keyboards/preonic/rev3/mcuconf.h index fbc4e7ca62ee..f534faccaf1e 100644 --- a/keyboards/preonic/rev3/mcuconf.h +++ b/keyboards/preonic/rev3/mcuconf.h @@ -14,7 +14,7 @@ * along with this program. If not, see . */ -#include_next "mcuconf.h" +#include_next // The SysTick timer from the normal quantum/stm32 uses TIM2 -- the WS2812 pin used // on the Planck requires the use of TIM2 to run PWM -- rework which timers are diff --git a/keyboards/preonic/rev3_drop/mcuconf.h b/keyboards/preonic/rev3_drop/mcuconf.h index b51bf6708e73..838a3bb69ee1 100644 --- a/keyboards/preonic/rev3_drop/mcuconf.h +++ b/keyboards/preonic/rev3_drop/mcuconf.h @@ -14,7 +14,7 @@ * along with this program. If not, see . */ -#include_next "mcuconf.h" +#include_next // The SysTick timer from the normal quantum/stm32 uses TIM2 -- the WS2812 pin used // on the Planck requires the use of TIM2 to run PWM -- rework which timers are diff --git a/keyboards/splitkb/kyria/rev1/proton_c/chconf.h b/keyboards/splitkb/kyria/rev1/proton_c/chconf.h index 7ca1d3d24310..8833e3d746fb 100644 --- a/keyboards/splitkb/kyria/rev1/proton_c/chconf.h +++ b/keyboards/splitkb/kyria/rev1/proton_c/chconf.h @@ -19,4 +19,4 @@ #define CH_CFG_ST_RESOLUTION 16 #define CH_CFG_ST_FREQUENCY 10000 -#include_next "chconf.h" +#include_next diff --git a/keyboards/splitkb/kyria/rev2/proton_c/chconf.h b/keyboards/splitkb/kyria/rev2/proton_c/chconf.h index 7ca1d3d24310..8833e3d746fb 100644 --- a/keyboards/splitkb/kyria/rev2/proton_c/chconf.h +++ b/keyboards/splitkb/kyria/rev2/proton_c/chconf.h @@ -19,4 +19,4 @@ #define CH_CFG_ST_RESOLUTION 16 #define CH_CFG_ST_FREQUENCY 10000 -#include_next "chconf.h" +#include_next diff --git a/keyboards/teleport/native/mcuconf.h b/keyboards/teleport/native/mcuconf.h index 8b5d373bc3e1..ff40f7ec9d9c 100644 --- a/keyboards/teleport/native/mcuconf.h +++ b/keyboards/teleport/native/mcuconf.h @@ -14,7 +14,7 @@ * along with this program. If not, see . */ -#include_next "mcuconf.h" +#include_next /* Set PLL M divider from 4 (F411 GENERIC default) to 8, because of 16 MHz crystal on board */ #undef STM32_PLLM_VALUE diff --git a/keyboards/tzarc/ghoul/rev1/stm32/board.h b/keyboards/tzarc/ghoul/rev1/stm32/board.h index 5379bd4a179b..aadaac044934 100644 --- a/keyboards/tzarc/ghoul/rev1/stm32/board.h +++ b/keyboards/tzarc/ghoul/rev1/stm32/board.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: GPL-3.0-or-later #pragma once -#include_next "board.h" +#include_next #ifdef BOARD_OTG_NOVBUSSENS # undef BOARD_OTG_NOVBUSSENS diff --git a/keyboards/weirdo/geminate60/chconf.h b/keyboards/weirdo/geminate60/chconf.h index d58807924a00..a70b65c879d4 100644 --- a/keyboards/weirdo/geminate60/chconf.h +++ b/keyboards/weirdo/geminate60/chconf.h @@ -18,4 +18,4 @@ // so we need to change resolution and frequency to match. #define CH_CFG_ST_RESOLUTION 16 #define CH_CFG_ST_FREQUENCY 10000 -#include_next "chconf.h" +#include_next diff --git a/keyboards/yandrstudio/buff67v3/board.h b/keyboards/yandrstudio/buff67v3/board.h index d83804babdf7..e474f8ab33ff 100644 --- a/keyboards/yandrstudio/buff67v3/board.h +++ b/keyboards/yandrstudio/buff67v3/board.h @@ -15,7 +15,7 @@ */ #pragma once -#include_next "board.h" +#include_next #undef STM32_HSECLK #define STM32_HSECLK 16000000 diff --git a/keyboards/yandrstudio/eau87/board.h b/keyboards/yandrstudio/eau87/board.h index d83804babdf7..e474f8ab33ff 100644 --- a/keyboards/yandrstudio/eau87/board.h +++ b/keyboards/yandrstudio/eau87/board.h @@ -15,7 +15,7 @@ */ #pragma once -#include_next "board.h" +#include_next #undef STM32_HSECLK #define STM32_HSECLK 16000000 diff --git a/keyboards/yandrstudio/eau_r2/board.h b/keyboards/yandrstudio/eau_r2/board.h index a667bee461b6..49270b36a050 100644 --- a/keyboards/yandrstudio/eau_r2/board.h +++ b/keyboards/yandrstudio/eau_r2/board.h @@ -16,7 +16,7 @@ #pragma once -#include_next "board.h" +#include_next #undef STM32_HSECLK #define STM32_HSECLK 16000000 diff --git a/keyboards/yandrstudio/nightstar75/board.h b/keyboards/yandrstudio/nightstar75/board.h index d83804babdf7..e474f8ab33ff 100644 --- a/keyboards/yandrstudio/nightstar75/board.h +++ b/keyboards/yandrstudio/nightstar75/board.h @@ -15,7 +15,7 @@ */ #pragma once -#include_next "board.h" +#include_next #undef STM32_HSECLK #define STM32_HSECLK 16000000 diff --git a/keyboards/yandrstudio/nz64/board.h b/keyboards/yandrstudio/nz64/board.h index 8a068cd8831c..aaa6d1e5f4c9 100644 --- a/keyboards/yandrstudio/nz64/board.h +++ b/keyboards/yandrstudio/nz64/board.h @@ -15,7 +15,7 @@ */ #pragma once -#include_next "board.h" +#include_next #undef STM32_HSECLK #define STM32_HSECLK 16000000 diff --git a/keyboards/yandrstudio/nz67v2/board.h b/keyboards/yandrstudio/nz67v2/board.h index a667bee461b6..49270b36a050 100644 --- a/keyboards/yandrstudio/nz67v2/board.h +++ b/keyboards/yandrstudio/nz67v2/board.h @@ -16,7 +16,7 @@ #pragma once -#include_next "board.h" +#include_next #undef STM32_HSECLK #define STM32_HSECLK 16000000 diff --git a/keyboards/yandrstudio/tg67/board.h b/keyboards/yandrstudio/tg67/board.h index d83804babdf7..e474f8ab33ff 100644 --- a/keyboards/yandrstudio/tg67/board.h +++ b/keyboards/yandrstudio/tg67/board.h @@ -15,7 +15,7 @@ */ #pragma once -#include_next "board.h" +#include_next #undef STM32_HSECLK #define STM32_HSECLK 16000000 diff --git a/keyboards/yandrstudio/wave75/board.h b/keyboards/yandrstudio/wave75/board.h index d83804babdf7..e474f8ab33ff 100644 --- a/keyboards/yandrstudio/wave75/board.h +++ b/keyboards/yandrstudio/wave75/board.h @@ -15,7 +15,7 @@ */ #pragma once -#include_next "board.h" +#include_next #undef STM32_HSECLK #define STM32_HSECLK 16000000 diff --git a/keyboards/yandrstudio/yr6095/board.h b/keyboards/yandrstudio/yr6095/board.h index d83804babdf7..e474f8ab33ff 100644 --- a/keyboards/yandrstudio/yr6095/board.h +++ b/keyboards/yandrstudio/yr6095/board.h @@ -15,7 +15,7 @@ */ #pragma once -#include_next "board.h" +#include_next #undef STM32_HSECLK #define STM32_HSECLK 16000000 diff --git a/keyboards/yandrstudio/yr80/board.h b/keyboards/yandrstudio/yr80/board.h index 0723a9c6b5e9..b33982f7e66f 100644 --- a/keyboards/yandrstudio/yr80/board.h +++ b/keyboards/yandrstudio/yr80/board.h @@ -16,7 +16,7 @@ #pragma once -#include_next "board.h" +#include_next #undef STM32_HSECLK #define STM32_HSECLK 16000000 diff --git a/keyboards/yandrstudio/zhou65/board.h b/keyboards/yandrstudio/zhou65/board.h index 8a068cd8831c..aaa6d1e5f4c9 100644 --- a/keyboards/yandrstudio/zhou65/board.h +++ b/keyboards/yandrstudio/zhou65/board.h @@ -15,7 +15,7 @@ */ #pragma once -#include_next "board.h" +#include_next #undef STM32_HSECLK #define STM32_HSECLK 16000000 diff --git a/layouts/community/split_3x6_3/drashna/chconf.h b/layouts/community/split_3x6_3/drashna/chconf.h index 9dbc78b97301..1e277d357dd3 100644 --- a/layouts/community/split_3x6_3/drashna/chconf.h +++ b/layouts/community/split_3x6_3/drashna/chconf.h @@ -7,5 +7,5 @@ #if __has_include("platforms/chibios/common/configs/chconf.h") # include_next "platforms/chibios/common/configs/chconf.h" #else -# include_next "chconf.h" +# include_next #endif diff --git a/lib/python/qmk/cli/lint.py b/lib/python/qmk/cli/lint.py index c67809a697d9..897a6c4c0d0d 100644 --- a/lib/python/qmk/cli/lint.py +++ b/lib/python/qmk/cli/lint.py @@ -12,6 +12,8 @@ from qmk.git import git_get_ignored_files from qmk.c_parse import c_source_files +CHIBIOS_CONF_CHECKS = ['chconf.h', 'halconf.h', 'mcuconf.h', 'board.h'] + def _list_defaultish_keymaps(kb): """Return default like keymaps for a given keyboard @@ -64,6 +66,15 @@ def _handle_json_errors(kb, info): return ok +def _chibios_conf_includenext_check(target): + """Check the ChibiOS conf.h for the correct inclusion of the next conf.h + """ + for i, line in enumerate(target.open()): + if f'#include_next "{target.name}"' in line: + return f'Found `#include_next "{target.name}"` on line {i} of {target}, should be `#include_next <{target.name}>` (use angle brackets, not quotes)' + return None + + def _rules_mk_assignment_only(kb): """Check the keyboard-level rules.mk to ensure it only has assignments. """ @@ -121,6 +132,12 @@ def keymap_check(kb, km): cli.log.error(f'{kb}/{km}: The file "{file}" does not have a license header!') ok = False + if file.name in CHIBIOS_CONF_CHECKS: + check_error = _chibios_conf_includenext_check(file) + if check_error is not None: + cli.log.error(f'{kb}/{km}: {check_error}') + ok = False + return ok @@ -153,6 +170,12 @@ def keyboard_check(kb): cli.log.error(f'{kb}: The file "{file}" does not have a license header!') ok = False + if file.name in CHIBIOS_CONF_CHECKS: + check_error = _chibios_conf_includenext_check(file) + if check_error is not None: + cli.log.error(f'{kb}: {check_error}') + ok = False + return ok diff --git a/platforms/chibios/boards/BLACKPILL_STM32_F401/configs/board.h b/platforms/chibios/boards/BLACKPILL_STM32_F401/configs/board.h index 78dcbac05c89..772204ae5d79 100644 --- a/platforms/chibios/boards/BLACKPILL_STM32_F401/configs/board.h +++ b/platforms/chibios/boards/BLACKPILL_STM32_F401/configs/board.h @@ -15,7 +15,7 @@ */ #pragma once -#include_next "board.h" +#include_next // Force B9 as input to align with qmk defaults #undef VAL_GPIOB_MODER diff --git a/platforms/chibios/boards/BLACKPILL_STM32_F411/configs/board.h b/platforms/chibios/boards/BLACKPILL_STM32_F411/configs/board.h index 30af6b0c8608..81c80b27731e 100644 --- a/platforms/chibios/boards/BLACKPILL_STM32_F411/configs/board.h +++ b/platforms/chibios/boards/BLACKPILL_STM32_F411/configs/board.h @@ -15,6 +15,6 @@ */ #pragma once -#include_next "board.h" +#include_next #undef STM32_HSE_BYPASS diff --git a/platforms/chibios/boards/BONSAI_C4/configs/board.h b/platforms/chibios/boards/BONSAI_C4/configs/board.h index f1ee51c91f59..372b9bb8bc3d 100644 --- a/platforms/chibios/boards/BONSAI_C4/configs/board.h +++ b/platforms/chibios/boards/BONSAI_C4/configs/board.h @@ -15,6 +15,6 @@ */ #pragma once -#include_next "board.h" +#include_next #undef STM32_HSE_BYPASS \ No newline at end of file diff --git a/platforms/chibios/boards/GENERIC_PROMICRO_RP2040/configs/board.h b/platforms/chibios/boards/GENERIC_PROMICRO_RP2040/configs/board.h index b4363595d019..f0e959589651 100644 --- a/platforms/chibios/boards/GENERIC_PROMICRO_RP2040/configs/board.h +++ b/platforms/chibios/boards/GENERIC_PROMICRO_RP2040/configs/board.h @@ -3,7 +3,7 @@ #pragma once -#include_next "board.h" +#include_next #undef BOARD_RP_PICO_RP2040 #define BOARD_GENERIC_PROMICRO_RP2040 diff --git a/platforms/chibios/boards/GENERIC_RP_RP2040/configs/board.h b/platforms/chibios/boards/GENERIC_RP_RP2040/configs/board.h index 052050c94498..89f4f0d61cd7 100644 --- a/platforms/chibios/boards/GENERIC_RP_RP2040/configs/board.h +++ b/platforms/chibios/boards/GENERIC_RP_RP2040/configs/board.h @@ -3,7 +3,7 @@ #pragma once -#include_next "board.h" +#include_next #undef BOARD_RP_PICO_RP2040 #define BOARD_GENERIC_RP2040 diff --git a/platforms/chibios/boards/GENERIC_STM32_F072XB/configs/board.h b/platforms/chibios/boards/GENERIC_STM32_F072XB/configs/board.h index 30af6b0c8608..81c80b27731e 100644 --- a/platforms/chibios/boards/GENERIC_STM32_F072XB/configs/board.h +++ b/platforms/chibios/boards/GENERIC_STM32_F072XB/configs/board.h @@ -15,6 +15,6 @@ */ #pragma once -#include_next "board.h" +#include_next #undef STM32_HSE_BYPASS diff --git a/platforms/chibios/boards/GENERIC_STM32_F303XC/configs/board.h b/platforms/chibios/boards/GENERIC_STM32_F303XC/configs/board.h index 97159964d054..4bca351422ff 100644 --- a/platforms/chibios/boards/GENERIC_STM32_F303XC/configs/board.h +++ b/platforms/chibios/boards/GENERIC_STM32_F303XC/configs/board.h @@ -15,7 +15,7 @@ */ #pragma once -#include_next "board.h" +#include_next #undef STM32_HSE_BYPASS diff --git a/platforms/chibios/boards/GENERIC_STM32_F401XC/configs/board.h b/platforms/chibios/boards/GENERIC_STM32_F401XC/configs/board.h index 78dcbac05c89..772204ae5d79 100644 --- a/platforms/chibios/boards/GENERIC_STM32_F401XC/configs/board.h +++ b/platforms/chibios/boards/GENERIC_STM32_F401XC/configs/board.h @@ -15,7 +15,7 @@ */ #pragma once -#include_next "board.h" +#include_next // Force B9 as input to align with qmk defaults #undef VAL_GPIOB_MODER diff --git a/platforms/chibios/boards/GENERIC_STM32_F405XG/configs/board.h b/platforms/chibios/boards/GENERIC_STM32_F405XG/configs/board.h index 8cb771bc12f9..e8e43f1567dc 100644 --- a/platforms/chibios/boards/GENERIC_STM32_F405XG/configs/board.h +++ b/platforms/chibios/boards/GENERIC_STM32_F405XG/configs/board.h @@ -19,7 +19,7 @@ // The following is required to disable the pull-down on PA9, when PA9 is used for the keyboard matrix: #define BOARD_OTG_NOVBUSSENS -#include_next "board.h" +#include_next #undef STM32_HSE_BYPASS diff --git a/platforms/chibios/boards/GENERIC_STM32_F407XE/configs/board.h b/platforms/chibios/boards/GENERIC_STM32_F407XE/configs/board.h index 22c4e4cd7e69..a0d53d86e7c7 100644 --- a/platforms/chibios/boards/GENERIC_STM32_F407XE/configs/board.h +++ b/platforms/chibios/boards/GENERIC_STM32_F407XE/configs/board.h @@ -19,6 +19,6 @@ // The following is required to disable the pull-down on PA9, when PA9 is used for the keyboard matrix: #define BOARD_OTG_NOVBUSSENS -#include_next "board.h" +#include_next #undef STM32_HSE_BYPASS \ No newline at end of file diff --git a/platforms/chibios/boards/GENERIC_STM32_F411XE/configs/board.h b/platforms/chibios/boards/GENERIC_STM32_F411XE/configs/board.h index 30af6b0c8608..81c80b27731e 100644 --- a/platforms/chibios/boards/GENERIC_STM32_F411XE/configs/board.h +++ b/platforms/chibios/boards/GENERIC_STM32_F411XE/configs/board.h @@ -15,6 +15,6 @@ */ #pragma once -#include_next "board.h" +#include_next #undef STM32_HSE_BYPASS diff --git a/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/board.h b/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/board.h index 80dfcffa991b..f05762c9b4d5 100644 --- a/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/board.h +++ b/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/board.h @@ -19,6 +19,6 @@ // The following is required to disable the pull-down on PA9, when PA9 is used for the keyboard matrix: #define BOARD_OTG_NOVBUSSENS -#include_next "board.h" +#include_next #undef STM32_HSE_BYPASS diff --git a/platforms/chibios/boards/GENERIC_STM32_L412XB/configs/board.h b/platforms/chibios/boards/GENERIC_STM32_L412XB/configs/board.h index de5f85acdd99..1f7183f1e7a0 100644 --- a/platforms/chibios/boards/GENERIC_STM32_L412XB/configs/board.h +++ b/platforms/chibios/boards/GENERIC_STM32_L412XB/configs/board.h @@ -15,7 +15,7 @@ */ #pragma once -#include_next "board.h" +#include_next #undef STM32L432xx #define STM32L422xx diff --git a/platforms/chibios/boards/GENERIC_STM32_L433XC/configs/board.h b/platforms/chibios/boards/GENERIC_STM32_L433XC/configs/board.h index 2e37d95fe39a..1075f50cada8 100644 --- a/platforms/chibios/boards/GENERIC_STM32_L433XC/configs/board.h +++ b/platforms/chibios/boards/GENERIC_STM32_L433XC/configs/board.h @@ -15,7 +15,7 @@ */ #pragma once -#include_next "board.h" +#include_next #undef STM32L432xx diff --git a/platforms/chibios/boards/QMK_PM2040/configs/board.h b/platforms/chibios/boards/QMK_PM2040/configs/board.h index 433e1c527fb6..371c1a0dca86 100644 --- a/platforms/chibios/boards/QMK_PM2040/configs/board.h +++ b/platforms/chibios/boards/QMK_PM2040/configs/board.h @@ -3,7 +3,7 @@ #pragma once -#include_next "board.h" +#include_next #undef BOARD_RP_PICO_RP2040 #define BOARD_PM2040 diff --git a/platforms/chibios/boards/QMK_PROTON_C/configs/board.h b/platforms/chibios/boards/QMK_PROTON_C/configs/board.h index 97159964d054..4bca351422ff 100644 --- a/platforms/chibios/boards/QMK_PROTON_C/configs/board.h +++ b/platforms/chibios/boards/QMK_PROTON_C/configs/board.h @@ -15,7 +15,7 @@ */ #pragma once -#include_next "board.h" +#include_next #undef STM32_HSE_BYPASS diff --git a/platforms/chibios/boards/STEMCELL/configs/board.h b/platforms/chibios/boards/STEMCELL/configs/board.h index 39cf79ab0949..33464e7eb8e5 100644 --- a/platforms/chibios/boards/STEMCELL/configs/board.h +++ b/platforms/chibios/boards/STEMCELL/configs/board.h @@ -3,6 +3,6 @@ #pragma once -#include_next "board.h" +#include_next #undef STM32_HSE_BYPASS From 22be5190ab57f91249d1a3b8cab50bbe768370f9 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Thu, 19 Jan 2023 22:30:16 +1100 Subject: [PATCH 086/139] Minor cleanup to breaking/checklist docs. (#19596) Co-authored-by: Ryan --- docs/ChangeLog/20190830.md | 8 ++++---- docs/breaking_changes.md | 29 ++++++++++++++++++++--------- docs/contributing.md | 6 +++--- docs/pr_checklist.md | 27 +++++++++++++++++++++------ 4 files changed, 48 insertions(+), 22 deletions(-) diff --git a/docs/ChangeLog/20190830.md b/docs/ChangeLog/20190830.md index ab6e28c4d90f..298ec958c529 100644 --- a/docs/ChangeLog/20190830.md +++ b/docs/ChangeLog/20190830.md @@ -7,7 +7,7 @@ This document marks the inaugural Breaking Change merge. A list of changes follo ## Core code formatting with clang-format * All core files (`drivers/`, `quantum/`, `tests/`, and `tmk_core/`) have been formatted with clang-format -* A travis process to reformat PR's on merge has been instituted +* A travis process to reformat PRs on merge has been instituted * You can use the new CLI command `qmk cformat` to format before submitting your PR if you wish. ## LUFA USB descriptor cleanup @@ -30,15 +30,15 @@ This document marks the inaugural Breaking Change merge. A list of changes follo ## Backport changes to keymap language files from ZSA fork * Fixes an issue in the `keymap_br_abnt2.h` file that includes the wrong source (`keymap_common.h` instead of `keymap.h`) -* Updates the `keymap_swedish.h` file to be specific to swedish, and not just "nordic" in general. -* Any keymaps using this will need to remove `NO_*` and replace it with `SE_*`. +* Updates the `keymap_swedish.h` file to be specific to swedish, and not just "nordic" in general. +* Any keymaps using this will need to remove `NO_*` and replace it with `SE_*`. ## Update repo to use LUFA as a git submodule * `/lib/LUFA` removed from the repo * LUFA set as a submodule, pointing to qmk/lufa * This should allow more flexibility with LUFA, and allow us to keep the sub-module up to date, a lot more easily. It was ~2 years out of date with no easy path to fix that. This prevents that from being an issue in the future - + ## Migrating `ACTION_BACKLIGHT_*()` entries in `fn_actions` to `BL_` keycodes * `fn_actions` is deprecated, and its functionality has been superseded by direct keycodes and `process_record_user()` diff --git a/docs/breaking_changes.md b/docs/breaking_changes.md index 586e998a1c38..a3f05cbfac69 100644 --- a/docs/breaking_changes.md +++ b/docs/breaking_changes.md @@ -4,7 +4,9 @@ This document describes QMK's Breaking Change process. A Breaking Change is any This also includes any keyboard moves within the repository. -The breaking change period is when we will merge PR's that change QMK in dangerous or unexpected ways. There is a built-in period of testing so we are confident that any problems caused are rare or unable to be predicted. +The breaking change period is when we will merge PRs that change QMK in dangerous or unexpected ways. There is a built-in period of testing so we are confident that any problems caused are rare or unable to be predicted. + +Practically, this means QMK merges the `develop` branch into the `master` branch on a 3-month cadence. ## What has been included in past Breaking Changes? @@ -29,25 +31,34 @@ The next Breaking Change is scheduled for February 26, 2023. ### Important Dates * 2022 Nov 26 - `develop` is tagged with a new release version. Each push to `master` is subsequently merged to `develop` by GitHub actions. -* 2023 Jan 29 - `develop` closed to new PR's. +* 2023 Jan 29 - `develop` closed to new PRs. * 2023 Jan 29 - Call for testers. * 2023 Feb 12 - Last day for merges -- after this point `develop` is locked for testing and accepts only bugfixes -* 2023 Feb 19 - `develop` is locked, only critical bugfix PR's merged. -* 2023 Feb 24 - `master` is locked, no PR's merged. +* 2023 Feb 19 - `develop` is locked, only critical bugfix PRs merged. +* 2023 Feb 24 - `master` is locked, no PRs merged. * 2023 Feb 26 - Merge `develop` to `master`. -* 2023 Feb 26 - `master` is unlocked. PR's can be merged again. +* 2023 Feb 26 - `master` is unlocked. PRs can be merged again. ## What changes will be included? -To see a list of breaking change candidates you can look at the [`breaking_change` label](https://github.com/qmk/qmk_firmware/pulls?q=is%3Aopen+label%3Abreaking_change+is%3Apr). New changes might be added between now and when `develop` is closed, and a PR with that label applied is not guaranteed to be merged. +To see a list of breaking changes merge candidates you can look at the [`core` label](https://github.com/qmk/qmk_firmware/pulls?q=is%3Aopen+label%3Acore+is%3Apr). This label is applied whenever a PR is raised or changed, but only if the PR includes changes to core areas of QMK Firmware. A PR with that label applied is not guaranteed to be merged in the current cycle. New changes might be added between now and when `develop` is closed, and it is generally the responsibility of the submitter to handle conflicts. There is also another label used by QMK Collaborators -- `breaking_change_YYYYqN` -- which signifies to maintainers that it is a strong candidate for inclusion, and should be prioritised for review. + +If you want your breaking change to be included in this round you need to create a PR and have it accepted by QMK Collaborators before `develop` closes. After `develop` closes, new submissions will be deferred to the next breaking changes cycle. -If you want your breaking change to be included in this round you need to create a PR with the `breaking_change` label and have it accepted before `develop` closes. After `develop` closes no new breaking changes will be accepted. +The simpler your PR is, the easier it is for maintainers to review, thus a higher likelihood of a faster merge. Large PRs tend to require a lot of attention, refactoring, and back-and-forth with subsequent reviews -- with other PRs getting merged in the meantime larger unmerged PRs are far more likely to be susceptible to conflicts. Criteria for acceptance: * The PR is complete and ready to merge +* GitHub checks for the PR are green whenever possible + * A "red" check may be disregarded by maintainers if the items flagged are unrelated to the change proposed in the PR + * Modifications to existing files should not need to add license headers to pass lint, for instance. + * If it's not directly related to your PR's functionality, prefer avoiding making a change. + +Strongly suggested: + * The PR has a ChangeLog file describing the changes under `/docs/Changelog/20221126`. - * This should be in Markdown format, with a name in the format `PR12345.md`, substituting the digits for your PR's ID. + * This should be in Markdown format, with a name in the format `PR12345.md`, substituting the digits for your PRs ID. * One strong recommendation that the ChangeLog document matches the PR description on GitHub, so as to ensure traceability. ## Checklists @@ -56,7 +67,7 @@ This section documents various processes we use when running the Breaking Change ### 4 Weeks Before Merge -* `develop` is now closed to new PR's, only fixes for current PR's may be merged +* `develop` is now closed to new PRs, only fixes for current PRs may be merged * Post call for testers: message `@Breaking Changes Updates` on `#qmk_firmware` in Discord: * `@Breaking Changes Updates -- Hey folks, last day for functional PRs to be raised against qmk_firmware for this breaking changes cycle is today.` diff --git a/docs/contributing.md b/docs/contributing.md index 91833e30df8b..bb46add7892b 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -118,8 +118,8 @@ and navigating to `http://localhost:8936/`. Most first-time QMK contributors start with their personal keymaps. We try to keep keymap standards pretty casual (keymaps, after all, reflect the personality of their creators) but we do ask that you follow these guidelines to make it easier for others to discover and learn from your keymap. * Write a `readme.md` using [the template](documentation_templates.md). -* All Keymap PR's are squashed, so if you care about how your commits are squashed you should do it yourself -* Do not lump features in with keymap PR's. Submit the feature first and then a second PR for the keymap. +* All Keymap PRs are squashed, so if you care about how your commits are squashed you should do it yourself +* Do not lump features in with keymap PRs. Submit the feature first and then a second PR for the keymap. * Do not include `Makefile`s in your keymap folder (they're no longer used) * Update copyrights in file headers (look for `%YOUR_NAME%`) @@ -143,7 +143,7 @@ Before you put a lot of work into building your new feature you should make sure * [Chat on Discord](https://discord.gg/Uq7gcHh) * [Open an Issue](https://github.com/qmk/qmk_firmware/issues/new) -Feature and Bug Fix PR's affect all keyboards. We are also in the process of restructuring QMK. For this reason it is especially important for significant changes to be discussed before implementation has happened. If you open a PR without talking to us first please be prepared to do some significant rework if your choices do not mesh well with our planned direction. +Feature and Bug Fix PRs affect all keyboards. We are also in the process of restructuring QMK. For this reason it is especially important for significant changes to be discussed before implementation has happened. If you open a PR without talking to us first please be prepared to do some significant rework if your choices do not mesh well with our planned direction. Here are some things to keep in mind when working on your feature or bug fix. diff --git a/docs/pr_checklist.md b/docs/pr_checklist.md index 922cb19d9c3e..683685bda836 100644 --- a/docs/pr_checklist.md +++ b/docs/pr_checklist.md @@ -9,15 +9,20 @@ If there are any inconsistencies with these recommendations, you're best off [cr - PR should be submitted using a non-`master` branch on the source repository - this does not mean you target a different branch for your PR, rather that you're not working out of your own master branch - if submitter _does_ use their own `master` branch, they'll be given a link to the ["how to git"](newbs_git_using_your_master_branch.md) page after merging -- (end of this document will contain the contents of the message) +- PRs should contain the smallest amount of modifications required for a single change to the codebase + - multiple keyboards at the same time is not acceptable + - exception: keymaps for a single user targeting multiple keyboards and/or userspace is acceptable + - **the smaller the PR, the higher likelihood of a quicker review, higher likelihood of quicker merge, and less chance of conflicts** - newly-added directories and filenames must be lowercase - - this rule may be relaxed if upstream sources originally had uppercase characters (e.g. LUFA, ChibiOS, or imported files from other repositories etc.) + - the lowercase requirement may be relaxed if upstream sources originally had uppercase characters (e.g. LUFA, ChibiOS, or imported files from other repositories etc.) - if there is valid justification (i.e. consistency with existing core files etc.) this can be relaxed - a board designer naming their keyboard with uppercase letters is not enough justification - valid license headers on all `*.c` and `*.h` source files - GPL2/GPL3 recommended for consistency - - an example GPL2+ license header may be copied and modified from the bottom of this document - - other licenses are permitted, however they must be GPL-compatible and must allow for redistribution. Using a different license will almost certainly delay a PR getting merged. + - an example GPL2+ license header may be copied (and author modified) from the bottom of this document + - other licenses are permitted, however they must be GPL-compatible and must allow for redistribution. Using a different license will almost certainly delay a PR getting merged - missing license headers will prevent PR merge due to ambiguity with license compatibility + - simple assignment-only `rules.mk` files should not need a license header - where additional logic is used in an `*.mk` file a license header may be appropriate - QMK Codebase "best practices" followed - this is not an exhaustive list, and will likely get amended as time goes by - `#pragma once` instead of `#ifndef` include guards in header files @@ -31,13 +36,14 @@ If there are any inconsistencies with these recommendations, you're best off [cr - refactor it as a separate core change - remove your specific copy in your board - fix all merge conflicts before opening the PR (in case you need help or advice, reach out to QMK Collaborators on Discord) + - PR submitters will need to keep up-to-date with their base branch, resolving conflicts along the way ## Keymap PRs - `#include QMK_KEYBOARD_H` preferred to including specific board files - prefer layer `enum`s to `#define`s - require custom keycode `enum`s to `#define`s, first entry must have ` = SAFE_RANGE` -- terminating backslash (`\`) in lines of LAYOUT macro parameters is superfluous +- terminating backslash (`\`) in lines of LAYOUT macro parameters is superfluous and should be removed - some care with spacing (e.g., alignment on commas or first char of keycodes) makes for a much nicer-looking keymap ## Keyboard PRs @@ -45,6 +51,9 @@ If there are any inconsistencies with these recommendations, you're best off [cr Closed PRs (for inspiration, previous sets of review comments will help you eliminate ping-pong of your own reviews): https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard +- keyboard moves within the repository *must* go through the `develop` branch instead of `master`, so as to ensure compatibility for users + - `data/mappings/keyboard_aliases.hjson` must be updated to reflect the move, so users with pre-created configurator keymap.json files continue to detect the correct keyboard +- PR submissions from a `kbfirmware` export (or equivalent) will not be accepted unless converted to new QMK standards -- try `qmk import-kbfirmware` first - `info.json` - With the move to [data driven](https://docs.qmk.fm/#/data_driven_config) keyboard configuration, we encourage contributors to utilise as many features as possible of the info.json [schema](https://github.com/qmk/qmk_firmware/blob/master/data/schemas/keyboard.jsonschema). - the mandatory elements for a minimally complete `info.json` at present are: @@ -55,8 +64,11 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard - `layout` definitions should include matrix positions, so that `LAYOUT` macros can be generated at build time - should use standard definitions if applicable - use the Community Layout macro names where they apply (preferred above `LAYOUT`/`LAYOUT_all`) - - use of `LAYOUT_all` is only valid when providing additional layout macros - - providing only `LAYOUT_all` is invalid - especially when implementing the additional layouts within 3rd party tooling + - If the keyboard only has a single electrical/switch layout: + - use `LAYOUT` as your macro name, unless a community layout already exists + - If the keyboard has multiple electrical/switch layouts: + - include a `LAYOUT_all` which specifies all possible layout positions in the electrical matrix + - use alternate layout names for all other possible layouts, preferring community layout names if an equivalent is available (e.g. `LAYOUT_tkl_ansi`, `LAYOUT_ortho_4x4` etc.) - `readme.md` - standard template should be present -- [link to template](https://github.com/qmk/qmk_firmware/blob/master/data/templates/keyboard/readme.md) - flash command is present, and has `:flash` at end @@ -139,6 +151,9 @@ Also, specific to ChibiOS: - for new hardware support such as display panels, core-side matrix implementations, or other peripherals, an associated keymap should be provided - if an existing keymap exists that can leverage this functionality this may not be required (e.g. a new RGB driver chip, supported by the `rgb` keymap) -- consult with the QMK Collaborators on Discord to determine if there is sufficient overlap already - any features adding `_kb`/`_user` callbacks must return a `bool`, to allow for user override of keyboard-level callbacks. +- where relevant, unit tests are strongly recommended -- they boost the confidence level that changes behave correctly + - critical areas of the code -- such as the keycode handling pipeline -- will almost certainly require unit tests accompanying them to ensure current and future correctness + - you should not be surprised if a QMK collaborator requests unit tests to be included in your PR if it's critical functionality - other requirements are at the discretion of QMK collaborators - core is a lot more subjective given the breadth of posted changes From e5b36e2c3f5c269386357c2b4eebdf011bf26dc2 Mon Sep 17 00:00:00 2001 From: leviport Date: Thu, 19 Jan 2023 16:09:11 -0700 Subject: [PATCH 087/139] Docs: typo fixes in platformdev_blackpill_f4x1.md (#19635) --- docs/platformdev_blackpill_f4x1.md | 33 +++++++++++++++--------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/docs/platformdev_blackpill_f4x1.md b/docs/platformdev_blackpill_f4x1.md index f394515b8e79..a8d21c255c7d 100644 --- a/docs/platformdev_blackpill_f4x1.md +++ b/docs/platformdev_blackpill_f4x1.md @@ -2,7 +2,7 @@ This document applies to the F401- and F411-based Blackpills. -The WeAct Blackpill is a popular choice for handwired boards, as it offers a powerful micro controller, USB Type C, a good number of pins to use, and a large amount of firmware space. All for a ~$6 USD price tag. +The WeAct Blackpill is a popular choice for handwired boards, as it offers a powerful micro controller, USB Type C, a good number of pins to use, and a large amount of firmware space. All for a ~$6 USD price tag. * [WeAct GitHub for F4x1 Blackpill](https://github.com/WeActStudio/WeActStudio.MiniSTM32F4x1) * Unfortunately, due to supply issues official WeAct F411 based blackpills may not be available. @@ -12,39 +12,38 @@ The WeAct Blackpill is a popular choice for handwired boards, as it offers a pow ## Pin Usage Limitations -While the Blackpill is a great choice to use in your keyboard, there are a number of caveats in regards to using them. The first is that a number of exposed pins cannot be used, or have special considerations/hardware tweaks that are required for proper opertion. +While the Blackpill is a great choice to use in your keyboard, there are a number of caveats in regards to using them. The first is that a number of exposed pins cannot be used, or have special considerations/hardware tweaks that are required for proper operation. ### Unusable pins -* Pins `A11` and `A12` are not useable because they're used for USB connection, and cannot be shared. +* Pins `A11` and `A12` are not usable because they're used for USB connection, and cannot be shared. * In theory, these pins can be used. However, doing so may disable USB connectivity, outright, if used for anything other than a USB port -* Pin `B2` is used by `BOOT1` and cannot be used, without causing problems. +* Pin `B2` is used by `BOOT1` and cannot be used, without causing problems. * `VBAT` is not a usable pin. * `NRST` is not a usable pin. ### Pins to be avoided -* Pin `A9` is meant for VBUS Sense and should not be used, if it can be avoided. It has an internal pull-down resesitor, which may cause issues with usage. However, a pull-up resistor can work (~5.1k), but should be avoided. -* Pin `A10` can be used, but should be avoided. Any connection on this pin can prevent the bootloader from entering the proper mode for DFU flashing. A pull-up resistor (~22k) on this pin fixes the bootloader issue. +* Pin `A9` is meant for VBUS Sense and should not be used, if it can be avoided. It has an internal pull-down resistor, which may cause issues with usage. However, a pull-up resistor can work (~5.1k), but should be avoided. +* Pin `A10` can be used, but should be avoided. Any connection on this pin can prevent the bootloader from entering the proper mode for DFU flashing. A pull-up resistor (~22k) on this pin fixes the bootloader issue. ### Shared Usage -* Pin `A0` is shared with the User Key (button) on the controller. It can be used. -* Pin `C13` is shared with the onboard LED indicator, and is connected to +3.3V. This can be used, but may cause the LED to blink intermittently, depending on activity on the pin. - * -* Pins `A4`, `A5`, `A6` and `A7` are used by the SOI8 footprint on the back of the controller, that can be used for either an SPI Flash chip, or an SPI EEPROM chip. `A4` is the Chip Select pin, and cannot be shared. However, `A5`, `A6`, and `A7` are the `SCK`, `MISO`, and `MOSI` pins, respectively, and can be shared with other SPI devices. +* Pin `A0` is shared with the User Key (button) on the controller. It can be used. +* Pin `C13` is shared with the onboard LED indicator, and is connected to +3.3V. This can be used, but may cause the LED to blink intermittently, depending on activity on the pin. +* Pins `A4`, `A5`, `A6` and `A7` are used by the SOI8 footprint on the back of the controller, that can be used for either an SPI Flash chip, or an SPI EEPROM chip. `A4` is the Chip Select pin, and cannot be shared. However, `A5`, `A6`, and `A7` are the `SCK`, `MISO`, and `MOSI` pins, respectively, and can be shared with other SPI devices. ### Limited Usage -* Pins `C13`, `C14`, and `C15` have limits on output current. They should be used only as input. Eg, they should not be used for row pins in COL2ROW matrix configurations, but can be used as column pins. - * This is because the column pins (in COL2ROW) are pulled up (the pullup strength is independant of the current sourcing limitation) and the ROW is driven low and sinks current, then we check the state of the COLs to look for keypresses. +* Pins `C13`, `C14`, and `C15` have limits on output current. They should be used only as input, e.g., they should not be used for row pins in COL2ROW matrix configurations, but can be used as column pins. + * This is because the column pins (in COL2ROW) are pulled up (the pull-up strength is independent of the current sourcing limitation) and the ROW is driven low and sinks current, then we check the state of the COLs to look for keypresses. -* Pins `A0` and `B5` are not 5V tolerant, and should only be used with 3.3V compatible functionality. +* Pins `A0` and `B5` are not 5V tolerant, and should only be used with 3.3V compatible functionality. ## Additional Information -### Bootloader issuse +### Bootloader issues -Due to the use of a 25MHz crystal, the controller may have issues entering the bootloader. Heating up the controller can help with this issue. +Due to the use of a 25MHz crystal, the controller may have issues entering the bootloader. Heating up the controller can help with this issue. -Also, if pin `A10` is connected to anything at all, it needs to have a pullup resistor (see [Pins to be avoided](#pins-to-be-avoided), above) +Also, if pin `A10` is connected to anything at all, it needs to have a pull-up resistor (see [Pins to be avoided](#pins-to-be-avoided), above) ### Tiny UF2 Support -There is [tinyuf2 support for the WeAct Blackpill](https://github.com/adafruit/tinyuf2/tree/master/ports/stm32f4/boards/stm32f411ce_blackpill). Instructions on how to compile the bootloadr can be found [here](https://github.com/adafruit/tinyuf2#build-and-flash). Setting `BOOTLOADER = tinyuf2` will enable support for this user bootloader, and the correct configuration to prevent it from being overwritten when flashing firmware. +There is [tinyuf2 support for the WeAct Blackpill](https://github.com/adafruit/tinyuf2/tree/master/ports/stm32f4/boards/stm32f411ce_blackpill). Instructions on how to compile the bootloader can be found [here](https://github.com/adafruit/tinyuf2#build-and-flash). Setting `BOOTLOADER = tinyuf2` will enable support for this user bootloader, and the correct configuration to prevent it from being overwritten when flashing firmware. From 891780b17f0dcf86624cadc18fb0fbeb2ee418d8 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Fri, 20 Jan 2023 01:59:46 +0000 Subject: [PATCH 088/139] Refactor some layouts which contain keyboard name (#19642) --- keyboards/linworks/em8/info.json | 9 +++++++-- keyboards/linworks/em8/keymaps/default/keymap.c | 8 ++++---- keyboards/linworks/em8/keymaps/via/keymap.c | 8 ++++---- keyboards/owlab/spring/info.json | 5 ++++- keyboards/owlab/spring/keymaps/default/keymap.c | 4 ++-- keyboards/owlab/spring/keymaps/via/keymap.c | 8 ++++---- keyboards/owlab/spring/spring.h | 2 +- keyboards/reviung/reviung33/info.json | 5 ++++- keyboards/reviung/reviung33/keymaps/default/keymap.c | 8 ++++---- keyboards/reviung/reviung33/keymaps/default_jp/keymap.c | 8 ++++---- keyboards/reviung/reviung33/reviung33.h | 2 +- keyboards/reviung/reviung39/info.json | 5 ++++- keyboards/reviung/reviung39/keymaps/default/keymap.c | 8 ++++---- keyboards/reviung/reviung39/keymaps/default_s/keymap.c | 8 ++++---- keyboards/reviung/reviung39/keymaps/via/keymap.c | 8 ++++---- keyboards/reviung/reviung39/reviung39.h | 2 +- keyboards/reviung/reviung41/info.json | 5 ++++- keyboards/reviung/reviung41/keymaps/default/keymap.c | 8 ++++---- keyboards/reviung/reviung41/keymaps/via/keymap.c | 8 ++++---- keyboards/reviung/reviung41/reviung41.h | 2 +- keyboards/reviung/reviung5/info.json | 5 ++++- keyboards/reviung/reviung5/keymaps/default/keymap.c | 4 ++-- keyboards/reviung/reviung5/keymaps/default_lre/keymap.c | 4 ++-- keyboards/reviung/reviung5/keymaps/default_rre/keymap.c | 4 ++-- keyboards/reviung/reviung5/reviung5.h | 2 +- keyboards/reviung/reviung53/info.json | 5 ++++- keyboards/reviung/reviung53/keymaps/default/keymap.c | 8 ++++---- keyboards/reviung/reviung53/keymaps/via/keymap.c | 8 ++++---- keyboards/reviung/reviung53/reviung53.h | 2 +- keyboards/sneakbox/ava/ava.h | 6 ++---- keyboards/sneakbox/ava/info.json | 9 +++++---- keyboards/sneakbox/ava/keymaps/default/keymap.c | 4 ++-- keyboards/sneakbox/ava/keymaps/via/keymap.c | 8 ++++---- 33 files changed, 106 insertions(+), 84 deletions(-) diff --git a/keyboards/linworks/em8/info.json b/keyboards/linworks/em8/info.json index e4d58708e519..2743270970fa 100644 --- a/keyboards/linworks/em8/info.json +++ b/keyboards/linworks/em8/info.json @@ -29,8 +29,13 @@ "scroll_lock": "D5", "on_state": 0 }, + "layout_aliases": { + "LAYOUT_all": "LAYOUT_split_bs", + "LAYOUT_em8_all": "LAYOUT_split_bs", + "LAYOUT_em8_2u_backsp": "LAYOUT" + }, "layouts": { - "LAYOUT_em8_2u_backsp": { + "LAYOUT": { "layout": [ {"x":0, "y":0, "matrix":[1,0] }, {"x":1.25, "y":0, "matrix":[0,0] }, @@ -108,7 +113,7 @@ ] }, - "LAYOUT_em8_all": { + "LAYOUT_split_bs": { "layout": [ {"x":0, "y":0, "matrix":[1,0] }, {"x":1.25, "y":0, "matrix":[0,0] }, diff --git a/keyboards/linworks/em8/keymaps/default/keymap.c b/keyboards/linworks/em8/keymaps/default/keymap.c index f195907db908..a3c37271a452 100644 --- a/keyboards/linworks/em8/keymaps/default/keymap.c +++ b/keyboards/linworks/em8/keymaps/default/keymap.c @@ -18,7 +18,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_em8_all( + [0] = LAYOUT_split_bs( KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, @@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT_em8_all( + [1] = LAYOUT_split_bs( KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT ), - [2] = LAYOUT_em8_all( + [2] = LAYOUT_split_bs( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - [3] = LAYOUT_em8_all( + [3] = LAYOUT_split_bs( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/linworks/em8/keymaps/via/keymap.c b/keyboards/linworks/em8/keymaps/via/keymap.c index f195907db908..a12e6b3dec35 100644 --- a/keyboards/linworks/em8/keymaps/via/keymap.c +++ b/keyboards/linworks/em8/keymaps/via/keymap.c @@ -18,7 +18,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_em8_all( + [0] = LAYOUT_all( KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, @@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT_em8_all( + [1] = LAYOUT_all( KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT ), - [2] = LAYOUT_em8_all( + [2] = LAYOUT_all( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - [3] = LAYOUT_em8_all( + [3] = LAYOUT_all( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/owlab/spring/info.json b/keyboards/owlab/spring/info.json index 2664c4ba3c9d..e5d57b3f75da 100644 --- a/keyboards/owlab/spring/info.json +++ b/keyboards/owlab/spring/info.json @@ -8,8 +8,11 @@ "pid": "0x5350", "device_version": "0.0.1" }, + "layout_aliases": { + "LAYOUT_spring": "LAYOUT" + }, "layouts": { - "LAYOUT_spring": { + "LAYOUT": { "layout": [ {"x":0.5, "y":0}, {"x":1.75, "y":0}, diff --git a/keyboards/owlab/spring/keymaps/default/keymap.c b/keyboards/owlab/spring/keymaps/default/keymap.c index a04f77a260db..932e8c5e9264 100644 --- a/keyboards/owlab/spring/keymaps/default/keymap.c +++ b/keyboards/owlab/spring/keymaps/default/keymap.c @@ -19,7 +19,7 @@ along with this program. If not, see . const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_spring( + [0] = LAYOUT( KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, @@ -27,7 +27,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT_spring( + [1] = LAYOUT( KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, QK_BOOT, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_TRNS, diff --git a/keyboards/owlab/spring/keymaps/via/keymap.c b/keyboards/owlab/spring/keymaps/via/keymap.c index 6e6e25e94abd..5ffdc492d01d 100644 --- a/keyboards/owlab/spring/keymaps/via/keymap.c +++ b/keyboards/owlab/spring/keymaps/via/keymap.c @@ -19,7 +19,7 @@ along with this program. If not, see . const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_spring( + [0] = LAYOUT( KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, @@ -27,7 +27,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT_spring( + [1] = LAYOUT( KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, QK_BOOT, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_TRNS, @@ -35,7 +35,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - [2] = LAYOUT_spring( + [2] = LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -43,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - [3] = LAYOUT_spring( + [3] = LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/owlab/spring/spring.h b/keyboards/owlab/spring/spring.h index 195d8cd4c897..24dc4e776214 100644 --- a/keyboards/owlab/spring/spring.h +++ b/keyboards/owlab/spring/spring.h @@ -18,7 +18,7 @@ along with this program. If not, see . #pragma once #include "quantum.h" -#define LAYOUT_spring( \ +#define LAYOUT( \ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \ diff --git a/keyboards/reviung/reviung33/info.json b/keyboards/reviung/reviung33/info.json index f5d83a1363f8..af7584eee07a 100644 --- a/keyboards/reviung/reviung33/info.json +++ b/keyboards/reviung/reviung33/info.json @@ -8,8 +8,11 @@ "pid": "0x516D", "device_version": "0.0.1" }, + "layout_aliases": { + "LAYOUT_reviung33": "LAYOUT" + }, "layouts": { - "LAYOUT_reviung33": { + "LAYOUT": { "layout": [ {"x":0, "y":0}, {"x":1, "y":0}, diff --git a/keyboards/reviung/reviung33/keymaps/default/keymap.c b/keyboards/reviung/reviung33/keymaps/default/keymap.c index 858d3f6ee35d..1bd46954721f 100644 --- a/keyboards/reviung/reviung33/keymaps/default/keymap.c +++ b/keyboards/reviung/reviung33/keymaps/default/keymap.c @@ -36,28 +36,28 @@ enum layer_names { #define BS_RA LT(RAISE, KC_BSPC) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_reviung33( + [_BASE] = LAYOUT( CT_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, SF_Z, AL_X, KC_C, KC_V, KC_B, KC_N, KC_M, CT_CM, AL_DT, SF_SS, TB_LO, KC_SPC, BS_RA ), - [_LOWER] = LAYOUT_reviung33( + [_LOWER] = LAYOUT( KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_SCLN, KC_LSFT, KC_ESC, KC_LGUI, KC_LALT, KC_QUOT, KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_RSFT, _______, _______, _______ ), - [_RAISE] = LAYOUT_reviung33( + [_RAISE] = LAYOUT( KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, XXXXXXX, XXXXXXX, KC_GRV, KC_TILD, KC_COLN, KC_LSFT, KC_ESC, KC_RGUI, KC_LALT, KC_DQUO, KC_TAB, KC_RALT, KC_RCTL, KC_RALT, KC_RSFT, _______, KC_DEL, _______ ), - [_ADJUST] = LAYOUT_reviung33( + [_ADJUST] = LAYOUT( RGB_VAI, RGB_SAI, RGB_HUI, RGB_MOD, RGB_TOG, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, RGB_VAD, RGB_SAD, RGB_HUD, RGB_RMOD,XXXXXXX, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, KC_F11, KC_F12, KC_CAPS, XXXXXXX, KC_PSCR, diff --git a/keyboards/reviung/reviung33/keymaps/default_jp/keymap.c b/keyboards/reviung/reviung33/keymaps/default_jp/keymap.c index e50139f682d2..6b18f8023254 100644 --- a/keyboards/reviung/reviung33/keymaps/default_jp/keymap.c +++ b/keyboards/reviung/reviung33/keymaps/default_jp/keymap.c @@ -36,28 +36,28 @@ enum layer_names { #define BS_RA LT(RAISE, KC_BSPC) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_reviung33( + [_BASE] = LAYOUT( CT_Q, JP_W, JP_E, JP_R, JP_T, JP_Y, JP_U, JP_I, JP_O, JP_P, JP_A, JP_S, JP_D, JP_F, JP_G, JP_H, JP_J, JP_K, JP_L, KC_ENT, SF_Z, AL_X, JP_C, JP_V, JP_B, JP_N, JP_M, CT_CM, AL_DT, SF_SS, TB_LO, KC_SPC, BS_RA ), - [_LOWER] = LAYOUT_reviung33( + [_LOWER] = LAYOUT( JP_EXLM, JP_AT, JP_HASH, JP_DLR, JP_PERC, JP_CIRC, JP_AMPR, JP_ASTR, JP_LPRN, JP_RPRN, JP_UNDS, JP_PLUS, JP_LCBR, JP_RCBR, JP_PIPE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, JP_SCLN, KC_LSFT, KC_ESC, KC_LGUI, KC_LALT, JP_QUOT, KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_RSFT, _______, _______, _______ ), - [_RAISE] = LAYOUT_reviung33( + [_RAISE] = LAYOUT( JP_1, JP_2, JP_3, JP_4, JP_5, JP_6, JP_7, JP_8, JP_9, JP_0, JP_MINS, JP_EQL, JP_LBRC, JP_RBRC, JP_YEN, JP_BSLS, XXXXXXX, JP_GRV, JP_TILD, JP_COLN, KC_LSFT, KC_ESC, KC_RGUI, KC_LALT, JP_DQUO, KC_TAB, XXXXXXX, KC_RCTL, KC_RALT, KC_RSFT, _______, KC_DEL, _______ ), - [_ADJUST] = LAYOUT_reviung33( + [_ADJUST] = LAYOUT( RGB_VAI, RGB_SAI, RGB_HUI, RGB_MOD, RGB_TOG, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, RGB_VAD, RGB_SAD, RGB_HUD, RGB_RMOD,XXXXXXX, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, KC_F11, KC_F12, KC_CAPS, XXXXXXX, KC_PSCR, diff --git a/keyboards/reviung/reviung33/reviung33.h b/keyboards/reviung/reviung33/reviung33.h index ea72a4aadb4a..3f054eaa797a 100644 --- a/keyboards/reviung/reviung33/reviung33.h +++ b/keyboards/reviung/reviung33/reviung33.h @@ -26,7 +26,7 @@ * The second converts the arguments into a two-dimensional array which * represents the switch matrix. */ -#define LAYOUT_reviung33( \ +#define LAYOUT( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ diff --git a/keyboards/reviung/reviung39/info.json b/keyboards/reviung/reviung39/info.json index 3602d0c2c3c4..1bd626f20284 100644 --- a/keyboards/reviung/reviung39/info.json +++ b/keyboards/reviung/reviung39/info.json @@ -8,8 +8,11 @@ "pid": "0x5F10", "device_version": "0.0.1" }, + "layout_aliases": { + "LAYOUT_reviung39": "LAYOUT" + }, "layouts": { - "LAYOUT_reviung39": { + "LAYOUT": { "layout": [ {"label":"K00", "x":0, "y":0.54}, {"label":"K01", "x":1, "y":0.36}, diff --git a/keyboards/reviung/reviung39/keymaps/default/keymap.c b/keyboards/reviung/reviung39/keymaps/default/keymap.c index ba82e933dc23..0de5eb8a047c 100644 --- a/keyboards/reviung/reviung39/keymaps/default/keymap.c +++ b/keyboards/reviung/reviung39/keymaps/default/keymap.c @@ -27,28 +27,28 @@ enum layer_names { #define ADJUST MO(_ADJUST) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_reviung39( + [_BASE] = 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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_ENT), LOWER, KC_SPC, RAISE ), - [_LOWER] = LAYOUT_reviung39( + [_LOWER] = LAYOUT( _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_GRV, KC_TILD, _______, KC_ESC, KC_LGUI, KC_LALT, KC_CAPS, KC_DQUO, KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_PSCR, RSFT_T(KC_SPC), _______, KC_ENT, _______ ), - [_RAISE] = LAYOUT_reviung39( + [_RAISE] = LAYOUT( _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, KC_ESC, KC_RGUI, KC_RALT, KC_CAPS, KC_QUOT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_BSPC, _______ ), - [_ADJUST] = LAYOUT_reviung39( + [_ADJUST] = LAYOUT( RGB_VAI, RGB_SAI, RGB_HUI, RGB_MOD, XXXXXXX, RGB_TOG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_SAD, RGB_HUD, RGB_RMOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/keyboards/reviung/reviung39/keymaps/default_s/keymap.c b/keyboards/reviung/reviung39/keymaps/default_s/keymap.c index d1423b9a1944..4d956940d4fe 100644 --- a/keyboards/reviung/reviung39/keymaps/default_s/keymap.c +++ b/keyboards/reviung/reviung39/keymaps/default_s/keymap.c @@ -27,28 +27,28 @@ enum layer_names { #define ADJUST MO(_ADJUST) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_reviung39( + [_BASE] = 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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_ENT), LOWER, KC_SPC, RAISE ), - [_LOWER] = LAYOUT_reviung39( + [_LOWER] = LAYOUT( _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_GRV, KC_TILD, _______, KC_ESC, KC_LGUI, KC_LALT, KC_CAPS, KC_DQUO, KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_PSCR, RSFT_T(KC_SPC), _______, KC_ENT, _______ ), - [_RAISE] = LAYOUT_reviung39( + [_RAISE] = LAYOUT( _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, KC_ESC, KC_RGUI, KC_RALT, KC_CAPS, KC_QUOT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_BSPC, _______ ), - [_ADJUST] = LAYOUT_reviung39( + [_ADJUST] = LAYOUT( RGB_VAI, RGB_SAI, RGB_HUI, RGB_MOD, XXXXXXX, RGB_TOG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_SAD, RGB_HUD, RGB_RMOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/keyboards/reviung/reviung39/keymaps/via/keymap.c b/keyboards/reviung/reviung39/keymaps/via/keymap.c index 7915452427db..2ec7b53d2142 100644 --- a/keyboards/reviung/reviung39/keymaps/via/keymap.c +++ b/keyboards/reviung/reviung39/keymaps/via/keymap.c @@ -23,28 +23,28 @@ enum layer_names { }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_reviung39( + [_BASE] = 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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_ENT), FN_MO13, KC_SPC, FN_MO23 ), - [_LOWER] = LAYOUT_reviung39( + [_LOWER] = LAYOUT( _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_GRV, KC_TILD, _______, KC_ESC, KC_LGUI, KC_LALT, KC_CAPS, KC_DQUO, KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_PSCR, RSFT_T(KC_SPC), _______, KC_ENT, _______ ), - [_RAISE] = LAYOUT_reviung39( + [_RAISE] = LAYOUT( _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, KC_ESC, KC_RGUI, KC_RALT, KC_CAPS, KC_QUOT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_BSPC, _______ ), - [_ADJUST] = LAYOUT_reviung39( + [_ADJUST] = LAYOUT( RGB_VAI, RGB_SAI, RGB_HUI, RGB_MOD, XXXXXXX, RGB_TOG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_SAD, RGB_HUD, RGB_RMOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/keyboards/reviung/reviung39/reviung39.h b/keyboards/reviung/reviung39/reviung39.h index 89776c5aa274..131562450711 100644 --- a/keyboards/reviung/reviung39/reviung39.h +++ b/keyboards/reviung/reviung39/reviung39.h @@ -25,7 +25,7 @@ * The second converts the arguments into a two-dimensional array which * represents the switch matrix. */ -#define LAYOUT_reviung39( \ +#define LAYOUT( \ K00, K01, K02, K03, K04, K05, K30, K31, K32, K33, K34, K35, \ K10, K11, K12, K13, K14, K15, K40, K41, K42, K43, K44, K45, \ K20, K21, K22, K23, K24, K25, K50, K51, K52, K53, K54, K55, \ diff --git a/keyboards/reviung/reviung41/info.json b/keyboards/reviung/reviung41/info.json index 62c430b738b0..6ee7b0c108b2 100644 --- a/keyboards/reviung/reviung41/info.json +++ b/keyboards/reviung/reviung41/info.json @@ -8,8 +8,11 @@ "pid": "0xDCCB", "device_version": "0.0.1" }, + "layout_aliases": { + "LAYOUT_reviung41": "LAYOUT" + }, "layouts": { - "LAYOUT_reviung41": { + "LAYOUT": { "layout": [ {"label":"K00", "x":0, "y":0.54}, {"label":"K01", "x":1, "y":0.36}, diff --git a/keyboards/reviung/reviung41/keymaps/default/keymap.c b/keyboards/reviung/reviung41/keymaps/default/keymap.c index 749eac569370..664560b75a74 100644 --- a/keyboards/reviung/reviung41/keymaps/default/keymap.c +++ b/keyboards/reviung/reviung41/keymaps/default/keymap.c @@ -27,28 +27,28 @@ enum layer_names { #define ADJUST MO(_ADJUST) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_reviung41( + [_BASE] = 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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_ENT), KC_LALT, LOWER, KC_SPC, RAISE, KC_RGUI ), - [_LOWER] = LAYOUT_reviung41( + [_LOWER] = LAYOUT( _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_GRV, KC_TILD, _______, KC_ESC, KC_LGUI, KC_LALT, KC_CAPS, KC_DQUO, KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_PSCR, RSFT_T(KC_SPC), _______, _______, KC_ENT, _______, _______ ), - [_RAISE] = LAYOUT_reviung41( + [_RAISE] = LAYOUT( _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, KC_ESC, KC_RGUI, KC_RALT, KC_CAPS, KC_QUOT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_BSPC, _______, _______ ), - [_ADJUST] = LAYOUT_reviung41( + [_ADJUST] = LAYOUT( RGB_VAI, RGB_SAI, RGB_HUI, RGB_MOD, XXXXXXX, RGB_TOG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_SAD, RGB_HUD, RGB_RMOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/keyboards/reviung/reviung41/keymaps/via/keymap.c b/keyboards/reviung/reviung41/keymaps/via/keymap.c index aceddfcc6b3f..ec5a87fc60a9 100644 --- a/keyboards/reviung/reviung41/keymaps/via/keymap.c +++ b/keyboards/reviung/reviung41/keymaps/via/keymap.c @@ -23,28 +23,28 @@ enum layer_names { }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_reviung41( + [_BASE] = 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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_ENT), KC_LGUI, MO(1), KC_SPC, MO(2), LT(3, KC_RALT) ), - [_LOWER] = LAYOUT_reviung41( + [_LOWER] = LAYOUT( _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_GRV, KC_TILD, _______, KC_ESC, KC_LGUI, KC_LALT, KC_CAPS, KC_DQUO, KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_PSCR, RSFT_T(KC_SPC), _______, _______, KC_ENT, _______, _______ ), - [_RAISE] = LAYOUT_reviung41( + [_RAISE] = LAYOUT( _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, KC_ESC, KC_RGUI, KC_RALT, KC_CAPS, KC_QUOT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_BSPC, _______, _______ ), - [_ADJUST] = LAYOUT_reviung41( + [_ADJUST] = LAYOUT( RGB_VAI, RGB_SAI, RGB_HUI, RGB_MOD, XXXXXXX, RGB_TOG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_SAD, RGB_HUD, RGB_RMOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/keyboards/reviung/reviung41/reviung41.h b/keyboards/reviung/reviung41/reviung41.h index 6bc80e8b2135..a1b7f14a0a91 100644 --- a/keyboards/reviung/reviung41/reviung41.h +++ b/keyboards/reviung/reviung41/reviung41.h @@ -25,7 +25,7 @@ * The second converts the arguments into a two-dimensional array which * represents the switch matrix. */ -#define LAYOUT_reviung41( \ +#define LAYOUT( \ K00, K01, K02, K03, K04, K05, K30, K31, K32, K33, K34, K35, \ K10, K11, K12, K13, K14, K15, K40, K41, K42, K43, K44, K45, \ K20, K21, K22, K23, K24, K25, K50, K51, K52, K53, K54, K55, \ diff --git a/keyboards/reviung/reviung5/info.json b/keyboards/reviung/reviung5/info.json index 12320d7774d2..d804be4a8697 100644 --- a/keyboards/reviung/reviung5/info.json +++ b/keyboards/reviung/reviung5/info.json @@ -8,8 +8,11 @@ "pid": "0x4F0D", "device_version": "0.0.1" }, + "layout_aliases": { + "LAYOUT_reviung5": "LAYOUT" + }, "layouts": { - "LAYOUT_reviung5": { + "LAYOUT": { "layout": [ {"label": "k00", "x": 0, "y": 0}, {"label": "k01", "x": 1, "y": 0.25}, diff --git a/keyboards/reviung/reviung5/keymaps/default/keymap.c b/keyboards/reviung/reviung5/keymaps/default/keymap.c index 39f6669a5267..9372ba20b508 100644 --- a/keyboards/reviung/reviung5/keymaps/default/keymap.c +++ b/keyboards/reviung/reviung5/keymaps/default/keymap.c @@ -25,10 +25,10 @@ enum layer_names { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ - [_BASE] = LAYOUT_reviung5( + [_BASE] = LAYOUT( LO_VD, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLU ), - [_LOWER] = LAYOUT_reviung5( + [_LOWER] = LAYOUT( _______, RGB_HUI, RGB_MOD, RGB_TOG, KC_MUTE ) }; diff --git a/keyboards/reviung/reviung5/keymaps/default_lre/keymap.c b/keyboards/reviung/reviung5/keymaps/default_lre/keymap.c index 2e732e72fe48..1d4b07c645ff 100644 --- a/keyboards/reviung/reviung5/keymaps/default_lre/keymap.c +++ b/keyboards/reviung/reviung5/keymaps/default_lre/keymap.c @@ -23,10 +23,10 @@ enum layer_names { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ - [_BASE] = LAYOUT_reviung5( + [_BASE] = LAYOUT( TG(_LOWER), KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE ), - [_LOWER] = LAYOUT_reviung5( + [_LOWER] = LAYOUT( _______, LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), RGB_TOG ) }; diff --git a/keyboards/reviung/reviung5/keymaps/default_rre/keymap.c b/keyboards/reviung/reviung5/keymaps/default_rre/keymap.c index 9ee41cb7e906..99880d524e8a 100644 --- a/keyboards/reviung/reviung5/keymaps/default_rre/keymap.c +++ b/keyboards/reviung/reviung5/keymaps/default_rre/keymap.c @@ -23,10 +23,10 @@ enum layer_names { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ - [_BASE] = LAYOUT_reviung5( + [_BASE] = LAYOUT( KC_MUTE, KC_MPRV, KC_MPLY, KC_MNXT, TG(_LOWER) ), - [_LOWER] = LAYOUT_reviung5( + [_LOWER] = LAYOUT( RGB_TOG, LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), _______ ) }; diff --git a/keyboards/reviung/reviung5/reviung5.h b/keyboards/reviung/reviung5/reviung5.h index f5d952ba943f..f58f755800dc 100644 --- a/keyboards/reviung/reviung5/reviung5.h +++ b/keyboards/reviung/reviung5/reviung5.h @@ -26,7 +26,7 @@ * The second converts the arguments into a two-dimensional array which * represents the switch matrix. */ -#define LAYOUT_reviung5( \ +#define LAYOUT( \ K00, K01, K02, K03, K04 \ ) { \ { K00, K01, K02, K03, K04 } \ diff --git a/keyboards/reviung/reviung53/info.json b/keyboards/reviung/reviung53/info.json index 900171932458..c8cec6578e33 100644 --- a/keyboards/reviung/reviung53/info.json +++ b/keyboards/reviung/reviung53/info.json @@ -8,8 +8,11 @@ "pid": "0x4E09", "device_version": "0.0.1" }, + "layout_aliases": { + "LAYOUT_reviung53": "LAYOUT" + }, "layouts": { - "LAYOUT_reviung53": { + "LAYOUT": { "layout": [ {"label": "k02", "x":2.25, "y":0}, {"label": "k03", "x":3.5, "y":0}, diff --git a/keyboards/reviung/reviung53/keymaps/default/keymap.c b/keyboards/reviung/reviung53/keymaps/default/keymap.c index 4764cbd2748e..7ada6e769e67 100644 --- a/keyboards/reviung/reviung53/keymaps/default/keymap.c +++ b/keyboards/reviung/reviung53/keymaps/default/keymap.c @@ -20,28 +20,28 @@ enum layer_names { #define SP_RA LT(RAISE, KC_SPC) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_reviung53( + [_BASE] = LAYOUT( KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_DEL, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, SF_SS, KC_LCTL, KC_LGUI, KC_LALT, SP_LO, SP_RA, KC_LALT, KC_RGUI, KC_RCTL ), - [_LOWER] = LAYOUT_reviung53( + [_LOWER] = LAYOUT( QK_GESC, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_PAUS, KC_SCRL, KC_PSCR, _______, _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, KC_QUOT, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_SLSH, _______, _______, _______, _______, _______, _______, _______, _______ ), - [_RAISE] = LAYOUT_reviung53( + [_RAISE] = LAYOUT( KC_TILD, KC_F9, KC_F10, KC_F11, KC_F12, KC_MUTE, KC_VOLU, KC_VOLD, KC_MPLY, _______, _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_DQUO, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_QUES, _______, _______, _______, _______, _______, _______, _______, _______ ), - [_ADJUST] = LAYOUT_reviung53( + [_ADJUST] = LAYOUT( XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, RGB_VAI, RGB_SAI, RGB_HUI, RGB_MOD, XXXXXXX, RGB_TOG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_SAD, RGB_HUD, RGB_RMOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/keyboards/reviung/reviung53/keymaps/via/keymap.c b/keyboards/reviung/reviung53/keymaps/via/keymap.c index 4764cbd2748e..7ada6e769e67 100644 --- a/keyboards/reviung/reviung53/keymaps/via/keymap.c +++ b/keyboards/reviung/reviung53/keymaps/via/keymap.c @@ -20,28 +20,28 @@ enum layer_names { #define SP_RA LT(RAISE, KC_SPC) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_reviung53( + [_BASE] = LAYOUT( KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_DEL, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, SF_SS, KC_LCTL, KC_LGUI, KC_LALT, SP_LO, SP_RA, KC_LALT, KC_RGUI, KC_RCTL ), - [_LOWER] = LAYOUT_reviung53( + [_LOWER] = LAYOUT( QK_GESC, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_PAUS, KC_SCRL, KC_PSCR, _______, _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, KC_QUOT, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_SLSH, _______, _______, _______, _______, _______, _______, _______, _______ ), - [_RAISE] = LAYOUT_reviung53( + [_RAISE] = LAYOUT( KC_TILD, KC_F9, KC_F10, KC_F11, KC_F12, KC_MUTE, KC_VOLU, KC_VOLD, KC_MPLY, _______, _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_DQUO, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_QUES, _______, _______, _______, _______, _______, _______, _______, _______ ), - [_ADJUST] = LAYOUT_reviung53( + [_ADJUST] = LAYOUT( XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, RGB_VAI, RGB_SAI, RGB_HUI, RGB_MOD, XXXXXXX, RGB_TOG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_SAD, RGB_HUD, RGB_RMOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/keyboards/reviung/reviung53/reviung53.h b/keyboards/reviung/reviung53/reviung53.h index 89ebc45c1863..23ae04500fc9 100644 --- a/keyboards/reviung/reviung53/reviung53.h +++ b/keyboards/reviung/reviung53/reviung53.h @@ -13,7 +13,7 @@ * The second converts the arguments into a two-dimensional array which * represents the switch matrix. */ -#define LAYOUT_reviung53( \ +#define LAYOUT( \ K02, K03, K04, K05, K06, K07, K40, K41, K42, K43, \ K10, K11, K12, K13, K14, K15, K16, K17, K44, K45, K46, K47, \ K20, K21, K22, K23, K24, K25, K26, K27, K50, K51, K52, K53, \ diff --git a/keyboards/sneakbox/ava/ava.h b/keyboards/sneakbox/ava/ava.h index 474081e97371..f3aae119d02b 100644 --- a/keyboards/sneakbox/ava/ava.h +++ b/keyboards/sneakbox/ava/ava.h @@ -19,9 +19,7 @@ along with this program. If not, see . #include "quantum.h" -#define LAYOUT_all LAYOUT_ava_split_bs - -#define LAYOUT_ava_split_bs( \ +#define LAYOUT_alice_split_bs( \ K020, K000, K001, K002, K003, K004, K005, K006, K010, K011, K012, K013, K014, K015, K016, K017, \ K040, K021, K022, K023, K024, K025, K026, K030, K031, K032, K033, K034, K035, K036, K037, \ K060, K041, K042, K043, K044, K045, K046, K050, K051, K052, K053, K054, K055, K056, \ @@ -39,7 +37,7 @@ along with this program. If not, see . { KC_NO, K081, KC_NO, K083, KC_NO, K085, K086, K087 } \ } -#define LAYOUT_ava( \ +#define LAYOUT_alice( \ K020, K000, K001, K002, K003, K004, K005, K006, K010, K011, K012, K013, K014, K015, K017, \ K040, K021, K022, K023, K024, K025, K026, K030, K031, K032, K033, K034, K035, K036, K037, \ K060, K041, K042, K043, K044, K045, K046, K050, K051, K052, K053, K054, K055, K056, \ diff --git a/keyboards/sneakbox/ava/info.json b/keyboards/sneakbox/ava/info.json index dc3124187421..d745639a628b 100644 --- a/keyboards/sneakbox/ava/info.json +++ b/keyboards/sneakbox/ava/info.json @@ -9,11 +9,12 @@ "device_version": "0.0.1" }, "layout_aliases": { - "LAYOUT_alice_split_bs": "LAYOUT_ava_split_bs", - "LAYOUT_alice": "LAYOUT_ava" + "LAYOUT_all": "LAYOUT_alice_split_bs", + "LAYOUT_ava_split_bs": "LAYOUT_alice_split_bs", + "LAYOUT_ava": "LAYOUT_alice" }, "layouts": { - "LAYOUT_ava_split_bs": { + "LAYOUT_alice_split_bs": { "layout": [ {"x":0, "y":0}, {"x":1.25, "y":0}, {"x":2.25, "y":0}, {"x":3.25, "y":0}, {"x":4.25, "y":0}, {"x":5.25, "y":0}, {"x":6.25, "y":0}, {"x":7.25, "y":0}, {"x":10.25, "y":0}, {"x":11.25, "y":0}, {"x":12.25, "y":0}, {"x":13.25, "y":0}, {"x":14.25, "y":0}, {"x":15.25, "y":0}, {"x":16.25, "y":0}, {"x":17.25, "y":0}, {"x":0, "y":1}, {"x":1.25, "y":1, "w":1.5}, {"x":2.75, "y":1}, {"x":3.75, "y":1}, {"x":4.75, "y":1}, {"x":5.75, "y":1}, {"x":6.75, "y":1}, {"x":9.75, "y":1}, {"x":10.75, "y":1}, {"x":11.75, "y":1}, {"x":12.75, "y":1}, {"x":13.75, "y":1}, {"x":14.75, "y":1}, {"x":15.75, "y":1}, {"x":16.75, "y":1, "w":1.5}, @@ -22,7 +23,7 @@ {"x":1.25, "y":4, "w":1.5}, {"x":2.75, "y":4}, {"x":5, "y":4, "w":1.5}, {"x":6.5, "y":4, "w":2.25}, {"x":9.75, "y":4, "w":2.75}, {"x":12.5, "y":4, "w":1}, {"x":14.65, "y":4.25}, {"x":15.65, "y":4.25}, {"x":16.65, "y":4.25} ] }, - "LAYOUT_ava": { + "LAYOUT_alice": { "layout": [ {"x":0, "y":0}, {"x":1.25, "y":0}, {"x":2.25, "y":0}, {"x":3.25, "y":0}, {"x":4.25, "y":0}, {"x":5.25, "y":0}, {"x":6.25, "y":0}, {"x":7.25, "y":0}, {"x":10.25, "y":0}, {"x":11.25, "y":0}, {"x":12.25, "y":0}, {"x":13.25, "y":0}, {"x":14.25, "y":0}, {"x":15.25, "y":0}, {"x":16.25, "y":0, "w":2}, {"x":0, "y":1}, {"x":1.25, "y":1, "w":1.5}, {"x":2.75, "y":1}, {"x":3.75, "y":1}, {"x":4.75, "y":1}, {"x":5.75, "y":1}, {"x":6.75, "y":1}, {"x":9.75, "y":1}, {"x":10.75, "y":1}, {"x":11.75, "y":1}, {"x":12.75, "y":1}, {"x":13.75, "y":1}, {"x":14.75, "y":1}, {"x":15.75, "y":1}, {"x":16.75, "y":1, "w":1.5}, diff --git a/keyboards/sneakbox/ava/keymaps/default/keymap.c b/keyboards/sneakbox/ava/keymaps/default/keymap.c index 3c284266ca8b..43fa636fe452 100644 --- a/keyboards/sneakbox/ava/keymaps/default/keymap.c +++ b/keyboards/sneakbox/ava/keymaps/default/keymap.c @@ -24,13 +24,13 @@ enum layer_names { }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_ava_split_bs( + [_BASE] = LAYOUT_alice_split_bs( KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_END, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_DEL, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, LT(_FN, KC_SPC), KC_LEFT, KC_DOWN, KC_RGHT), - [_FN] = LAYOUT_ava_split_bs( + [_FN] = LAYOUT_alice_split_bs( KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_RMOD, RGB_MOD, RGB_TOG, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAD, RGB_VAI, KC_TRNS, diff --git a/keyboards/sneakbox/ava/keymaps/via/keymap.c b/keyboards/sneakbox/ava/keymaps/via/keymap.c index 4e994aad6680..630edd4c9a75 100644 --- a/keyboards/sneakbox/ava/keymaps/via/keymap.c +++ b/keyboards/sneakbox/ava/keymaps/via/keymap.c @@ -27,25 +27,25 @@ enum layer_names { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_ava_split_bs( + [_BASE] = LAYOUT_alice_split_bs( KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_END, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_DEL, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, LT(_FN, KC_SPC), KC_LEFT, KC_DOWN, KC_RGHT), - [_FN] = LAYOUT_ava_split_bs( + [_FN] = LAYOUT_alice_split_bs( KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_RMOD, RGB_MOD, RGB_TOG, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAD, RGB_VAI, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SAD, RGB_SAI, KC_TRNS, RGB_HUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - [_L3] = LAYOUT_ava_split_bs( + [_L3] = LAYOUT_alice_split_bs( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - [_L4] = LAYOUT_ava_split_bs( + [_L4] = LAYOUT_alice_split_bs( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, From 5e502c3265c7616674af7ab929d4a964670c7b69 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Fri, 20 Jan 2023 02:35:18 +0000 Subject: [PATCH 089/139] Remove stray UNUSED_PINS (#19639) --- keyboards/ferris/0_1/config.h | 3 --- keyboards/ferris/0_2/config.h | 3 --- keyboards/ingrained/config.h | 4 ---- keyboards/kopibeng/mnk65_stm32/config.h | 1 - keyboards/yushakobo/navpad/10/rev0/config.h | 1 - keyboards/yushakobo/navpad/10/rev1/config.h | 1 - keyboards/yushakobo/navpad/10_helix_r/config.h | 1 - 7 files changed, 14 deletions(-) diff --git a/keyboards/ferris/0_1/config.h b/keyboards/ferris/0_1/config.h index 8d062d9b5f84..147abb813d25 100644 --- a/keyboards/ferris/0_1/config.h +++ b/keyboards/ferris/0_1/config.h @@ -24,9 +24,6 @@ along with this program. If not, see . #define MATRIX_ROWS_PER_SIDE (MATRIX_ROWS / 2) #define MATRIX_COLS_PER_SIDE (MATRIX_COLS / 2) -#define UNUSED_MCU 14 -#define UNUSED_MCP 7 - // wiring #define MATRIX_ROW_PINS_MCU \ { B3, B2, B1, F0 } diff --git a/keyboards/ferris/0_2/config.h b/keyboards/ferris/0_2/config.h index b6816b396e5e..868f770b16f9 100644 --- a/keyboards/ferris/0_2/config.h +++ b/keyboards/ferris/0_2/config.h @@ -24,9 +24,6 @@ along with this program. If not, see . #define MATRIX_ROWS_PER_SIDE (MATRIX_ROWS / 2) #define MATRIX_COLS_PER_SIDE (MATRIX_COLS / 2) -#define UNUSED_MCU 24 -#define UNUSED_MCP 7 - // wiring #define MATRIX_ROW_PINS_MCU \ { B7, B6, B5, A2 } diff --git a/keyboards/ingrained/config.h b/keyboards/ingrained/config.h index 8fb731efe567..cf15f75d8607 100644 --- a/keyboards/ingrained/config.h +++ b/keyboards/ingrained/config.h @@ -12,10 +12,6 @@ #define MATRIX_ROWS_PER_SIDE (MATRIX_ROWS / 2) #define MATRIX_COLS_PER_SIDE (MATRIX_COLS / 2) -#define UNUSED_MCU 13 -#define UNUSED_MCP 6 - - // wiring #define MATRIX_ROW_PINS_MCU \ { B0, B1, B2, B3 } diff --git a/keyboards/kopibeng/mnk65_stm32/config.h b/keyboards/kopibeng/mnk65_stm32/config.h index b539cb634803..35d7a0b48115 100644 --- a/keyboards/kopibeng/mnk65_stm32/config.h +++ b/keyboards/kopibeng/mnk65_stm32/config.h @@ -35,7 +35,6 @@ */ #define MATRIX_ROW_PINS { A10, B9, A1, B11, A3 } #define MATRIX_COL_PINS { A9, B8, F0, C15, C14, C13, B10, B2, B1, B0, A7, A6, A5, A4, A2 } -#define UNUSED_PINS #define LED_CAPS_LOCK_PIN A8 diff --git a/keyboards/yushakobo/navpad/10/rev0/config.h b/keyboards/yushakobo/navpad/10/rev0/config.h index 9d2906fa302e..4f25909730a2 100644 --- a/keyboards/yushakobo/navpad/10/rev0/config.h +++ b/keyboards/yushakobo/navpad/10/rev0/config.h @@ -35,4 +35,3 @@ along with this program. If not, see . */ #define MATRIX_ROW_PINS { D4, C6, D7, E6, B4, D0 } #define MATRIX_COL_PINS { F4, F5, F6, B2, B3, B1, F7 } -#define UNUSED_PIN { D1 } diff --git a/keyboards/yushakobo/navpad/10/rev1/config.h b/keyboards/yushakobo/navpad/10/rev1/config.h index 65f9944db9f1..f5244c4bc3fd 100644 --- a/keyboards/yushakobo/navpad/10/rev1/config.h +++ b/keyboards/yushakobo/navpad/10/rev1/config.h @@ -35,7 +35,6 @@ along with this program. If not, see . */ #define MATRIX_ROW_PINS { D4, C6, D7, E6, B4, F4 } #define MATRIX_COL_PINS { F5, F6, B2, B3, B1, F7 } -#define UNUSED_PIN { D1, D0 } #ifdef RGB_DI_PIN # define RGBLIGHT_LED_MAP { 0, 1, 2, 3, 4, 5, 6, 8, 7 } diff --git a/keyboards/yushakobo/navpad/10_helix_r/config.h b/keyboards/yushakobo/navpad/10_helix_r/config.h index 646cb59b636a..41389c6b3694 100644 --- a/keyboards/yushakobo/navpad/10_helix_r/config.h +++ b/keyboards/yushakobo/navpad/10_helix_r/config.h @@ -37,7 +37,6 @@ along with this program. If not, see . #define MATRIX_ROW_PINS_RIGHT { D4, C6, D7, E6, B4 } #define MATRIX_COL_PINS { F5, F6, B2, B3, B1, F7, NO_PIN } #define MATRIX_COL_PINS_RIGHT { F4, F5, F6, F7, B1, B3, B2 } -#define UNUSED_PIN { D0, D1 } #define EE_HANDS From f2ad3ba7c3ccff20560010ebe57c76d381771499 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Fri, 20 Jan 2023 02:36:30 +0000 Subject: [PATCH 090/139] Refactor some layouts which contain keyboard name (#19643) --- keyboards/gboards/georgi/georgi.h | 2 +- keyboards/gboards/georgi/info.json | 5 ++++- .../gboards/georgi/keymaps/default-flipped/keymap.c | 6 +++--- keyboards/gboards/georgi/keymaps/default/keymap.c | 6 +++--- keyboards/gboards/gergo/gergo.h | 2 +- keyboards/gboards/gergo/info.json | 5 ++++- keyboards/gboards/gergo/keymaps/default/keymap.c | 8 ++++---- keyboards/handwired/uthol/info.json | 5 ++++- keyboards/handwired/uthol/keymaps/default/keymap.c | 10 +++++----- keyboards/handwired/uthol/keymaps/numswap/keymap.c | 10 +++++----- keyboards/handwired/uthol/keymaps/oled/keymap.c | 10 +++++----- keyboards/handwired/uthol/uthol.h | 2 +- keyboards/melgeek/tegic/info.json | 5 ++++- keyboards/melgeek/tegic/keymaps/default/keymap.c | 6 ++---- keyboards/melgeek/tegic/keymaps/via/keymap.c | 9 ++++----- keyboards/melgeek/tegic/tegic.h | 2 +- keyboards/mode/m80v1/m80h/info.json | 6 +++++- keyboards/mode/m80v1/m80h/keymaps/default/keymap.c | 4 ++-- keyboards/mode/m80v1/m80h/keymaps/via/keymap.c | 8 ++++---- keyboards/mode/m80v1/m80h/m80h.h | 2 +- keyboards/mode/m80v2/m80v2h/info.json | 6 +++++- keyboards/mode/m80v2/m80v2h/keymaps/default/keymap.c | 8 ++++---- keyboards/mode/m80v2/m80v2h/keymaps/via/keymap.c | 8 ++++---- keyboards/mode/m80v2/m80v2h/m80v2h.h | 2 +- 24 files changed, 77 insertions(+), 60 deletions(-) diff --git a/keyboards/gboards/georgi/georgi.h b/keyboards/gboards/georgi/georgi.h index e5a52c585deb..47fb1831c892 100644 --- a/keyboards/gboards/georgi/georgi.h +++ b/keyboards/gboards/georgi/georgi.h @@ -28,7 +28,7 @@ void init_ergodox(void); uint8_t init_mcp23018(void); /* ---------- LEFT HAND ----------- ---------- RIGHT HAND ---------- */ -#define LAYOUT_georgi( \ +#define LAYOUT( \ L00,L01,L02,L03,L04,L05, R00,R01,R02,R03,R04,R05, \ L10,L11,L12,L13,L14,L15, R10,R11,R12,R13,R14,R15, \ L20,L21,L22, R20,R21,R22) \ diff --git a/keyboards/gboards/georgi/info.json b/keyboards/gboards/georgi/info.json index 0bfe2a52aaaf..619fa4af5d41 100644 --- a/keyboards/gboards/georgi/info.json +++ b/keyboards/gboards/georgi/info.json @@ -8,8 +8,11 @@ "pid": "0x1337", "device_version": "0.0.1" }, + "layout_aliases": { + "LAYOUT_georgi": "LAYOUT" + }, "layouts": { - "LAYOUT_georgi": { + "LAYOUT": { "layout": [ {"x": 0, "y": 0.5}, {"x": 1, "y": 0.5}, diff --git a/keyboards/gboards/georgi/keymaps/default-flipped/keymap.c b/keyboards/gboards/georgi/keymaps/default-flipped/keymap.c index a3324b11cdf1..2e63fe3c7d23 100644 --- a/keyboards/gboards/georgi/keymaps/default-flipped/keymap.c +++ b/keyboards/gboards/georgi/keymaps/default-flipped/keymap.c @@ -214,19 +214,19 @@ uint32_t processQwerty(bool lookup) { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Main layer, everything goes through here - [STENO_LAYER] = LAYOUT_georgi( + [STENO_LAYER] = LAYOUT( STN_FN, STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, STN_ST3, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR, STN_PWR, 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_N7, STN_E, STN_U ), // Gaming layer with Numpad, Very limited - [GAMING] = LAYOUT_georgi( + [GAMING] = LAYOUT( KC_LSFT, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_ENT, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_DQUO, KC_LALT, KC_SPC, LT(GAMING_2, KC_ENT), KC_DEL, KC_ASTR, TO(STENO_LAYER) ), - [GAMING_2] = LAYOUT_georgi( + [GAMING_2] = LAYOUT( KC_LSFT, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_LT, KC_GT, KC_QUES, KC_RSFT, KC_LALT, KC_SPC, KC_ENT, KC_DEL, KC_ASTR, TO(STENO_LAYER) diff --git a/keyboards/gboards/georgi/keymaps/default/keymap.c b/keyboards/gboards/georgi/keymaps/default/keymap.c index 78964dc8406c..a9c2d4a47d8f 100644 --- a/keyboards/gboards/georgi/keymaps/default/keymap.c +++ b/keyboards/gboards/georgi/keymaps/default/keymap.c @@ -224,19 +224,19 @@ uint32_t processQwerty(bool lookup) { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Main layer, everything goes through here - [STENO_LAYER] = LAYOUT_georgi( + [STENO_LAYER] = LAYOUT( STN_FN, STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, STN_ST3, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR, STN_PWR, STN_S2, STN_KL, STN_WL, STN_RL, STN_ST2, STN_ST4, STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR, STN_N1, STN_A, STN_O, STN_E, STN_U, STN_N7 ), // Gaming layer with Numpad, Very limited - [GAMING] = LAYOUT_georgi( + [GAMING] = LAYOUT( KC_LSFT, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_ENT, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_DQUO, KC_LALT, KC_SPC, LT(GAMING_2, KC_ENT), KC_DEL, KC_ASTR, TO(STENO_LAYER) ), - [GAMING_2] = LAYOUT_georgi( + [GAMING_2] = LAYOUT( KC_LSFT, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_LT, KC_GT, KC_QUES, KC_RSFT, KC_LALT, KC_SPC, KC_ENT, KC_DEL, KC_ASTR, TO(STENO_LAYER) diff --git a/keyboards/gboards/gergo/gergo.h b/keyboards/gboards/gergo/gergo.h index 5174542661b8..9044b374e3b2 100644 --- a/keyboards/gboards/gergo/gergo.h +++ b/keyboards/gboards/gergo/gergo.h @@ -27,7 +27,7 @@ extern i2c_status_t mcp23018_status; uint8_t init_mcp23018(void); /* ---------- LEFT HAND ----------- ---------- RIGHT HAND ---------- */ -#define LAYOUT_gergo( \ +#define LAYOUT( \ L00,L01,L02,L03,L04,L05, R00,R01,R02,R03,R04,R05, \ L10,L11,L12,L13,L14,L15,L16, R10,R11,R12,R13,R14,R15,R16, \ L20,L21,L22,L23,L24,L25,L26,L30, R30,R20,R21,R22,R23,R24,R25,R26, \ diff --git a/keyboards/gboards/gergo/info.json b/keyboards/gboards/gergo/info.json index e3f8b1caffae..753a5e2e7356 100644 --- a/keyboards/gboards/gergo/info.json +++ b/keyboards/gboards/gergo/info.json @@ -8,8 +8,11 @@ "pid": "0x1307", "device_version": "0.0.1" }, + "layout_aliases": { + "LAYOUT_gergo": "LAYOUT" + }, "layouts": { - "LAYOUT_gergo": { + "LAYOUT": { "layout": [ { "label": "L00", diff --git a/keyboards/gboards/gergo/keymaps/default/keymap.c b/keyboards/gboards/gergo/keymaps/default/keymap.c index 8e26223f17d5..da6486c97a3a 100644 --- a/keyboards/gboards/gergo/keymaps/default/keymap.c +++ b/keyboards/gboards/gergo/keymaps/default/keymap.c @@ -40,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | * `--------------' `--------------' */ -[BASE] = LAYOUT_gergo( +[BASE] = LAYOUT( LT(NUMB, KC_ESC), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_PIPE, MT(MOD_LCTL, KC_BSPC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_BTN2, KC_TRNS, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_RSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_BTN1, KC_BTN3, KC_PGDN, KC_BSPC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_MINS, @@ -66,7 +66,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | * `--------------' `--------------' */ -[SYMB] = LAYOUT_gergo( +[SYMB] = LAYOUT( KC_TRNS, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSLS, KC_TRNS, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV, KC_TRNS, KC_TRNS, KC_PLUS, KC_MINS, KC_SLSH, KC_ASTR, KC_PERC, KC_QUOT, KC_TRNS, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_AMPR, KC_EQL, KC_COMM, KC_DOT, KC_SLSH, KC_MINS, @@ -92,7 +92,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | * `--------------' `--------------' */ -[NUMB] = LAYOUT_gergo( +[NUMB] = LAYOUT( KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_VOLD, KC_VOLU, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_MPLY, KC_MNXT, @@ -119,7 +119,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | * | | | | | | * `--------------' `--------------' -[SYMB] = LAYOUT_gergo( +[SYMB] = 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, diff --git a/keyboards/handwired/uthol/info.json b/keyboards/handwired/uthol/info.json index f8891331ed9a..1b195973a399 100644 --- a/keyboards/handwired/uthol/info.json +++ b/keyboards/handwired/uthol/info.json @@ -6,8 +6,11 @@ "vid": "0xFEED", "pid": "0x67F3" }, + "layout_aliases": { + "LAYOUT_uthol": "LAYOUT" + }, "layouts": { - "LAYOUT_uthol": { + "LAYOUT": { "layout": [ { "x": 0, diff --git a/keyboards/handwired/uthol/keymaps/default/keymap.c b/keyboards/handwired/uthol/keymaps/default/keymap.c index 9ad1251f7646..9ddc2d01bab4 100644 --- a/keyboards/handwired/uthol/keymaps/default/keymap.c +++ b/keyboards/handwired/uthol/keymaps/default/keymap.c @@ -26,9 +26,9 @@ enum uthol_layers { _QWERTY, _COLEMAK, _LOWER, _RAISE, _SETTINGS }; #define SETTINGS MO(_SETTINGS) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT_uthol(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_LCTL, SETTINGS, KC_LGUI, KC_LALT, RAISE, KC_SPC, LOWER, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT), - [_COLEMAK] = LAYOUT_uthol(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_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL, KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_LSFT, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, KC_LCTL, SETTINGS, KC_LGUI, KC_LALT, RAISE, KC_SPC, LOWER, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT), - [_LOWER] = LAYOUT_uthol(KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_MINS, KC_EQL, KC_INS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PMNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_BSLS, KC_P0, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MSTP, KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PEQL, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT), - [_RAISE] = LAYOUT_uthol(KC_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_P7, KC_P8, KC_P9, KC_PMNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_BSLS, KC_P0, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MSTP, KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_EQL, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT), - [_SETTINGS] = LAYOUT_uthol(QWERTY, COLEMAK, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, QK_BOOT, RGB_TOG, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_SLEP, KC_PWR, KC_NO, KC_SCRL, KC_NO, KC_NO, KC_PSCR, KC_NO, KC_NO, KC_NO, KC_NO, RGB_HUD, RGB_HUI, KC_NO, KC_NO, KC_NO, KC_NUM, KC_CAPS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_SAI, RGB_SAI, RGB_MODE_PLAIN, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MODE_REVERSE, RGB_VAD, RGB_VAI, RGB_MODE_FORWARD) + [_QWERTY] = LAYOUT(KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, KC_LCTL, SETTINGS, KC_LGUI, KC_LALT, RAISE, KC_SPC, LOWER, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT), + [_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_BSPC, KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL, KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_LSFT, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, KC_LCTL, SETTINGS, KC_LGUI, KC_LALT, RAISE, KC_SPC, LOWER, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT), + [_LOWER] = LAYOUT(KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_MINS, KC_EQL, KC_INS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PMNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_BSLS, KC_P0, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MSTP, KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PEQL, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT), + [_RAISE] = LAYOUT(KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PMNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_BSLS, KC_P0, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MSTP, KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_EQL, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT), + [_SETTINGS] = LAYOUT(QWERTY, COLEMAK, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, QK_BOOT, RGB_TOG, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_SLEP, KC_PWR, KC_NO, KC_SCRL, KC_NO, KC_NO, KC_PSCR, KC_NO, KC_NO, KC_NO, KC_NO, RGB_HUD, RGB_HUI, KC_NO, KC_NO, KC_NO, KC_NUM, KC_CAPS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_SAI, RGB_SAI, RGB_MODE_PLAIN, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MODE_REVERSE, RGB_VAD, RGB_VAI, RGB_MODE_FORWARD) }; diff --git a/keyboards/handwired/uthol/keymaps/numswap/keymap.c b/keyboards/handwired/uthol/keymaps/numswap/keymap.c index 8bcac56cba3d..1a63184a2a45 100644 --- a/keyboards/handwired/uthol/keymaps/numswap/keymap.c +++ b/keyboards/handwired/uthol/keymaps/numswap/keymap.c @@ -26,9 +26,9 @@ enum uthol_layers { _QWERTY, _COLEMAK, _LOWER, _RAISE, _SETTINGS }; #define SETTINGS MO(_SETTINGS) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT_uthol(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_LCTL, SETTINGS, KC_LGUI, KC_LALT, RAISE, KC_SPC, LOWER, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT), - [_COLEMAK] = LAYOUT_uthol(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_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL, KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_LSFT, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, KC_LCTL, SETTINGS, KC_LGUI, KC_LALT, RAISE, KC_SPC, LOWER, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT), - [_LOWER] = LAYOUT_uthol(KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_MINS, KC_EQL, KC_INS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PMNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_BSLS, KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MSTP, KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PEQL, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_TRNS, KC_TRNS, KC_P0, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT), - [_RAISE] = LAYOUT_uthol(KC_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_P7, KC_P8, KC_P9, KC_PMNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_BSLS, KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MSTP, KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_EQL, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_TRNS, KC_TRNS, KC_P0, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT), - [_SETTINGS] = LAYOUT_uthol(QWERTY, COLEMAK, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_SCRL, KC_NO, KC_NO, KC_PSCR, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_SLEP, KC_PWR, KC_NO, KC_NO, KC_NUM, KC_CAPS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO) + [_QWERTY] = LAYOUT(KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, KC_LCTL, SETTINGS, KC_LGUI, KC_LALT, RAISE, KC_SPC, LOWER, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT), + [_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_BSPC, KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL, KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_LSFT, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, KC_LCTL, SETTINGS, KC_LGUI, KC_LALT, RAISE, KC_SPC, LOWER, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT), + [_LOWER] = LAYOUT(KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_MINS, KC_EQL, KC_INS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PMNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_BSLS, KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MSTP, KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PEQL, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_TRNS, KC_TRNS, KC_P0, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT), + [_RAISE] = LAYOUT(KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PMNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_BSLS, KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MSTP, KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_EQL, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_TRNS, KC_TRNS, KC_P0, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT), + [_SETTINGS] = LAYOUT(QWERTY, COLEMAK, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_SCRL, KC_NO, KC_NO, KC_PSCR, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_SLEP, KC_PWR, KC_NO, KC_NO, KC_NUM, KC_CAPS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO) }; diff --git a/keyboards/handwired/uthol/keymaps/oled/keymap.c b/keyboards/handwired/uthol/keymaps/oled/keymap.c index ed087413d78f..a1fa8f97fc63 100644 --- a/keyboards/handwired/uthol/keymaps/oled/keymap.c +++ b/keyboards/handwired/uthol/keymaps/oled/keymap.c @@ -27,11 +27,11 @@ enum uthol_layers { _QWERTY, _COLEMAK, _LOWER, _RAISE, _SETTINGS }; #define SETTINGS MO(_SETTINGS) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT_uthol(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_LCTL, SETTINGS, KC_LGUI, KC_LALT, RAISE, KC_SPC, LOWER, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT), - [_COLEMAK] = LAYOUT_uthol(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_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL, KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_LSFT, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, KC_LCTL, SETTINGS, KC_LGUI, KC_LALT, RAISE, KC_SPC, LOWER, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT), - [_LOWER] = LAYOUT_uthol(KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_MINS, KC_EQL, KC_INS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PMNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_BSLS, KC_P0, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MSTP, KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PEQL, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT), - [_RAISE] = LAYOUT_uthol(KC_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_P7, KC_P8, KC_P9, KC_PMNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_BSLS, KC_P0, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MSTP, KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_EQL, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT), - [_SETTINGS] = LAYOUT_uthol(QWERTY, COLEMAK, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, QK_BOOT, RGB_TOG, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_SLEP, KC_PWR, KC_NO, KC_SCRL, KC_NO, KC_NO, KC_PSCR, KC_NO, KC_NO, KC_NO, KC_NO, RGB_HUD, RGB_HUI, KC_NO, KC_NO, KC_NO, KC_NUM, KC_CAPS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_SAI, RGB_SAI, RGB_MODE_PLAIN, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MODE_REVERSE, RGB_VAD, RGB_VAI, RGB_MODE_FORWARD) + [_QWERTY] = LAYOUT(KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, KC_LCTL, SETTINGS, KC_LGUI, KC_LALT, RAISE, KC_SPC, LOWER, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT), + [_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_BSPC, KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL, KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_LSFT, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, KC_LCTL, SETTINGS, KC_LGUI, KC_LALT, RAISE, KC_SPC, LOWER, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT), + [_LOWER] = LAYOUT(KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_MINS, KC_EQL, KC_INS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PMNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_BSLS, KC_P0, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MSTP, KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PEQL, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT), + [_RAISE] = LAYOUT(KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PMNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_BSLS, KC_P0, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MSTP, KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_EQL, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT), + [_SETTINGS] = LAYOUT(QWERTY, COLEMAK, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, QK_BOOT, RGB_TOG, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_SLEP, KC_PWR, KC_NO, KC_SCRL, KC_NO, KC_NO, KC_PSCR, KC_NO, KC_NO, KC_NO, KC_NO, RGB_HUD, RGB_HUI, KC_NO, KC_NO, KC_NO, KC_NUM, KC_CAPS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_SAI, RGB_SAI, RGB_MODE_PLAIN, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MODE_REVERSE, RGB_VAD, RGB_VAI, RGB_MODE_FORWARD) }; #define ANIM_SIZE 1024 // number of bytes in array, minimize for adequate firmware size, max is 1024 diff --git a/keyboards/handwired/uthol/uthol.h b/keyboards/handwired/uthol/uthol.h index a774fdb940d3..3e1cbdc72b5c 100644 --- a/keyboards/handwired/uthol/uthol.h +++ b/keyboards/handwired/uthol/uthol.h @@ -30,7 +30,7 @@ # include "rev3.h" #endif -#define LAYOUT_uthol( \ +#define LAYOUT( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ diff --git a/keyboards/melgeek/tegic/info.json b/keyboards/melgeek/tegic/info.json index 5526ec080ce8..6891016ff668 100755 --- a/keyboards/melgeek/tegic/info.json +++ b/keyboards/melgeek/tegic/info.json @@ -8,8 +8,11 @@ "pid": "0x0081", "device_version": "0.0.1" }, + "layout_aliases": { + "LAYOUT_tegic_ansi": "LAYOUT" + }, "layouts": { - "LAYOUT_tegic_ansi": { + "LAYOUT": { "layout": [ {"x": 0, "y": 0}, {"x": 1.25, "y": 0}, diff --git a/keyboards/melgeek/tegic/keymaps/default/keymap.c b/keyboards/melgeek/tegic/keymaps/default/keymap.c index 8ba1edc41d4e..4c1e241549ca 100755 --- a/keyboards/melgeek/tegic/keymaps/default/keymap.c +++ b/keyboards/melgeek/tegic/keymaps/default/keymap.c @@ -16,10 +16,8 @@ #include QMK_KEYBOARD_H - - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_tegic_ansi( /* Base */ + [0] = LAYOUT( /* Base */ 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_PSCR, KC_SCRL, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, @@ -27,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT_tegic_ansi( /* FN */ + [1] = LAYOUT( /* FN */ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______, KC_END, _______, _______, RGB_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, _______, QK_BOOT, _______, KC_INS, _______, diff --git a/keyboards/melgeek/tegic/keymaps/via/keymap.c b/keyboards/melgeek/tegic/keymaps/via/keymap.c index 91a68240ba6b..3e6f559c6859 100755 --- a/keyboards/melgeek/tegic/keymaps/via/keymap.c +++ b/keyboards/melgeek/tegic/keymaps/via/keymap.c @@ -16,9 +16,8 @@ #include QMK_KEYBOARD_H - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_tegic_ansi( /* Base */ + [0] = LAYOUT( /* Base */ 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_PSCR, KC_SCRL, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, @@ -26,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT_tegic_ansi( /* FN */ + [1] = LAYOUT( /* FN */ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______, KC_END, _______, _______, RGB_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, _______, QK_BOOT, _______, KC_INS, _______, @@ -34,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT ), - [2] = LAYOUT_tegic_ansi( + [2] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -42,7 +41,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [3] = LAYOUT_tegic_ansi( + [3] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/melgeek/tegic/tegic.h b/keyboards/melgeek/tegic/tegic.h index 5c3eb8d39c90..537b87b87a7d 100755 --- a/keyboards/melgeek/tegic/tegic.h +++ b/keyboards/melgeek/tegic/tegic.h @@ -20,7 +20,7 @@ #define XXX KC_NO -#define LAYOUT_tegic_ansi( \ +#define LAYOUT( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \ diff --git a/keyboards/mode/m80v1/m80h/info.json b/keyboards/mode/m80v1/m80h/info.json index bb65727e6248..a5e18224ae8c 100644 --- a/keyboards/mode/m80v1/m80h/info.json +++ b/keyboards/mode/m80v1/m80h/info.json @@ -8,8 +8,12 @@ "pid": "0x0081", "device_version": "0.7.2" }, + "community_layouts": [ "tkl_ansi" ], + "layout_aliases": { + "LAYOUT_eighty_m80h": "LAYOUT_tkl_ansi" + }, "layouts": { - "LAYOUT_eighty_m80h": { + "LAYOUT_tkl_ansi": { "layout": [ {"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, diff --git a/keyboards/mode/m80v1/m80h/keymaps/default/keymap.c b/keyboards/mode/m80v1/m80h/keymaps/default/keymap.c index 7bab61e83e3d..d9d8e2a878ae 100644 --- a/keyboards/mode/m80v1/m80h/keymaps/default/keymap.c +++ b/keyboards/mode/m80v1/m80h/keymaps/default/keymap.c @@ -23,7 +23,7 @@ enum layer_names { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_eighty_m80h( + [_BASE] = LAYOUT_tkl_ansi( KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSPC, KC_MUTE, KC_VOLD, KC_VOLU, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_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, @@ -31,7 +31,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - [_FN1] = LAYOUT_eighty_m80h( + [_FN1] = LAYOUT_tkl_ansi( QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/mode/m80v1/m80h/keymaps/via/keymap.c b/keyboards/mode/m80v1/m80h/keymaps/via/keymap.c index eb9ce47da1c6..a2bdf5263846 100644 --- a/keyboards/mode/m80v1/m80h/keymaps/via/keymap.c +++ b/keyboards/mode/m80v1/m80h/keymaps/via/keymap.c @@ -25,7 +25,7 @@ enum layer_names { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_eighty_m80h( + [_BASE] = LAYOUT_tkl_ansi( KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSPC, KC_MUTE, KC_VOLD, KC_VOLU, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_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, @@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - [_FN1] = LAYOUT_eighty_m80h( + [_FN1] = LAYOUT_tkl_ansi( QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -41,7 +41,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - [_FN2] = LAYOUT_eighty_m80h( + [_FN2] = LAYOUT_tkl_ansi( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -49,7 +49,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - [_FN3] = LAYOUT_eighty_m80h( + [_FN3] = LAYOUT_tkl_ansi( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/mode/m80v1/m80h/m80h.h b/keyboards/mode/m80v1/m80h/m80h.h index f3f4c538898c..49f115fdc689 100644 --- a/keyboards/mode/m80v1/m80h/m80h.h +++ b/keyboards/mode/m80v1/m80h/m80h.h @@ -15,7 +15,7 @@ #include "m80v1.h" -#define LAYOUT_eighty_m80h( \ +#define LAYOUT_tkl_ansi( \ K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K415, K114, K115, K116, \ K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216, \ K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K514, K314, K315, K316, \ diff --git a/keyboards/mode/m80v2/m80v2h/info.json b/keyboards/mode/m80v2/m80v2h/info.json index 13bd6c67bc9f..04f3577bf617 100644 --- a/keyboards/mode/m80v2/m80v2h/info.json +++ b/keyboards/mode/m80v2/m80v2h/info.json @@ -8,8 +8,12 @@ "pid": "0x0083", "device_version": "0.0.2" }, + "community_layouts": [ "tkl_ansi" ], + "layout_aliases": { + "LAYOUT_m80v2h": "LAYOUT_tkl_ansi" + }, "layouts": { - "LAYOUT_m80v2h": { + "LAYOUT_tkl_ansi": { "layout": [ {"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, diff --git a/keyboards/mode/m80v2/m80v2h/keymaps/default/keymap.c b/keyboards/mode/m80v2/m80v2h/keymaps/default/keymap.c index ab580934bdb8..0bfe49b0eca5 100755 --- a/keyboards/mode/m80v2/m80v2h/keymaps/default/keymap.c +++ b/keyboards/mode/m80v2/m80v2h/keymaps/default/keymap.c @@ -18,7 +18,7 @@ along with this program. If not, see . #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_m80v2h( + [0] = LAYOUT_tkl_ansi( KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_BSPC, KC_MUTE, KC_VOLD , KC_VOLU , KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_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 , @@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_RGUI, MO(1) , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT_m80v2h( + [1] = LAYOUT_tkl_ansi( QK_BOOT , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - [2] = LAYOUT_m80v2h( + [2] = LAYOUT_tkl_ansi( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - [3] = LAYOUT_m80v2h( + [3] = LAYOUT_tkl_ansi( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/mode/m80v2/m80v2h/keymaps/via/keymap.c b/keyboards/mode/m80v2/m80v2h/keymaps/via/keymap.c index ab580934bdb8..0bfe49b0eca5 100755 --- a/keyboards/mode/m80v2/m80v2h/keymaps/via/keymap.c +++ b/keyboards/mode/m80v2/m80v2h/keymaps/via/keymap.c @@ -18,7 +18,7 @@ along with this program. If not, see . #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_m80v2h( + [0] = LAYOUT_tkl_ansi( KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_BSPC, KC_MUTE, KC_VOLD , KC_VOLU , KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_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 , @@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_RGUI, MO(1) , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT_m80v2h( + [1] = LAYOUT_tkl_ansi( QK_BOOT , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - [2] = LAYOUT_m80v2h( + [2] = LAYOUT_tkl_ansi( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - [3] = LAYOUT_m80v2h( + [3] = LAYOUT_tkl_ansi( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/mode/m80v2/m80v2h/m80v2h.h b/keyboards/mode/m80v2/m80v2h/m80v2h.h index 6a21b8cecc61..28d1d2784cac 100644 --- a/keyboards/mode/m80v2/m80v2h/m80v2h.h +++ b/keyboards/mode/m80v2/m80v2h/m80v2h.h @@ -21,7 +21,7 @@ along with this program. If not, see . #define ___ KC_NO -#define LAYOUT_m80v2h( \ +#define LAYOUT_tkl_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, K1E, K1F, K1G, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ From 255e138ee18e65e63000b64f019096ed4dbe3b5f Mon Sep 17 00:00:00 2001 From: Leo Deng Date: Fri, 20 Jan 2023 12:24:06 +0800 Subject: [PATCH 091/139] djam add rgb matrix (#19621) --- keyboards/deng/djam/config.h | 11 ++++++++ keyboards/deng/djam/djam.c | 27 ++++++++++++++++++++ keyboards/deng/djam/keymaps/default/keymap.c | 19 +++++++++++++- keyboards/deng/djam/keymaps/via/keymap.c | 19 +++++++++++--- keyboards/deng/djam/rules.mk | 2 ++ 5 files changed, 73 insertions(+), 5 deletions(-) diff --git a/keyboards/deng/djam/config.h b/keyboards/deng/djam/config.h index 001b2ff19f04..edb558930de4 100644 --- a/keyboards/deng/djam/config.h +++ b/keyboards/deng/djam/config.h @@ -26,3 +26,14 @@ #define BACKLIGHT_PIN B7 #define BACKLIGHT_LEVELS 5 + +#ifdef RGB_MATRIX_ENABLE +#define RGB_DI_PIN D5 +#define RGB_MATRIX_LED_COUNT 31 +#define RGB_MATRIX_KEYPRESSES +#define ENABLE_RGB_MATRIX_BREATHING +#define ENABLE_RGB_MATRIX_CYCLE_ALL +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH +#endif diff --git a/keyboards/deng/djam/djam.c b/keyboards/deng/djam/djam.c index 97bfda5ac566..c7b986cf9efe 100644 --- a/keyboards/deng/djam/djam.c +++ b/keyboards/deng/djam/djam.c @@ -14,3 +14,30 @@ * along with this program. If not, see . */ #include "djam.h" + +#ifdef RGB_MATRIX_ENABLE +led_config_t g_led_config = { + { + /* Key Matrix to LED Index */ + { 17, 16, 15, NO_LED, NO_LED, 7, 6, 5 }, + { 21, 17, 16, 15, 7, 6, 5, 1 }, + { 19, 18, 13, 11, 9, 4, 3, NO_LED } + }, + { + /* LED Index to Physical Position */ + // Switch LEDs + {224,14}, {224,24}, {224,33}, {212,57}, {192,57}, {192,38}, {172,38}, {152,38}, + {152,57}, {142,57}, {132,57}, {112,57}, {92,57}, {82,57}, {72,57}, + {72,38}, {52,38}, {32,38}, {32,57}, {12,57}, {0,33}, {0,24}, {0,14}, + // Underglow LEDs + {0,0}, {92,0}, {132,0}, {224,0}, {222,64}, {172,64}, {72,64}, {2,64}, + }, + { + /* LED Index to Flag */ + 2, 4, 2, 4, 4, 4, 4, 4, + 2, 4, 2, 4, 2, 4, 2, + 4, 4, 4, 4, 4, 2, 4, 2, + 2, 2, 2, 2, 2, 2, 2, 2 + } +}; +#endif diff --git a/keyboards/deng/djam/keymaps/default/keymap.c b/keyboards/deng/djam/keymaps/default/keymap.c index 724a915e66ba..11508963b106 100644 --- a/keyboards/deng/djam/keymaps/default/keymap.c +++ b/keyboards/deng/djam/keymaps/default/keymap.c @@ -15,9 +15,26 @@ */ #include QMK_KEYBOARD_H +#define L1_SPC LT(1, KC_SPC) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┐ ┌───┬───┬───┐ + * ┌───┤ S │ D │ F │ │ J │ K │ L ├───┐ + * │ A ├───┼───┼───┤ DJAM ├───┼───┼───┤ ; │ + * └───┤ Z │ X │ C │ │ N │ M │ , ├───┘ + * ┌───┼───┼───┴─┬─┴─┬───────┬─┴─┬─┴───┼───┼───┐ + * │ ← │ → │ │LSh│ SPACE │RSh│ │ ↑ │ ↓ │ + * └───┴───┘ └───┴───────┴───┘ └───┴───┘ + */ [0] = LAYOUT( KC_S, KC_D, KC_F, KC_J, KC_K, KC_L, KC_A, KC_Z, KC_X, KC_C, KC_N, KC_M, KC_COMM, KC_SCLN, - KC_LEFT, KC_RGHT, BL_TOGG, KC_SPC, BL_STEP, KC_UP, KC_DOWN) + KC_LEFT, KC_RGHT, KC_LSFT, L1_SPC, KC_RSFT, KC_UP, KC_DOWN), + + [1] = LAYOUT( + RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, RGB_RMOD, + _______, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, RGB_MOD, RGB_TOG, + _______, _______, BL_TOGG, _______, BL_STEP, _______, _______) + }; diff --git a/keyboards/deng/djam/keymaps/via/keymap.c b/keyboards/deng/djam/keymaps/via/keymap.c index 87ff22eb2924..8dbdd85a3ea7 100644 --- a/keyboards/deng/djam/keymaps/via/keymap.c +++ b/keyboards/deng/djam/keymaps/via/keymap.c @@ -15,16 +15,27 @@ */ #include QMK_KEYBOARD_H +#define L1_SPC LT(1, KC_SPC) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┐ ┌───┬───┬───┐ + * ┌───┤ S │ D │ F │ │ J │ K │ L ├───┐ + * │ A ├───┼───┼───┤ DJAM ├───┼───┼───┤ ; │ + * └───┤ Z │ X │ C │ │ N │ M │ , ├───┘ + * ┌───┼───┼───┴─┬─┴─┬───────┬─┴─┬─┴───┼───┼───┐ + * │ ← │ → │ │LSh│ SPACE │RSh│ │ ↑ │ ↓ │ + * └───┴───┘ └───┴───────┴───┘ └───┴───┘ + */ [0] = LAYOUT( KC_S, KC_D, KC_F, KC_J, KC_K, KC_L, KC_A, KC_Z, KC_X, KC_C, KC_N, KC_M, KC_COMM, KC_SCLN, - KC_LEFT, KC_RGHT, BL_TOGG, KC_SPC, BL_STEP, KC_UP, KC_DOWN), + KC_LEFT, KC_RGHT, KC_LSFT, L1_SPC, KC_RSFT, KC_UP, KC_DOWN), [1] = LAYOUT( - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______), + RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, RGB_RMOD, + _______, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, RGB_MOD, RGB_TOG, + _______, _______, BL_TOGG, _______, BL_STEP, _______, _______), [2] = LAYOUT( _______, _______, _______, _______, _______, _______, diff --git a/keyboards/deng/djam/rules.mk b/keyboards/deng/djam/rules.mk index 4fa3df3f5881..9685c1ce7633 100644 --- a/keyboards/deng/djam/rules.mk +++ b/keyboards/deng/djam/rules.mk @@ -17,3 +17,5 @@ BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality BACKLIGHT_DRIVER = pwm RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812 From 18d107b29bc2b84b13a19f3fc4ef08724247b1bb Mon Sep 17 00:00:00 2001 From: dztech Date: Fri, 20 Jan 2023 12:29:48 +0800 Subject: [PATCH 092/139] Og60 fix indicator (#19631) --- keyboards/dztech/og60/info.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/keyboards/dztech/og60/info.json b/keyboards/dztech/og60/info.json index 2be03ec8521d..0c86494f5092 100644 --- a/keyboards/dztech/og60/info.json +++ b/keyboards/dztech/og60/info.json @@ -13,8 +13,7 @@ "nkro": true }, "indicators": { - "caps_lock": "GP28", - "on_state": 1 + "caps_lock": "GP28" }, "matrix_pins": { "cols": ["GP2", "GP9", "GP10", "GP11", "GP12", "GP13", "GP14", "GP15", "GP18", "GP19", "GP20", "GP21", "GP22", "GP23"], From 53cc6170ae2687b0c894f05738181a2f16ad0d6c Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Fri, 20 Jan 2023 05:44:05 +0000 Subject: [PATCH 093/139] Refactor some layouts which contain keyboard name (#19645) * Refactor some layouts which contain keyboard name * use planck_mit --- keyboards/adm42/adm42.h | 2 +- keyboards/adm42/info.json | 5 +- keyboards/adm42/rev4/keymaps/default/keymap.c | 12 ++-- keyboards/ai/info.json | 5 +- keyboards/ai/keymaps/default/keymap.c | 2 +- keyboards/b_sides/rev41lp/info.json | 5 +- .../b_sides/rev41lp/keymaps/default/keymap.c | 8 +-- keyboards/b_sides/rev41lp/rev41lp.h | 2 +- keyboards/chord/zero/info.json | 5 +- keyboards/chord/zero/keymaps/default/keymap.c | 2 +- keyboards/crbn/crbn.h | 16 ++++- keyboards/crbn/info.json | 60 ++++++++++++++++++- keyboards/crbn/keymaps/default/keymap.c | 16 ++--- keyboards/crbn/keymaps/via/keymap.c | 24 ++++---- keyboards/dm9records/plaid/info.json | 4 +- .../dm9records/plaid/keymaps/default/keymap.c | 14 ++--- .../dm9records/plaid/keymaps/via/keymap.c | 8 +-- keyboards/dm9records/plaid/plaid.h | 10 ++-- keyboards/flehrad/numbrero/info.json | 8 ++- .../flehrad/numbrero/keymaps/default/keymap.c | 4 +- keyboards/flehrad/numbrero/numbrero.h | 4 +- keyboards/fungo/keymaps/default/keymap.c | 16 ++--- keyboards/fungo/rev1/info.json | 5 +- keyboards/fungo/rev1/rev1.h | 8 +-- keyboards/gizmo_engineering/gk6/gk6.h | 4 +- keyboards/gizmo_engineering/gk6/info.json | 8 ++- .../gk6/keymaps/1x2u/keymap.c | 6 +- .../gk6/keymaps/default/keymap.c | 6 +- keyboards/kepler_33/proto/info.json | 2 +- .../kepler_33/proto/keymaps/default/keymap.c | 2 +- 30 files changed, 179 insertions(+), 94 deletions(-) diff --git a/keyboards/adm42/adm42.h b/keyboards/adm42/adm42.h index d4ac544a8fa0..536fb51da510 100644 --- a/keyboards/adm42/adm42.h +++ b/keyboards/adm42/adm42.h @@ -18,7 +18,7 @@ #include "quantum.h" -#define LAYOUT_adm42_3x12_6( \ +#define LAYOUT( \ K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, \ K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, \ K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, \ diff --git a/keyboards/adm42/info.json b/keyboards/adm42/info.json index bf57885afaa8..5834be2233a4 100644 --- a/keyboards/adm42/info.json +++ b/keyboards/adm42/info.json @@ -8,8 +8,11 @@ "pid": "0xE873", "device_version": "0.0.1" }, + "layout_aliases": { + "LAYOUT_adm42_3x12_6": "LAYOUT" + }, "layouts": { - "LAYOUT_adm42_3x12_6": { + "LAYOUT": { "layout": [ {"label":"GUI/`~", "x":0, "y":0.8}, {"label":"Q", "x":1, "y":0.8}, diff --git a/keyboards/adm42/rev4/keymaps/default/keymap.c b/keyboards/adm42/rev4/keymaps/default/keymap.c index 109796f7aea3..7720b07be227 100644 --- a/keyboards/adm42/rev4/keymaps/default/keymap.c +++ b/keyboards/adm42/rev4/keymaps/default/keymap.c @@ -54,38 +54,38 @@ enum custom_keycodes { // Not a mistake to have KC_LALT (also) on the right, RALT is kept for compose (LLS_RALT) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT_adm42_3x12_6( + [_QWERTY] = LAYOUT( LW_GRV, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, RW_EQU, LC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, RC_QUT, KC_LALT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LALT, LLS_ESC, LS_BPC, LLA_DEL, LLE_ENT, RS_SPC, LLS_RALT ), - [_COLEMAKDH] = LAYOUT_adm42_3x12_6( + [_COLEMAKDH] = LAYOUT( LW_GRV, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, RW_EQU, LC_TAB, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, RC_QUT, KC_LALT, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_LALT, LLS_ESC, LS_BPC, LLA_DEL, LLE_ENT, RS_SPC, LLS_RALT ), - [_SPECIAL] = LAYOUT_adm42_3x12_6( + [_SPECIAL] = LAYOUT( _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, RW_BS, LC_CIRC, KC_LBRC, KC_RBRC, KC_LPRN, KC_RPRN, KC_EXLM, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_MINS, RC_DLR, _______, KC_AMPR, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_UNDS, KC_ASTR, KC_HASH, KC_PERC, KC_TILD, _______, KC_ESC, _______, KC_DEL, KC_ENT, _______, KC_RALT ), - [_EXTRA] = LAYOUT_adm42_3x12_6( + [_EXTRA] = LAYOUT( LW_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, RW_F12, KC_LCTL, KC_PAUS, KC_INS, KC_VOLD, KC_VOLU, KC_MUTE, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_APP, KC_RCTL, _______, KC_SLEP, KC_PWR, KC_MSTP, KC_MNXT, KC_MPLY, _______, KC_BRID, KC_BRIU, KC_PSCR, KC_WAKE, _______, KC_CAPS, _______, _______, _______, _______, KC_CAPS ), - [_ADM] = LAYOUT_adm42_3x12_6( + [_ADM] = LAYOUT( XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_M_B, RGB_VAD, RGB_VAI, RGB_SAD, RGB_SAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_HUD, RGB_HUI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_M_P, RGB_SPD, RGB_SPI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, SETUP, XXXXXXX, XXXXXXX ), - [_SETUP] = LAYOUT_adm42_3x12_6( + [_SETUP] = LAYOUT( REFLASH, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DF_QWER, DF_COLE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, EE_CLR, diff --git a/keyboards/ai/info.json b/keyboards/ai/info.json index 3f0f7ffbcaca..13a0264cb1d3 100644 --- a/keyboards/ai/info.json +++ b/keyboards/ai/info.json @@ -23,8 +23,11 @@ "pid": "0x0000", "vid": "0xFEED" }, + "layout_aliases": { + "LAYOUT_ai_5x4_1": "LAYOUT" + }, "layouts": { - "LAYOUT_ai_5x4_1": { + "LAYOUT": { "layout": [ { "matrix": [0, 0], "x": 0, "y": 0.5 }, { "matrix": [0, 1], "x": 1, "y": 0 }, diff --git a/keyboards/ai/keymaps/default/keymap.c b/keyboards/ai/keymaps/default/keymap.c index c94847677607..ab38cf945dc2 100644 --- a/keyboards/ai/keymaps/default/keymap.c +++ b/keyboards/ai/keymaps/default/keymap.c @@ -14,7 +14,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * │NaN│App│GUI│Alt│ * └───┴───┴───┴───┘ */ - [0] = LAYOUT_ai_5x4_1( + [0] = LAYOUT( KC_TAB, KC_Q, KC_W, KC_E, KC_BSPC, KC_R, KC_T, KC_A, KC_LSFT, KC_S, KC_D, KC_F, diff --git a/keyboards/b_sides/rev41lp/info.json b/keyboards/b_sides/rev41lp/info.json index fb5b0c17c13b..da3eb62a2f65 100644 --- a/keyboards/b_sides/rev41lp/info.json +++ b/keyboards/b_sides/rev41lp/info.json @@ -8,8 +8,11 @@ "pid": "0x5F10", "device_version": "0.0.1" }, + "layout_aliases": { + "LAYOUT_rev41lp": "LAYOUT" + }, "layouts": { - "LAYOUT_rev41lp": { + "LAYOUT": { "layout": [ {"label":"K00", "x":0, "y":0.54}, {"label":"K01", "x":1, "y":0.36}, diff --git a/keyboards/b_sides/rev41lp/keymaps/default/keymap.c b/keyboards/b_sides/rev41lp/keymaps/default/keymap.c index 8ee9053c122a..a873433953cb 100644 --- a/keyboards/b_sides/rev41lp/keymaps/default/keymap.c +++ b/keyboards/b_sides/rev41lp/keymaps/default/keymap.c @@ -17,28 +17,28 @@ along with this program. If not, see . #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_rev41lp( + [0] = 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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_ENT), KC_LALT, MO(1), KC_SPC, MO(2), KC_LGUI ), - [1] = LAYOUT_rev41lp( + [1] = LAYOUT( _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_GRV, KC_TILD, _______, KC_ESC, KC_LGUI, KC_LALT, KC_CAPS, KC_DQUO, KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_PSCR, RSFT_T(KC_SPC), _______, _______, KC_ENT, MO(3), _______ ), - [2] = LAYOUT_rev41lp( + [2] = LAYOUT( _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, KC_ESC, KC_RGUI, KC_RALT, KC_CAPS, KC_QUOT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, MO(3), KC_BSPC, _______, _______ ), - [3] = LAYOUT_rev41lp( + [3] = LAYOUT( XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BL_DOWN, BL_TOGG, BL_BRTG, BL_UP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/keyboards/b_sides/rev41lp/rev41lp.h b/keyboards/b_sides/rev41lp/rev41lp.h index 47afd295a070..5716d316b218 100644 --- a/keyboards/b_sides/rev41lp/rev41lp.h +++ b/keyboards/b_sides/rev41lp/rev41lp.h @@ -18,7 +18,7 @@ along with this program. If not, see . #include "quantum.h" -#define LAYOUT_rev41lp( \ +#define LAYOUT( \ K00, K01, K02, K03, K04, K05, K10, K11, K12, K13, K14, K15, \ K20, K21, K22, K23, K24, K25, K30, K31, K32, K33, K34, K35, \ K40, K41, K42, K43, K44, K45, K50, K51, K52, K53, K54, K55, \ diff --git a/keyboards/chord/zero/info.json b/keyboards/chord/zero/info.json index c49a8a3c2f22..9b7c87e1b62a 100644 --- a/keyboards/chord/zero/info.json +++ b/keyboards/chord/zero/info.json @@ -24,8 +24,11 @@ "cols": ["GP22", "GP9", "GP21", "GP11", "GP19", "GP12"], "rows": ["GP26", "GP20", "GP18", "GP17", "GP7", "GP10", "GP13", "GP14"] }, + "layout_aliases": { + "LAYOUT_zero": "LAYOUT" + }, "layouts": { - "LAYOUT_zero": { + "LAYOUT": { "layout": [ { "matrix": [0, 0], "y": 0, "x": 0 }, { "matrix": [0, 1], "y": 0, "x": 1 }, diff --git a/keyboards/chord/zero/keymaps/default/keymap.c b/keyboards/chord/zero/keymaps/default/keymap.c index a394893e1b8a..0469288fd41d 100644 --- a/keyboards/chord/zero/keymaps/default/keymap.c +++ b/keyboards/chord/zero/keymaps/default/keymap.c @@ -5,7 +5,7 @@ #include "keymap_steno.h" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_zero( + [0] = LAYOUT( STN_FN, STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, STN_ST3, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR, STN_PWR, STN_S2, STN_KL, STN_WL, STN_RL, STN_ST2, STN_ST4, STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR, STN_N1, STN_A, STN_O, STN_E, STN_U, STN_N7 diff --git a/keyboards/crbn/crbn.h b/keyboards/crbn/crbn.h index 54ff00707405..26a186473bbc 100644 --- a/keyboards/crbn/crbn.h +++ b/keyboards/crbn/crbn.h @@ -17,7 +17,19 @@ #include "quantum.h" -#define LAYOUT_crbn_1x2u( \ +#define LAYOUT_ortho_4x12( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311 } \ +} + +#define LAYOUT_planck_mit( \ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, \ @@ -29,7 +41,7 @@ { K300, K301, K302, K303, K304, K305, KC_NO, K307, K308, K309, K310, K311 } \ } -#define LAYOUT_crbn_2x2u( \ +#define LAYOUT_2x2u( \ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, \ diff --git a/keyboards/crbn/info.json b/keyboards/crbn/info.json index 0ae3a7243492..9c6894a74db5 100644 --- a/keyboards/crbn/info.json +++ b/keyboards/crbn/info.json @@ -8,8 +8,64 @@ "pid": "0x0002", "device_version": "0.0.1" }, + "community_layouts": [ "ortho_4x12", "planck_mit" ], + "layout_aliases": { + "LAYOUT_crbn_1x2u": "LAYOUT_1x2u", + "LAYOUT_crbn_2x2u": "LAYOUT_2x2u" + }, "layouts": { - "LAYOUT_crbn_1x2u": { + "LAYOUT_ortho_4x12": { + "layout": [ + { "w": 1, "x": 0, "y": 0 }, + { "w": 1, "x": 1, "y": 0 }, + { "w": 1, "x": 2, "y": 0 }, + { "w": 1, "x": 3, "y": 0 }, + { "w": 1, "x": 4, "y": 0 }, + { "w": 1, "x": 5, "y": 0 }, + { "w": 1, "x": 6, "y": 0 }, + { "w": 1, "x": 7, "y": 0 }, + { "w": 1, "x": 8, "y": 0 }, + { "w": 1, "x": 9, "y": 0 }, + { "w": 1, "x": 10, "y": 0 }, + { "w": 1, "x": 11, "y": 0 }, + { "w": 1, "x": 0, "y": 1 }, + { "w": 1, "x": 1, "y": 1 }, + { "w": 1, "x": 2, "y": 1 }, + { "w": 1, "x": 3, "y": 1 }, + { "w": 1, "x": 4, "y": 1 }, + { "w": 1, "x": 5, "y": 1 }, + { "w": 1, "x": 6, "y": 1 }, + { "w": 1, "x": 7, "y": 1 }, + { "w": 1, "x": 8, "y": 1 }, + { "w": 1, "x": 9, "y": 1 }, + { "w": 1, "x": 10, "y": 1 }, + { "w": 1, "x": 11, "y": 1 }, + { "w": 1, "x": 0, "y": 2 }, + { "w": 1, "x": 1, "y": 2 }, + { "w": 1, "x": 2, "y": 2 }, + { "w": 1, "x": 3, "y": 2 }, + { "w": 1, "x": 4, "y": 2 }, + { "w": 1, "x": 5, "y": 2 }, + { "w": 1, "x": 6, "y": 2 }, + { "w": 1, "x": 7, "y": 2 }, + { "w": 1, "x": 8, "y": 2 }, + { "w": 1, "x": 9, "y": 2 }, + { "w": 1, "x": 10, "y": 2 }, + { "w": 1, "x": 11, "y": 2 }, + { "w": 1, "x": 0, "y": 3 }, + { "w": 1, "x": 1, "y": 3 }, + { "w": 1, "x": 2, "y": 3 }, + { "w": 1, "x": 3, "y": 3 }, + { "w": 1, "x": 4, "y": 3 }, + { "w": 1, "x": 5, "y": 3 }, + { "w": 1, "x": 6, "y": 3 }, + { "w": 1, "x": 7, "y": 3 }, + { "w": 1, "x": 8, "y": 3 }, + { "w": 1, "x": 9, "y": 3 }, + { "w": 1, "x": 10, "y": 3 }, + { "w": 1, "x": 11, "y": 3 } ] + }, + "LAYOUT_planck_mit": { "layout": [ { "w": 1, "x": 0, "y": 0 }, { "w": 1, "x": 1, "y": 0 }, @@ -59,7 +115,7 @@ { "w": 1, "x": 10, "y": 3 }, { "w": 1, "x": 11, "y": 3 } ] }, - "LAYOUT_crbn_2x2u": { + "LAYOUT_2x2u": { "layout": [ { "w": 1, "x": 0, "y": 0 }, { "w": 1, "x": 1, "y": 0 }, diff --git a/keyboards/crbn/keymaps/default/keymap.c b/keyboards/crbn/keymaps/default/keymap.c index f05cadcdd702..06b8616ed9a9 100644 --- a/keyboards/crbn/keymaps/default/keymap.c +++ b/keyboards/crbn/keymaps/default/keymap.c @@ -18,28 +18,28 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - LAYOUT_crbn_1x2u( + LAYOUT_ortho_4x12( KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, - MO(3), KC_LCTL, KC_LALT, KC_LGUI, MO(1), KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT), + MO(3), KC_LCTL, KC_LALT, KC_LGUI, MO(1), KC_SPC, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT), - LAYOUT_crbn_1x2u( + 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_TRNS, KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, LSFT(KC_NUHS), LSFT(KC_NUBS), KC_HOME, KC_END, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY), - LAYOUT_crbn_1x2u( + 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_TRNS, KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY), - LAYOUT_crbn_1x2u( + LAYOUT_ortho_4x12( QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), }; diff --git a/keyboards/crbn/keymaps/via/keymap.c b/keyboards/crbn/keymaps/via/keymap.c index 1f7533c33c22..b5a77b93416d 100644 --- a/keyboards/crbn/keymaps/via/keymap.c +++ b/keyboards/crbn/keymaps/via/keymap.c @@ -18,28 +18,28 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - LAYOUT_crbn_1x2u( - KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, - MO(3), KC_LCTL, KC_LALT, KC_LGUI, MO(1), KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT), + LAYOUT_ortho_4x12( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + MO(3), KC_LCTL, KC_LALT, KC_LGUI, MO(1), KC_SPC, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT), - LAYOUT_crbn_1x2u( + 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_TRNS, KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, LSFT(KC_NUHS), LSFT(KC_NUBS), KC_HOME, KC_END, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY), - LAYOUT_crbn_1x2u( + 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_TRNS, KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY), - LAYOUT_crbn_1x2u( - QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + LAYOUT_ortho_4x12( + QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), }; diff --git a/keyboards/dm9records/plaid/info.json b/keyboards/dm9records/plaid/info.json index f4c6ae528197..ebb2e3aefd82 100644 --- a/keyboards/dm9records/plaid/info.json +++ b/keyboards/dm9records/plaid/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.2" }, "layouts": { - "LAYOUT_plaid_mit": { + "LAYOUT_planck_mit": { "layout": [ { "w": 1, "x": 0, "y": 0 }, { "w": 1, "x": 1, "y": 0 }, @@ -59,7 +59,7 @@ { "w": 1, "x": 10, "y": 3 }, { "w": 1, "x": 11, "y": 3 } ] }, - "LAYOUT_plaid_grid": { + "LAYOUT_ortho_4x12": { "layout": [ { "w": 1, "x": 0, "y": 0 }, { "w": 1, "x": 1, "y": 0 }, diff --git a/keyboards/dm9records/plaid/keymaps/default/keymap.c b/keyboards/dm9records/plaid/keymaps/default/keymap.c index 1c58053eba01..419f2590cafa 100644 --- a/keyboards/dm9records/plaid/keymaps/default/keymap.c +++ b/keyboards/dm9records/plaid/keymaps/default/keymap.c @@ -83,7 +83,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Ctrl | RAlt | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_QWERTY] = LAYOUT_plaid_grid( +[_QWERTY] = 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 , @@ -101,7 +101,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Ctrl | RAlt | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_COLEMAK] = LAYOUT_plaid_grid( +[_COLEMAK] = LAYOUT_ortho_4x12( KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , @@ -119,7 +119,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Ctrl | RAlt | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_DVORAK] = LAYOUT_plaid_grid( +[_DVORAK] = LAYOUT_ortho_4x12( KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT , @@ -137,7 +137,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ -[_LOWER] = LAYOUT_plaid_grid( +[_LOWER] = 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, _______, @@ -155,7 +155,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ -[_RAISE] = LAYOUT_plaid_grid( +[_RAISE] = LAYOUT_ortho_4x12( KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_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, _______, @@ -174,7 +174,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ -[_PLOVER] = LAYOUT_plaid_grid( +[_PLOVER] = LAYOUT_ortho_4x12( KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 , XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, @@ -192,7 +192,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ -[_ADJUST] = LAYOUT_plaid_grid( +[_ADJUST] = LAYOUT_ortho_4x12( QK_BOOT,LED_1, LED_2, LED_3, LED_4, LED_5,LED_6, LED_7, LED_8, LED_9, LED_0,KC_DEL , _______, _______, MU_NEXT, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______, _______, AU_PREV, AU_NEXT, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, diff --git a/keyboards/dm9records/plaid/keymaps/via/keymap.c b/keyboards/dm9records/plaid/keymaps/via/keymap.c index 7bb28c07edd4..d326bac8ed0b 100644 --- a/keyboards/dm9records/plaid/keymaps/via/keymap.c +++ b/keyboards/dm9records/plaid/keymaps/via/keymap.c @@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Ctrl | RAlt | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[0] = LAYOUT_plaid_grid( +[0] = LAYOUT_ortho_4x12( KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , @@ -50,7 +50,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ -[1] = LAYOUT_plaid_grid( +[1] = LAYOUT_ortho_4x12( KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, @@ -68,7 +68,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ -[2] = LAYOUT_plaid_grid( +[2] = LAYOUT_ortho_4x12( KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, @@ -86,7 +86,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ -[3] = LAYOUT_plaid_grid( +[3] = LAYOUT_ortho_4x12( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/dm9records/plaid/plaid.h b/keyboards/dm9records/plaid/plaid.h index 0b1c83761948..2969967884ef 100644 --- a/keyboards/dm9records/plaid/plaid.h +++ b/keyboards/dm9records/plaid/plaid.h @@ -18,7 +18,7 @@ #include "quantum.h" -#define LAYOUT_plaid_mit( \ +#define LAYOUT_planck_mit( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ @@ -31,7 +31,7 @@ { k30, k31, k32, k33, k34, k35, k35, k37, k38, k39, k3a, k3b } \ } -#define LAYOUT_plaid_grid( \ +#define LAYOUT_ortho_4x12( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ @@ -44,9 +44,9 @@ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b } \ } -#define LAYOUT LAYOUT_plaid_grid -#define LAYOUT_ortho_4x12 LAYOUT_plaid_grid -#define LAYOUT_planck_mit LAYOUT_plaid_mit +#define LAYOUT LAYOUT_ortho_4x12 +#define LAYOUT_plaid_grid LAYOUT_ortho_4x12 +#define LAYOUT_plaid_mit LAYOUT_planck_mit #define LED_RED C5 #define LED_GREEN C4 diff --git a/keyboards/flehrad/numbrero/info.json b/keyboards/flehrad/numbrero/info.json index 30c93d035cf8..b900919920dd 100644 --- a/keyboards/flehrad/numbrero/info.json +++ b/keyboards/flehrad/numbrero/info.json @@ -8,8 +8,12 @@ "pid": "0x6060", "device_version": "0.0.1" }, + "layout_aliases": { + "LAYOUT_numbrero_numpad": "LAYOUT_numpad", + "LAYOUT_numbrero_ortho": "LAYOUT_ortho" + }, "layouts": { - "LAYOUT_numbrero_numpad": { + "LAYOUT_numpad": { "layout": [ {"label":"K00", "x":0, "y":0}, {"label":"K01", "x":1, "y":0}, @@ -34,7 +38,7 @@ {"label":"K34", "x":4, "y":3, "h":2} ] }, - "LAYOUT_numbrero_ortho": { + "LAYOUT_ortho": { "layout": [ {"label":"K00", "x":0, "y":0}, {"label":"K01", "x":1, "y":0}, diff --git a/keyboards/flehrad/numbrero/keymaps/default/keymap.c b/keyboards/flehrad/numbrero/keymaps/default/keymap.c index 018839f779c6..9546c946daad 100644 --- a/keyboards/flehrad/numbrero/keymaps/default/keymap.c +++ b/keyboards/flehrad/numbrero/keymaps/default/keymap.c @@ -2,14 +2,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - LAYOUT_numbrero_numpad( + LAYOUT_numpad( KC_TRNS, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_P0, KC_PDOT, KC_PENT), - LAYOUT_numbrero_ortho( + LAYOUT_ortho( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/flehrad/numbrero/numbrero.h b/keyboards/flehrad/numbrero/numbrero.h index c72e65407884..e4de28bf96d9 100644 --- a/keyboards/flehrad/numbrero/numbrero.h +++ b/keyboards/flehrad/numbrero/numbrero.h @@ -2,7 +2,7 @@ #include "quantum.h" -#define LAYOUT_numbrero_numpad( \ +#define LAYOUT_numpad( \ K00, K01, K02, K03, K04, \ K10, K11, K12, K13, \ K20, K21, K22, K23, K14, \ @@ -15,7 +15,7 @@ { K30, K31, K32, K33, K34 }, \ { KC_NO, K41, KC_NO, K43, KC_NO } \ } -#define LAYOUT_numbrero_ortho(\ +#define LAYOUT_ortho(\ K00, K01, K02, K03, K04, \ K10, K11, K12, K13, K14, \ K20, K21, K22, K23, K24, \ diff --git a/keyboards/fungo/keymaps/default/keymap.c b/keyboards/fungo/keymaps/default/keymap.c index a0d2058ed0ac..6dc4e97f1b11 100644 --- a/keyboards/fungo/keymaps/default/keymap.c +++ b/keyboards/fungo/keymaps/default/keymap.c @@ -69,7 +69,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `------------------------------------------------' ------------------------------------------------' */ - [BASE] = LAYOUT_fungo_split_num( + [BASE] = LAYOUT( KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC, KC_BSPC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NO, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_MINS, KC_EQL, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_TAB, KC_NO, KC_A, SFCT_S, CT_D, SF_F, KC_G, KC_LBRC, KC_RBRC, KC_H, MTC_J, MTC_K, KC_L, KC_SCLN, KC_NO, @@ -91,7 +91,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `------------------------------------------------' ------------------------------------------------' */ - [F3LAY] = LAYOUT_fungo_split_num( + [F3LAY] = LAYOUT( KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_ESC, KC_BSPC, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12, KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_CAPS, KC_CAPS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TAB, KC_NO, KC_NO, SFCTLNO, KC_LCTL, KC_LSFT, KC_PAUS, KC_PSCR, KC_BSPC, KC_DEL, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_NO, @@ -100,7 +100,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), - [F4LAY] = LAYOUT_fungo_split_num( + [F4LAY] = LAYOUT( KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_ESC, KC_BSPC, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12, KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_CAPS, KC_CAPS, KC_DEL, KC_HOME, KC_UP, KC_END, KC_NO, KC_TAB, KC_NO, KC_NO, SFCTLNO, KC_LCTL, KC_LSFT, KC_PAUS, KC_PSCR, KC_BSPC, KC_INS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_NO, KC_NO, @@ -109,7 +109,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), /* - [TEST] = LAYOUT_fungo_split_num( + [TEST] = LAYOUT( KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC, KC_BSPC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NO, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_MINS, KC_EQL, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_TAB, KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LBRC, KC_RBRC, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_RSFT, @@ -120,7 +120,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //--------------------------------------------------------NEW----------------------------------------------- //SAM1을 기반으로 새로운 모드 - [SAM1] = LAYOUT_fungo_split_num( + [SAM1] = LAYOUT( KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC, KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NO, KC_NO, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_BSPC, KC_BSPC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_NO, KC_TAB, KC_A, SFCT_S, CT_D, SF_F, KC_G, KC_CAPS, KC_CAPS, KC_H, MTC_J, MTC_K, KC_L, KC_SCLN, KC_TAB, @@ -128,7 +128,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_NO, TT(SAM1), KC_NO, KC_LALT, KC_SPC, TT(SAM2), KC_ENT, MO(SAM4), KC_NO, KC_ENT, TT(SAM3), KC_SPC, KC_RALT, KC_NO, TT(SAM1), KC_NO ), - [SAM3] = LAYOUT_fungo_split_num( + [SAM3] = LAYOUT( KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_ESC, KC_ESC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_BSPC, KC_BSPC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_NO, KC_TAB, KC_6, KC_7, KC_8, MTLC_9, KC_0, KC_CAPS, KC_CAPS, KC_6, MTC_7, MTC_8, KC_9, KC_0, KC_TAB, @@ -136,14 +136,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_NO, TT(SAM1), KC_NO, KC_LALT, KC_SPC, TT(SAM2), KC_ENT, MO(SAM4), KC_NO, KC_ENT, TT(SAM3), KC_SPC, KC_RALT, KC_NO, TT(SAM1), KC_NO ), - [SAM2] = LAYOUT_fungo_split_num( + [SAM2] = LAYOUT( KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_ESC, KC_ESC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, KC_BSPC, KC_DEL, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_NO, KC_TAB, KC_F6, MTC_F7, MTC_F8, MTC_F9, KC_F10, KC_F12, KC_CAPS, KC_INS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDN, KC_TAB, KC_LCTL, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), KC_NO, KC_NO, TT(SAM3), KC_NO, KC_NO, TT(SAM2), KC_NO, KC_BSLS, KC_QUOT, KC_LBRC, KC_RBRC, KC_GRV, KC_RCTL, KC_NO, TT(SAM1), KC_NO, KC_LALT, KC_SPC, TT(SAM2), KC_ENT, MO(SAM4), KC_NO, KC_ENT, TT(SAM3), KC_SPC, KC_RALT, KC_NO, TT(SAM1), KC_NO ), - [SAM4] = LAYOUT_fungo_split_num( + [SAM4] = LAYOUT( KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_ESC, KC_ESC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, KC_BSPC, KC_ACL0, KC_BTN1, KC_MS_U, KC_BTN2, KC_NO, KC_NO, KC_TAB, KC_F6, MTC_F7, MTC_F8, MTC_F9, KC_F10, KC_F12, KC_CAPS, KC_ACL1, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, KC_TAB, diff --git a/keyboards/fungo/rev1/info.json b/keyboards/fungo/rev1/info.json index cb5b7c699194..993e91a63107 100644 --- a/keyboards/fungo/rev1/info.json +++ b/keyboards/fungo/rev1/info.json @@ -8,8 +8,11 @@ "pid": "0x1233", "device_version": "0.0.1" }, + "layout_aliases": { + "LAYOUT_fungo_split_num": "LAYOUT" + }, "layouts": { - "LAYOUT_fungo_split_num": { + "LAYOUT": { "layout": [ {"x":0, "y":0.375}, {"x":1, "y":0.375}, diff --git a/keyboards/fungo/rev1/rev1.h b/keyboards/fungo/rev1/rev1.h index 97161482ff28..bb5fadcd9a11 100644 --- a/keyboards/fungo/rev1/rev1.h +++ b/keyboards/fungo/rev1/rev1.h @@ -19,9 +19,7 @@ #include "fungo.h" #include "quantum.h" - - -#define LAYOUT_fungo_split_num( \ +#define LAYOUT( \ L00, L01, L02, L03, L04, L05, L06, R06, R05, R04, R03, R02, R01, R00, \ L10, L11, L12, L13, L14, L15, L16, R16, R15, R14, R13, R12, R11, R10, \ L20, L21, L22, L23, L24, L25, L26, R26, R25, R24, R23, R22, R21, R20, \ @@ -42,7 +40,3 @@ { R46, R45, R44, R43, R42, R41, R40}, \ { KC_NO, KC_NO, KC_NO, KC_NO, R52, R51, R50}, \ } - - - - diff --git a/keyboards/gizmo_engineering/gk6/gk6.h b/keyboards/gizmo_engineering/gk6/gk6.h index 70c0bee4aec8..c774124b6219 100755 --- a/keyboards/gizmo_engineering/gk6/gk6.h +++ b/keyboards/gizmo_engineering/gk6/gk6.h @@ -18,7 +18,7 @@ #include "quantum.h" -#define LAYOUT_gk6_2x2u( \ +#define LAYOUT_2x2u( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ @@ -33,7 +33,7 @@ { k40, k41, k42, k43, k44, KC_NO, KC_NO, k47, k48, k49, k4a, k4b }, \ } -#define LAYOUT_gk6_1x2u( \ +#define LAYOUT_1x2u( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ diff --git a/keyboards/gizmo_engineering/gk6/info.json b/keyboards/gizmo_engineering/gk6/info.json index 8dfdfbf93baf..4573c3f5610a 100755 --- a/keyboards/gizmo_engineering/gk6/info.json +++ b/keyboards/gizmo_engineering/gk6/info.json @@ -8,8 +8,12 @@ "pid": "0x0001", "device_version": "30.3.1" }, + "layout_aliases": { + "LAYOUT_gk6_2x2u": "LAYOUT_2x2u", + "LAYOUT_gk6_1x2u": "LAYOUT_1x2u" + }, "layouts": { - "LAYOUT_gk6_2x2u": { + "LAYOUT_2x2u": { "layout": [ {"x": 0, "y": 0}, {"x": 1, "y": 0}, @@ -143,7 +147,7 @@ {"x": 11, "y": 4} ] }, - "LAYOUT_gk6_1x2u": { + "LAYOUT_1x2u": { "layout": [ {"x": 0, "y": 0}, {"x": 1, "y": 0}, diff --git a/keyboards/gizmo_engineering/gk6/keymaps/1x2u/keymap.c b/keyboards/gizmo_engineering/gk6/keymaps/1x2u/keymap.c index d1eba4e56846..b303032171a7 100755 --- a/keyboards/gizmo_engineering/gk6/keymaps/1x2u/keymap.c +++ b/keyboards/gizmo_engineering/gk6/keymaps/1x2u/keymap.c @@ -40,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Esc | GUI | Alt |Lower | Back| Space | Alt |Raise | Left | Down |Right | * `-----------------------------------------------------------------------------------' */ -[_QWERTY] = LAYOUT_gk6_1x2u( +[_QWERTY] = LAYOUT_1x2u( KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_SLSH, 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, @@ -61,7 +61,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Debug | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ -[_RAISE] = LAYOUT_gk6_1x2u( +[_RAISE] = LAYOUT_1x2u( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, _______, _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______, @@ -82,7 +82,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | PgDn | | * `-----------------------------------------------------------------------------------' */ -[_LOWER] = LAYOUT_gk6_1x2u( +[_LOWER] = LAYOUT_1x2u( KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_CAPS, KC_PSCR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_END, KC_INS, KC_MPLY, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/gizmo_engineering/gk6/keymaps/default/keymap.c b/keyboards/gizmo_engineering/gk6/keymaps/default/keymap.c index 84624ff0326a..b0e1615479cf 100755 --- a/keyboards/gizmo_engineering/gk6/keymaps/default/keymap.c +++ b/keyboards/gizmo_engineering/gk6/keymaps/default/keymap.c @@ -40,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Esc | GUI | Alt |Lower | Backspace | Space |Raise | Left | Down |Right | * `-----------------------------------------------------------------------------------' */ -[_QWERTY] = LAYOUT_gk6_2x2u( +[_QWERTY] = LAYOUT_2x2u( KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_SLSH, 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, @@ -61,7 +61,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Debug | | | | | | | | |R Alt | * `-----------------------------------------------------------------------------------' */ -[_RAISE] = LAYOUT_gk6_2x2u( +[_RAISE] = LAYOUT_2x2u( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, _______, _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______, @@ -82,7 +82,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | PgDn | | * `-----------------------------------------------------------------------------------' */ -[_LOWER] = LAYOUT_gk6_2x2u( +[_LOWER] = LAYOUT_2x2u( KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_CAPS, KC_PSCR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_END, KC_INS, KC_MPLY, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/kepler_33/proto/info.json b/keyboards/kepler_33/proto/info.json index bcf8405ecda1..c736b00970b8 100644 --- a/keyboards/kepler_33/proto/info.json +++ b/keyboards/kepler_33/proto/info.json @@ -26,7 +26,7 @@ "cols": ["A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "B6", "B10", "B9", "B8", "B7"] }, "layouts": { - "LAYOUT_proto": { + "LAYOUT": { "layout": [ {"matrix": [0, 0], "label":"Esc", "x":0, "y":0}, {"matrix": [0, 1], "label":"Q", "x":1, "y":0}, diff --git a/keyboards/kepler_33/proto/keymaps/default/keymap.c b/keyboards/kepler_33/proto/keymaps/default/keymap.c index 13eec6661d8b..1dd8c3dfa5f9 100644 --- a/keyboards/kepler_33/proto/keymaps/default/keymap.c +++ b/keyboards/kepler_33/proto/keymaps/default/keymap.c @@ -21,7 +21,7 @@ along with this program. If not, see . const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_proto( + [0] = LAYOUT( KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, MO(15), 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_BSPC, From 64c399ba3832cb4240cd25e25d382856492346d0 Mon Sep 17 00:00:00 2001 From: leah-splitkb <103112489+leah-splitkb@users.noreply.github.com> Date: Fri, 20 Jan 2023 12:22:53 +0100 Subject: [PATCH 094/139] [Keyboard] Add Kyria rev3 (#19423) --- keyboards/splitkb/kyria/config.h | 31 ++- keyboards/splitkb/kyria/info.json | 69 +---- .../splitkb/kyria/keymaps/debug/config.h | 21 ++ .../splitkb/kyria/keymaps/debug/keymap.c | 73 ++++++ .../splitkb/kyria/keymaps/debug/readme.md | 24 ++ .../splitkb/kyria/keymaps/debug/rules.mk | 8 + .../splitkb/kyria/keymaps/default/config.h | 4 +- .../splitkb/kyria/keymaps/default/rules.mk | 3 +- keyboards/splitkb/kyria/kyria.c | 7 +- keyboards/splitkb/kyria/kyria.h | 9 - keyboards/splitkb/kyria/readme.md | 15 +- keyboards/splitkb/kyria/rev1/info.json | 57 +++++ keyboards/splitkb/kyria/rev1/rules.mk | 15 +- keyboards/splitkb/kyria/rev2/info.json | 57 +++++ keyboards/splitkb/kyria/rev2/rules.mk | 14 +- keyboards/splitkb/kyria/rev3/config.h | 45 ++++ keyboards/splitkb/kyria/rev3/info.json | 241 ++++++++++++++++++ keyboards/splitkb/kyria/rev3/rev3.c | 35 +++ keyboards/splitkb/kyria/rev3/rules.mk | 2 + keyboards/splitkb/kyria/rules.mk | 22 +- 20 files changed, 627 insertions(+), 125 deletions(-) create mode 100644 keyboards/splitkb/kyria/keymaps/debug/config.h create mode 100644 keyboards/splitkb/kyria/keymaps/debug/keymap.c create mode 100644 keyboards/splitkb/kyria/keymaps/debug/readme.md create mode 100644 keyboards/splitkb/kyria/keymaps/debug/rules.mk create mode 100644 keyboards/splitkb/kyria/rev3/config.h create mode 100644 keyboards/splitkb/kyria/rev3/info.json create mode 100644 keyboards/splitkb/kyria/rev3/rev3.c create mode 100644 keyboards/splitkb/kyria/rev3/rules.mk diff --git a/keyboards/splitkb/kyria/config.h b/keyboards/splitkb/kyria/config.h index 2e1e190bd7af..6216e2e40c0b 100644 --- a/keyboards/splitkb/kyria/config.h +++ b/keyboards/splitkb/kyria/config.h @@ -1,18 +1,17 @@ -/* -Copyright 2019 Thomas Baart -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ +/* Copyright 2022 splitkb.com + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ #pragma once - -#include "config_common.h" - diff --git a/keyboards/splitkb/kyria/info.json b/keyboards/splitkb/kyria/info.json index 2bc52803b0f0..f70e8e3bb223 100644 --- a/keyboards/splitkb/kyria/info.json +++ b/keyboards/splitkb/kyria/info.json @@ -1,65 +1,16 @@ { - "manufacturer": "splitkb", - "url": "https://splitkb.com", - "maintainer": "splitkb.com", + "manufacturer": "splitkb.com", + "url": "https://splitkb.com/products/kyria-pcb-kit", + "maintainer": "splitkb", "usb": { "vid": "0x8D1D", - "pid": "0x9D9D" + "device_version": "1.0.0" }, - "layouts": { - "LAYOUT": { - "layout": [ - {"x":0, "y":0.75}, - {"x":1, "y":0.75}, - {"x":2, "y":0.25}, - {"x":3, "y":0}, - {"x":4, "y":0.25}, - {"x":5, "y":0.5}, - {"x":10.5, "y":0.5}, - {"x":11.5, "y":0.25}, - {"x":12.5, "y":0}, - {"x":13.5, "y":0.25}, - {"x":14.5, "y":0.75}, - {"x":15.5, "y":0.75}, - {"x":0, "y":1.75}, - {"x":1, "y":1.75}, - {"x":2, "y":1.25}, - {"x":3, "y":1}, - {"x":4, "y":1.25}, - {"x":5, "y":1.5}, - {"x":10.5, "y":1.5}, - {"x":11.5, "y":1.25}, - {"x":12.5, "y":1}, - {"x":13.5, "y":1.25}, - {"x":14.5, "y":1.75}, - {"x":15.5, "y":1.75}, - {"x":0, "y":2.75}, - {"x":1, "y":2.75}, - {"x":2, "y":2.25}, - {"x":3, "y":2}, - {"x":4, "y":2.25}, - {"x":5, "y":2.5}, - {"x":6, "y":3}, - {"x":7, "y":3.25}, - {"x":8.5, "y":3.25}, - {"x":9.5, "y":3}, - {"x":10.5, "y":2.5}, - {"x":11.5, "y":2.25}, - {"x":12.5, "y":2}, - {"x":13.5, "y":2.25}, - {"x":14.5, "y":2.75}, - {"x":15.5, "y":2.75}, - {"x":2.5, "y":3.25}, - {"x":3.5, "y":3.25}, - {"x":4.5, "y":3.5}, - {"x":5.5, "y":4}, - {"x":6.5, "y":4.25}, - {"x":9, "y":4.25}, - {"x":10, "y":4}, - {"x":11, "y":3.5}, - {"x":12, "y":3.25}, - {"x":13, "y":3.25} - ] - } + "development_board": "elite_c", + "split": { + "enabled": true + }, + "build": { + "lto": true } } diff --git a/keyboards/splitkb/kyria/keymaps/debug/config.h b/keyboards/splitkb/kyria/keymaps/debug/config.h new file mode 100644 index 000000000000..9e639dbc35ff --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/debug/config.h @@ -0,0 +1,21 @@ +/* Copyright 2022 splitkb.com + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#ifdef RGBLIGHT_ENABLE +# define RGBLIGHT_EFFECT_BREATHING +#endif diff --git a/keyboards/splitkb/kyria/keymaps/debug/keymap.c b/keyboards/splitkb/kyria/keymaps/debug/keymap.c new file mode 100644 index 000000000000..9ca059e3eef8 --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/debug/keymap.c @@ -0,0 +1,73 @@ +/* Copyright 2022 splitkb.com + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum layers { + _DEFAULT = 0, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_DEFAULT] = LAYOUT( + KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, S(KC_F), S(KC_E), S(KC_D), S(KC_C), S(KC_B), S(KC_A), + KC_G, KC_H, KC_I, KC_J, KC_K, KC_L, S(KC_L), S(KC_K), S(KC_J), S(KC_I), S(KC_H), S(KC_G), + KC_M, KC_N, KC_O, KC_P, KC_Q, KC_R, KC_S, KC_T, S(KC_T), S(KC_S), S(KC_R), S(KC_Q), S(KC_P), S(KC_O), S(KC_N), S(KC_M), + KC_U, KC_V, KC_W, KC_X, KC_Y, S(KC_Y), S(KC_X), S(KC_W), S(KC_V), S(KC_U) + ) +}; + +#ifdef RGBLIGHT_ENABLE +void keyboard_post_init_user(void) { + rgblight_enable_noeeprom(); // enables RGB, without saving settings + rgblight_sethsv_noeeprom(HSV_RED); // sets the color to red without saving + rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING + 3); // sets mode to Fast breathing without saving +} +#endif + +#ifdef ENCODER_ENABLE +bool encoder_update_user(uint8_t index, bool clockwise) { + // 0 is left-half encoder, + // 1 is right-half encoder + if (index == 0) { + tap_code(KC_0); + } else if (index == 1) { + tap_code(KC_1); + } + + if (clockwise) { + tap_code16(KC_PLUS); + } else { + tap_code(KC_MINUS); + } + + return false; +} +#endif + +#ifdef OLED_ENABLE +bool oled_task_user(void) { + // A 128x64 OLED rotated 180 degrees is 21 characters wide and 8 characters tall + // This example string should fill that neatly + const char *text = PSTR("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789!@#$%^&*()[]{}-=_+?/,.|abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789!@#$%^&*()[]{}-=_+?/,.|"); + + if (is_keyboard_master()) { + oled_write_P(text, false); + } else { + oled_write_P(text, false); + } + return false; +} +#endif diff --git a/keyboards/splitkb/kyria/keymaps/debug/readme.md b/keyboards/splitkb/kyria/keymaps/debug/readme.md new file mode 100644 index 000000000000..1373ad02d9fb --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/debug/readme.md @@ -0,0 +1,24 @@ +# Kyria's Debug Keymap + +To make debugging your build as easy as possible, we have provided a special debugging keymap. It is not intended to actually type on, it is just here to make sure that your hardware is working correctly. + +## Keys + +![Keys](https://i.imgur.com/pmPBYlkh.png) + +The left side uses lowercase letters, the right side uses uppercase ones. + +## Encoders + +Encoders output a number of 0 or 1, depending on the installed position. +These correspond to the index used for custom encoder code. + +The number is followed by either a `+` or a `-`, depending on the direction turned. + +## LEDs + +Both underglow and per-key RGB should be fading between red and off. + +## OLEDs + +Both the primary and secondary side should be filled with characters. diff --git a/keyboards/splitkb/kyria/keymaps/debug/rules.mk b/keyboards/splitkb/kyria/keymaps/debug/rules.mk new file mode 100644 index 000000000000..e1b414f5c129 --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/debug/rules.mk @@ -0,0 +1,8 @@ +# NOTE: These are already enabled by default at the revision level +#ENCODER_ENABLE = yes +#OLED_ENABLE = yes + +# RGB Matrix is enabled at the revision level, +# while we use the regular RGB underglow for testing +RGB_MATRIX_ENABLE = no +RGBLIGHT_ENABLE = yes diff --git a/keyboards/splitkb/kyria/keymaps/default/config.h b/keyboards/splitkb/kyria/keymaps/default/config.h index 11c2acc40d3a..00be07e2fa93 100644 --- a/keyboards/splitkb/kyria/keymaps/default/config.h +++ b/keyboards/splitkb/kyria/keymaps/default/config.h @@ -30,7 +30,9 @@ # define RGBLIGHT_HUE_STEP 8 # define RGBLIGHT_SAT_STEP 8 # define RGBLIGHT_VAL_STEP 8 -# define RGBLIGHT_LIMIT_VAL 150 +# ifndef RGBLIGHT_LIMIT_VAL +# define RGBLIGHT_LIMIT_VAL 150 +# endif #endif // Lets you roll mod-tap keys diff --git a/keyboards/splitkb/kyria/keymaps/default/rules.mk b/keyboards/splitkb/kyria/keymaps/default/rules.mk index 35f8ec90c6f7..830107351108 100644 --- a/keyboards/splitkb/kyria/keymaps/default/rules.mk +++ b/keyboards/splitkb/kyria/keymaps/default/rules.mk @@ -1,4 +1,5 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enables the use of OLED displays +OLED_DRIVER = SSD1306 # Enables the use of OLED displays ENCODER_ENABLE = yes # Enables the use of one or more encoders +RGB_MATRIX_ENABLE = no # Disable keyboard RGB matrix, as it is enabled by default on rev3 RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow diff --git a/keyboards/splitkb/kyria/kyria.c b/keyboards/splitkb/kyria/kyria.c index 9bc3b2068a60..df4e5aa374c2 100644 --- a/keyboards/splitkb/kyria/kyria.c +++ b/keyboards/splitkb/kyria/kyria.c @@ -1,4 +1,4 @@ -/* Copyright 2019 Thomas Baart +/* Copyright 2022 splitkb.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -13,7 +13,8 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -#include "kyria.h" + +#include "quantum.h" #ifdef OLED_ENABLE oled_rotation_t oled_init_kb(oled_rotation_t rotation) { @@ -39,6 +40,8 @@ bool oled_task_kb(void) { oled_write_P(PSTR("rev1\n\n"), false); #elif defined(KEYBOARD_splitkb_kyria_rev2) oled_write_P(PSTR("rev2\n\n"), false); +#elif defined(KEYBOARD_splitkb_kyria_rev3) + oled_write_P(PSTR("rev3\n\n"), false); #endif // Host Keyboard Layer Status oled_write_P(PSTR("Layer: "), false); diff --git a/keyboards/splitkb/kyria/kyria.h b/keyboards/splitkb/kyria/kyria.h index 984a83897fa3..9018220eba6a 100644 --- a/keyboards/splitkb/kyria/kyria.h +++ b/keyboards/splitkb/kyria/kyria.h @@ -23,12 +23,3 @@ #if defined(KEYBOARD_splitkb_kyria_rev2) # include "rev2.h" #endif - -/* This a shortcut to help you visually see your layout. - * - * The first section contains all of the arguments representing the physical - * layout of the board and position of the keys. - * - * The second converts the arguments into a two-dimensional array which - * represents the switch matrix. - */ diff --git a/keyboards/splitkb/kyria/readme.md b/keyboards/splitkb/kyria/readme.md index 32e6ae5f8e66..de0bd0ad7036 100644 --- a/keyboards/splitkb/kyria/readme.md +++ b/keyboards/splitkb/kyria/readme.md @@ -4,26 +4,25 @@ An ergonomical 40% split keyboard -Keyboard Maintainer: [splitkb.com](https://github.com/splitkb) -Hardware Supported: Pro Micro 5V/16MHz and compatible. -Hardware Availability: [splitkb.com](https://splitkb.com) and partners. +* Keyboard Maintainer: [splitkb.com](https://github.com/splitkb) +* Hardware Supported: Pro Micro 5V/16MHz and compatible. +* Hardware Availability: [splitkb.com](https://splitkb.com/products/kyria-pcb-kit) Make example for this keyboard (after setting up your build environment): - make splitkb/kyria/rev2:default - make splitkb/kyria/rev2/proton_c:default + make splitkb/kyria/rev3:default Example of flashing this keyboard: - make splitkb/kyria/rev2:default:flash + make splitkb/kyria/rev3:default:flash -Replace "rev2" with "rev1" if you have a Kyria of revision 1.4 or below. +Replace "rev3" with "rev2" if you have a Kyria of revision 2.x, or "rev1" if you have a Kyria of revision 1.4 or below. Not sure what revision yours is? It is printed on the outer lower edge of the PCB! As a rule of thumb, all Kyrias sold after January 1st 2022 are revision 2.x. 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 the Kyria can be found at [docs.splitkb.com](https://docs.splitkb.com/hc/en-us/articles/360010552059-Kyria-Build-Guide-Introduction). +A build guide for the Kyria can be found at [docs.splitkb.com](https://docs.splitkb.com/hc/en-us/categories/360002241559-Build-Guides). For revision 3.x you want to use the [Aurora build guide](https://docs.splitkb.com/hc/en-us/articles/6269789921564-Aurora-Build-Guide-1-Introduction), for revision 2.x and below you want to use the [Kyria-specific guide](https://docs.splitkb.com/hc/en-us/articles/360010552059-Kyria-Build-Guide-Introduction). ## Proton C Conversion Guide diff --git a/keyboards/splitkb/kyria/rev1/info.json b/keyboards/splitkb/kyria/rev1/info.json index 8e34af43f55e..86006546c790 100644 --- a/keyboards/splitkb/kyria/rev1/info.json +++ b/keyboards/splitkb/kyria/rev1/info.json @@ -1,6 +1,63 @@ { "keyboard_name": "Kyria rev1", "usb": { + "pid": "0x9D9D", "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"x":0, "y":0.75}, + {"x":1, "y":0.75}, + {"x":2, "y":0.25}, + {"x":3, "y":0}, + {"x":4, "y":0.25}, + {"x":5, "y":0.5}, + {"x":10.5, "y":0.5}, + {"x":11.5, "y":0.25}, + {"x":12.5, "y":0}, + {"x":13.5, "y":0.25}, + {"x":14.5, "y":0.75}, + {"x":15.5, "y":0.75}, + {"x":0, "y":1.75}, + {"x":1, "y":1.75}, + {"x":2, "y":1.25}, + {"x":3, "y":1}, + {"x":4, "y":1.25}, + {"x":5, "y":1.5}, + {"x":10.5, "y":1.5}, + {"x":11.5, "y":1.25}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1.25}, + {"x":14.5, "y":1.75}, + {"x":15.5, "y":1.75}, + {"x":0, "y":2.75}, + {"x":1, "y":2.75}, + {"x":2, "y":2.25}, + {"x":3, "y":2}, + {"x":4, "y":2.25}, + {"x":5, "y":2.5}, + {"x":6, "y":3}, + {"x":7, "y":3.25}, + {"x":8.5, "y":3.25}, + {"x":9.5, "y":3}, + {"x":10.5, "y":2.5}, + {"x":11.5, "y":2.25}, + {"x":12.5, "y":2}, + {"x":13.5, "y":2.25}, + {"x":14.5, "y":2.75}, + {"x":15.5, "y":2.75}, + {"x":2.5, "y":3.25}, + {"x":3.5, "y":3.25}, + {"x":4.5, "y":3.5}, + {"x":5.5, "y":4}, + {"x":6.5, "y":4.25}, + {"x":9, "y":4.25}, + {"x":10, "y":4}, + {"x":11, "y":3.5}, + {"x":12, "y":3.25}, + {"x":13, "y":3.25} + ] + } } } diff --git a/keyboards/splitkb/kyria/rev1/rules.mk b/keyboards/splitkb/kyria/rev1/rules.mk index e7d6763fcd36..cb26f6210d94 100644 --- a/keyboards/splitkb/kyria/rev1/rules.mk +++ b/keyboards/splitkb/kyria/rev1/rules.mk @@ -1,7 +1,14 @@ -OLED_ENABLE = yes -ENCODER_ENABLE = yes # ENables the use of one or more encoders +BOOTMAGIC_ENABLE = no # 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 +AUDIO_ENABLE = no # Audio output + +OLED_ENABLE = yes # Enables the use of OLED displays +ENCODER_ENABLE = yes # Enables the use of one or more encoders RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow 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_SUPPORTED = yes diff --git a/keyboards/splitkb/kyria/rev2/info.json b/keyboards/splitkb/kyria/rev2/info.json index 7ff56b321ae3..e30432b7183f 100644 --- a/keyboards/splitkb/kyria/rev2/info.json +++ b/keyboards/splitkb/kyria/rev2/info.json @@ -1,6 +1,63 @@ { "keyboard_name": "Kyria rev2", "usb": { + "pid": "0x9D9D", "device_version": "0.0.2" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"x":0, "y":0.75}, + {"x":1, "y":0.75}, + {"x":2, "y":0.25}, + {"x":3, "y":0}, + {"x":4, "y":0.25}, + {"x":5, "y":0.5}, + {"x":10.5, "y":0.5}, + {"x":11.5, "y":0.25}, + {"x":12.5, "y":0}, + {"x":13.5, "y":0.25}, + {"x":14.5, "y":0.75}, + {"x":15.5, "y":0.75}, + {"x":0, "y":1.75}, + {"x":1, "y":1.75}, + {"x":2, "y":1.25}, + {"x":3, "y":1}, + {"x":4, "y":1.25}, + {"x":5, "y":1.5}, + {"x":10.5, "y":1.5}, + {"x":11.5, "y":1.25}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1.25}, + {"x":14.5, "y":1.75}, + {"x":15.5, "y":1.75}, + {"x":0, "y":2.75}, + {"x":1, "y":2.75}, + {"x":2, "y":2.25}, + {"x":3, "y":2}, + {"x":4, "y":2.25}, + {"x":5, "y":2.5}, + {"x":6, "y":3}, + {"x":7, "y":3.25}, + {"x":8.5, "y":3.25}, + {"x":9.5, "y":3}, + {"x":10.5, "y":2.5}, + {"x":11.5, "y":2.25}, + {"x":12.5, "y":2}, + {"x":13.5, "y":2.25}, + {"x":14.5, "y":2.75}, + {"x":15.5, "y":2.75}, + {"x":2.5, "y":3.25}, + {"x":3.5, "y":3.25}, + {"x":4.5, "y":3.5}, + {"x":5.5, "y":4}, + {"x":6.5, "y":4.25}, + {"x":9, "y":4.25}, + {"x":10, "y":4}, + {"x":11, "y":3.5}, + {"x":12, "y":3.25}, + {"x":13, "y":3.25} + ] + } } } diff --git a/keyboards/splitkb/kyria/rev2/rules.mk b/keyboards/splitkb/kyria/rev2/rules.mk index 355c12024f7a..cb26f6210d94 100644 --- a/keyboards/splitkb/kyria/rev2/rules.mk +++ b/keyboards/splitkb/kyria/rev2/rules.mk @@ -1,8 +1,14 @@ -OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enables the use of OLED displays +BOOTMAGIC_ENABLE = no # 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 +AUDIO_ENABLE = no # Audio output + +OLED_ENABLE = yes # Enables the use of OLED displays ENCODER_ENABLE = yes # Enables the use of one or more encoders RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow 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_SUPPORTED = yes diff --git a/keyboards/splitkb/kyria/rev3/config.h b/keyboards/splitkb/kyria/rev3/config.h new file mode 100644 index 000000000000..5cbf317d8d4c --- /dev/null +++ b/keyboards/splitkb/kyria/rev3/config.h @@ -0,0 +1,45 @@ +/* Copyright 2022 splitkb.com + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +// `SPLIT_HAND_PIN` can currently be defined in `info.json`, +// but can't yet be given a value +#define SPLIT_HAND_PIN B5 + +// Not yet available in `info.json` +#ifdef OLED_ENABLE +# define OLED_DISPLAY_128X64 +# define SPLIT_OLED_ENABLE +#endif + +// Not yet available in `info.json` +#ifdef RGB_MATRIX_ENABLE +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS RGBLIGHT_LIMIT_VAL +# define RGB_MATRIX_LED_COUNT RGBLED_NUM +# define RGB_MATRIX_SPLIT RGBLED_SPLIT +# define SPLIT_TRANSPORT_MIRROR +#endif + +// Not yet available in `info.json` +#ifdef BOOTMAGIC_ENABLE + // Top left key on left half +# define BOOTMAGIC_LITE_ROW 0 +# define BOOTMAGIC_LITE_COLUMN 6 + // Top right key on right half +# define BOOTMAGIC_LITE_ROW_RIGHT 4 +# define BOOTMAGIC_LITE_COLUMN_RIGHT 6 +#endif diff --git a/keyboards/splitkb/kyria/rev3/info.json b/keyboards/splitkb/kyria/rev3/info.json new file mode 100644 index 000000000000..2717d63ff13d --- /dev/null +++ b/keyboards/splitkb/kyria/rev3/info.json @@ -0,0 +1,241 @@ +{ + "keyboard_name": "Kyria rev3", + "usb": { + "pid": "0xCF44", + }, + "features": { + "mousekey": true, + "bootmagic": true, + "extrakey": true, + "oled": true, + "rgb_matrix": true + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "L06", "matrix": [0, 6], "x": 0, "y": 0.75}, + {"label": "L05", "matrix": [0, 5], "x": 1, "y": 0.75}, + {"label": "L04", "matrix": [0, 4], "x": 2, "y": 0.25}, + {"label": "L03", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "L02", "matrix": [0, 2], "x": 4, "y": 0.25}, + {"label": "L01", "matrix": [0, 1], "x": 5, "y": 0.5}, + {"label": "R01", "matrix": [4, 1], "x": 10.5, "y": 0.5}, + {"label": "R02", "matrix": [4, 2], "x": 11.5, "y": 0.25}, + {"label": "R03", "matrix": [4, 3], "x": 12.5, "y": 0}, + {"label": "R04", "matrix": [4, 4], "x": 13.5, "y": 0.25}, + {"label": "R05", "matrix": [4, 5], "x": 14.5, "y": 0.75}, + {"label": "R06", "matrix": [4, 6], "x": 15.5, "y": 0.75}, + + {"label": "L12", "matrix": [1, 6], "x": 0, "y": 1.75}, + {"label": "L11", "matrix": [1, 5], "x": 1, "y": 1.75}, + {"label": "L10", "matrix": [1, 4], "x": 2, "y": 1.25}, + {"label": "L09", "matrix": [1, 3], "x": 3, "y": 1}, + {"label": "L08", "matrix": [1, 2], "x": 4, "y": 1.25}, + {"label": "L07", "matrix": [1, 1], "x": 5, "y": 1.5}, + {"label": "R07", "matrix": [5, 1], "x": 10.5, "y": 1.5}, + {"label": "R08", "matrix": [5, 2], "x": 11.5, "y": 1.25}, + {"label": "R09", "matrix": [5, 3], "x": 12.5, "y": 1}, + {"label": "R10", "matrix": [5, 4], "x": 13.5, "y": 1.25}, + {"label": "R11", "matrix": [5, 5], "x": 14.5, "y": 1.75}, + {"label": "R12", "matrix": [5, 6], "x": 15.5, "y": 1.75}, + + {"label": "L20", "matrix": [2, 6], "x": 0, "y": 2.75}, + {"label": "L19", "matrix": [2, 5], "x": 1, "y": 2.75}, + {"label": "L18", "matrix": [2, 4], "x": 2, "y": 2.25}, + {"label": "L17", "matrix": [2, 3], "x": 3, "y": 2}, + {"label": "L16", "matrix": [2, 2], "x": 4, "y": 2.25}, + {"label": "L15", "matrix": [2, 1], "x": 5, "y": 2.5}, + {"label": "L14", "matrix": [3, 3], "x": 6, "y": 3}, + {"label": "L13", "matrix": [2, 0], "x": 7, "y": 3.25}, + {"label": "R13", "matrix": [6, 0], "x": 8.5, "y": 3.25}, + {"label": "R14", "matrix": [7, 3], "x": 9.5, "y": 3}, + {"label": "R15", "matrix": [6, 1], "x": 10.5, "y": 2.5}, + {"label": "R16", "matrix": [6, 2], "x": 11.5, "y": 2.25}, + {"label": "R17", "matrix": [6, 3], "x": 12.5, "y": 2}, + {"label": "R18", "matrix": [6, 4], "x": 13.5, "y": 2.25}, + {"label": "R19", "matrix": [6, 5], "x": 14.5, "y": 2.75}, + {"label": "R20", "matrix": [6, 6], "x": 15.5, "y": 2.75}, + + {"label": "L25", "matrix": [3, 4], "x": 2.5, "y": 3.25}, + {"label": "L24", "matrix": [3, 2], "x": 3.5, "y": 3.25}, + {"label": "L23", "matrix": [3, 1], "x": 4.5, "y": 3.5}, + {"label": "L22", "matrix": [3, 5], "x": 5.5, "y": 4}, + {"label": "L21", "matrix": [3, 0], "x": 6.5, "y": 4.25}, + {"label": "R21", "matrix": [7, 0], "x": 9, "y": 4.25}, + {"label": "R22", "matrix": [7, 5], "x": 10, "y": 4}, + {"label": "R23", "matrix": [7, 1], "x": 11, "y": 3.5}, + {"label": "R24", "matrix": [7, 2], "x": 12, "y": 3.25}, + {"label": "R25", "matrix": [7, 4], "x": 13, "y": 3.25}, + ] + }, + "LAYOUT_stack": { + "layout": [ + {"label": "L06", "matrix": [0, 6], "x": 0, "y": 0.75}, + {"label": "L05", "matrix": [0, 5], "x": 1, "y": 0.75}, + {"label": "L04", "matrix": [0, 4], "x": 2, "y": 0.25}, + {"label": "L03", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "L02", "matrix": [0, 2], "x": 4, "y": 0.25}, + {"label": "L01", "matrix": [0, 1], "x": 5, "y": 0.5}, + + {"label": "L12", "matrix": [1, 6], "x": 0, "y": 1.75}, + {"label": "L11", "matrix": [1, 5], "x": 1, "y": 1.75}, + {"label": "L10", "matrix": [1, 4], "x": 2, "y": 1.25}, + {"label": "L09", "matrix": [1, 3], "x": 3, "y": 1}, + {"label": "L08", "matrix": [1, 2], "x": 4, "y": 1.25}, + {"label": "L07", "matrix": [1, 1], "x": 5, "y": 1.5}, + + {"label": "L20", "matrix": [2, 6], "x": 0, "y": 2.75}, + {"label": "L19", "matrix": [2, 5], "x": 1, "y": 2.75}, + {"label": "L18", "matrix": [2, 4], "x": 2, "y": 2.25}, + {"label": "L17", "matrix": [2, 3], "x": 3, "y": 2}, + {"label": "L16", "matrix": [2, 2], "x": 4, "y": 2.25}, + {"label": "L15", "matrix": [2, 1], "x": 5, "y": 2.5}, + {"label": "L14", "matrix": [3, 3], "x": 6, "y": 3}, + {"label": "L13", "matrix": [2, 0], "x": 7, "y": 3.25}, + + {"label": "L25", "matrix": [3, 4], "x": 2.5, "y": 3.25}, + {"label": "L24", "matrix": [3, 2], "x": 3.5, "y": 3.25}, + {"label": "L23", "matrix": [3, 1], "x": 4.5, "y": 3.5}, + {"label": "L22", "matrix": [3, 5], "x": 5.5, "y": 4}, + {"label": "L21", "matrix": [3, 0], "x": 6.5, "y": 4.25}, + + {"label": "R01", "matrix": [4, 1], "x": 10.5, "y": 0.5}, + {"label": "R02", "matrix": [4, 2], "x": 11.5, "y": 0.25}, + {"label": "R03", "matrix": [4, 3], "x": 12.5, "y": 0}, + {"label": "R04", "matrix": [4, 4], "x": 13.5, "y": 0.25}, + {"label": "R05", "matrix": [4, 5], "x": 14.5, "y": 0.75}, + {"label": "R06", "matrix": [4, 6], "x": 15.5, "y": 0.75}, + + {"label": "R07", "matrix": [5, 1], "x": 10.5, "y": 1.5}, + {"label": "R08", "matrix": [5, 2], "x": 11.5, "y": 1.25}, + {"label": "R09", "matrix": [5, 3], "x": 12.5, "y": 1}, + {"label": "R10", "matrix": [5, 4], "x": 13.5, "y": 1.25}, + {"label": "R11", "matrix": [5, 5], "x": 14.5, "y": 1.75}, + {"label": "R12", "matrix": [5, 6], "x": 15.5, "y": 1.75}, + + {"label": "R13", "matrix": [6, 0], "x": 8.5, "y": 3.25}, + {"label": "R14", "matrix": [7, 3], "x": 9.5, "y": 3}, + {"label": "R15", "matrix": [6, 1], "x": 10.5, "y": 2.5}, + {"label": "R16", "matrix": [6, 2], "x": 11.5, "y": 2.25}, + {"label": "R17", "matrix": [6, 3], "x": 12.5, "y": 2}, + {"label": "R18", "matrix": [6, 4], "x": 13.5, "y": 2.25}, + {"label": "R19", "matrix": [6, 5], "x": 14.5, "y": 2.75}, + {"label": "R20", "matrix": [6, 6], "x": 15.5, "y": 2.75}, + + {"label": "R21", "matrix": [7, 0], "x": 9, "y": 4.25}, + {"label": "R22", "matrix": [7, 5], "x": 10, "y": 4}, + {"label": "R23", "matrix": [7, 1], "x": 11, "y": 3.5}, + {"label": "R24", "matrix": [7, 2], "x": 12, "y": 3.25}, + {"label": "R25", "matrix": [7, 4], "x": 13, "y": 3.25}, + ] + } + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "rows": ["D4", "C6", "D7", "E6"], + "cols": ["B4", "F6", "F7", "B1", "B3", "B2", "B6"] + }, + "encoder": { + "enabled": true, + "rotary": [ + { + "pin_a": "F4", + "pin_b": "F5" + } + ] + }, + "split": { + "soft_serial_pin": "D2", + "main": "matrix_grid", + "matrix_pins": { + "right": { + "rows": ["F6", "F7", "B1", "B3"], + "cols": ["B2", "D4", "C6", "D7", "E6", "B4", "B6"] + } + }, + "encoder": { + "right": { + "rotary": [ + { + "pin_a": "F4", + "pin_b": "F5" + } + ] + } + } + }, + "rgblight": { + "pin": "D3", + "led_count": 62, + "split": true, + "split_count": [31, 31], + "max_brightness": 128 + }, + "rgb_matrix": { + "driver": "WS2812", + "layout": [ + {"flags": 2, "x": 75, "y": 2}, // L RGB1 + {"flags": 2, "x": 50, "y": 1}, // L RGB2 + {"flags": 2, "x": 14, "y": 4}, // L RGB3 + {"flags": 2, "x": 25, "y": 45}, // L RGB4 + {"flags": 2, "x": 58, "y": 49}, // L RGB5 + {"flags": 2, "x": 94, "y": 53}, // L RGB6 + {"flags": 4, "matrix": [3, 0], "x": 94, "y": 64}, // L SW21 + {"flags": 4, "matrix": [3, 5], "x": 79, "y": 60}, // L SW22 + {"flags": 4, "matrix": [3, 1], "x": 65, "y": 53}, // L SW23 + {"flags": 4, "matrix": [3, 2], "x": 51, "y": 49}, // L SW24 + {"flags": 4, "matrix": [3, 4], "x": 36, "y": 49}, // L SW25 + {"flags": 4, "matrix": [2, 0], "x": 101, "y": 49}, // L SW13 + {"flags": 4, "matrix": [3, 3], "x": 87, "y": 45}, // L SW14 + {"flags": 4, "matrix": [2, 1], "x": 72, "y": 38}, // L SW15 + {"flags": 4, "matrix": [2, 2], "x": 58, "y": 34}, // L SW16 + {"flags": 4, "matrix": [2, 3], "x": 43, "y": 30}, // L SW17 + {"flags": 4, "matrix": [2, 4], "x": 29, "y": 34}, // L SW18 + {"flags": 4, "matrix": [2, 5], "x": 14, "y": 41}, // L SW19 + {"flags": 4, "matrix": [2, 6], "x": 0, "y": 41}, // L SW20 + {"flags": 4, "matrix": [1, 1], "x": 72, "y": 23}, // L SW07 + {"flags": 4, "matrix": [1, 2], "x": 58, "y": 19}, // L SW08 + {"flags": 4, "matrix": [1, 3], "x": 43, "y": 15}, // L SW09 + {"flags": 4, "matrix": [1, 4], "x": 29, "y": 19}, // L SW10 + {"flags": 4, "matrix": [1, 5], "x": 14, "y": 26}, // L SW11 + {"flags": 4, "matrix": [1, 6], "x": 0, "y": 26}, // L SW12 + {"flags": 4, "matrix": [0, 1], "x": 72, "y": 8}, // L SW01 + {"flags": 4, "matrix": [0, 2], "x": 58, "y": 4}, // L SW02 + {"flags": 4, "matrix": [0, 3], "x": 43, "y": 0}, // L SW03 + {"flags": 4, "matrix": [0, 4], "x": 29, "y": 4}, // L SW04 + {"flags": 4, "matrix": [0, 5], "x": 14, "y": 11}, // L SW05 + {"flags": 4, "matrix": [0, 6], "x": 0, "y": 11}, // L SW06 + {"flags": 2, "x": 149, "y": 2}, // R RGB1 + {"flags": 2, "x": 174, "y": 1}, // R RGB2 + {"flags": 2, "x": 210, "y": 4}, // R RGB3 + {"flags": 2, "x": 199, "y": 45}, // R RGB4 + {"flags": 2, "x": 166, "y": 49}, // R RGB5 + {"flags": 2, "x": 130, "y": 53}, // R RGB6 + {"flags": 4, "matrix": [7, 0], "x": 130, "y": 64}, // R SW21 + {"flags": 4, "matrix": [7, 5], "x": 145, "y": 60}, // R SW22 + {"flags": 4, "matrix": [7, 1], "x": 159, "y": 53}, // R SW23 + {"flags": 4, "matrix": [7, 2], "x": 173, "y": 49}, // R SW24 + {"flags": 4, "matrix": [7, 4], "x": 188, "y": 49}, // R SW25 + {"flags": 4, "matrix": [6, 0], "x": 123, "y": 49}, // R SW13 + {"flags": 4, "matrix": [7, 3], "x": 137, "y": 45}, // R SW14 + {"flags": 4, "matrix": [6, 1], "x": 152, "y": 38}, // R SW15 + {"flags": 4, "matrix": [6, 2], "x": 166, "y": 34}, // R SW16 + {"flags": 4, "matrix": [6, 3], "x": 181, "y": 30}, // R SW17 + {"flags": 4, "matrix": [6, 4], "x": 195, "y": 34}, // R SW18 + {"flags": 4, "matrix": [6, 5], "x": 210, "y": 41}, // R SW19 + {"flags": 4, "matrix": [6, 6], "x": 224, "y": 41}, // R SW20 + {"flags": 4, "matrix": [5, 1], "x": 152, "y": 23}, // R SW07 + {"flags": 4, "matrix": [5, 2], "x": 166, "y": 19}, // R SW08 + {"flags": 4, "matrix": [5, 3], "x": 181, "y": 15}, // R SW09 + {"flags": 4, "matrix": [5, 4], "x": 195, "y": 19}, // R SW10 + {"flags": 4, "matrix": [5, 5], "x": 210, "y": 26}, // R SW11 + {"flags": 4, "matrix": [5, 6], "x": 224, "y": 26}, // R SW12 + {"flags": 4, "matrix": [4, 1], "x": 152, "y": 8}, // R SW01 + {"flags": 4, "matrix": [4, 2], "x": 166, "y": 4}, // R SW02 + {"flags": 4, "matrix": [4, 3], "x": 181, "y": 0}, // R SW03 + {"flags": 4, "matrix": [4, 4], "x": 195, "y": 4}, // R SW04 + {"flags": 4, "matrix": [4, 5], "x": 210, "y": 11}, // R SW05 + {"flags": 4, "matrix": [4, 6], "x": 224, "y": 11}, // R SW06 + ] + } +} diff --git a/keyboards/splitkb/kyria/rev3/rev3.c b/keyboards/splitkb/kyria/rev3/rev3.c new file mode 100644 index 000000000000..4ff592ef5545 --- /dev/null +++ b/keyboards/splitkb/kyria/rev3/rev3.c @@ -0,0 +1,35 @@ +/* Copyright 2022 splitkb.com + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +#ifdef SWAP_HANDS_ENABLE +// clang-format off + __attribute__ ((weak)) const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { + {{0, 4}, {1, 4}, {2, 4}, {3, 4}, {4, 4}, {5, 4}}, + {{0, 5}, {1, 5}, {2, 5}, {3, 5}, {4, 5}, {5, 5}}, + {{0, 6}, {1, 6}, {2, 6}, {3, 6}, {4, 6}, {5, 6}}, + {{0, 7}, {1, 7}, {2, 7}, {3, 7}, {4, 7}, {5, 7}}, + {{0, 0}, {1, 0}, {2, 0}, {3, 0}, {4, 0}, {5, 0}}, + {{0, 1}, {1, 1}, {2, 1}, {3, 1}, {4, 1}, {5, 1}}, + {{0, 2}, {1, 2}, {2, 2}, {3, 2}, {4, 2}, {5, 2}}, + {{0, 3}, {1, 3}, {2, 3}, {3, 3}, {4, 3}, {5, 3}}, + }; +// clang-format on +# ifdef ENCODER_MAP_ENABLE + const uint8_t PROGMEM encoder_hand_swap_config[NUM_ENCODERS] = {1,0}; +# endif +#endif diff --git a/keyboards/splitkb/kyria/rev3/rules.mk b/keyboards/splitkb/kyria/rev3/rules.mk new file mode 100644 index 000000000000..55e872484826 --- /dev/null +++ b/keyboards/splitkb/kyria/rev3/rules.mk @@ -0,0 +1,2 @@ +# Although no rules are defined, +# presence of this file is required for QMK to compile it. diff --git a/keyboards/splitkb/kyria/rules.mk b/keyboards/splitkb/kyria/rules.mk index 7952bfe3026b..1342089f56d0 100644 --- a/keyboards/splitkb/kyria/rules.mk +++ b/keyboards/splitkb/kyria/rules.mk @@ -1,21 +1 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = atmel-dfu - -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = no # 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 -AUDIO_ENABLE = no # Audio output -SPLIT_KEYBOARD = yes # Split common -LTO_ENABLE = yes - -DEFAULT_FOLDER = splitkb/kyria/rev2 +DEFAULT_FOLDER = splitkb/kyria/rev3 From 300a0def4e20507f20b61507ed3dc3c65f3bf6a0 Mon Sep 17 00:00:00 2001 From: era <73109780+eerraa@users.noreply.github.com> Date: Sat, 21 Jan 2023 04:43:11 +0900 Subject: [PATCH 095/139] Change era65 keymap&debounce_type (#19627) --- keyboards/era/era65/keymaps/default/keymap.c | 2 +- keyboards/era/era65/keymaps/via/keymap.c | 2 +- keyboards/era/era65/rules.mk | 3 +-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/keyboards/era/era65/keymaps/default/keymap.c b/keyboards/era/era65/keymaps/default/keymap.c index b412fe3d082c..06e4d2be28ab 100644 --- a/keyboards/era/era65/keymaps/default/keymap.c +++ b/keyboards/era/era65/keymaps/default/keymap.c @@ -28,7 +28,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [1] = LAYOUT_65_combo( 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_PSCR, KC_SCRL, KC_PAUS, _______, KC_INS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, KC_END, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/era/era65/keymaps/via/keymap.c b/keyboards/era/era65/keymaps/via/keymap.c index f87b1b911411..ab312135b093 100644 --- a/keyboards/era/era65/keymaps/via/keymap.c +++ b/keyboards/era/era65/keymaps/via/keymap.c @@ -28,7 +28,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [1] = LAYOUT_65_combo( 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_PSCR, KC_SCRL, KC_PAUS, _______, KC_INS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, KC_END, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/era/era65/rules.mk b/keyboards/era/era65/rules.mk index 12a6f414c46b..2b03e47e938e 100644 --- a/keyboards/era/era65/rules.mk +++ b/keyboards/era/era65/rules.mk @@ -1,2 +1 @@ -BACKLIGHT_DRIVER = pwm -DEBOUNCE_TYPE = asym_eager_defer_pk \ No newline at end of file +BACKLIGHT_DRIVER = pwm \ No newline at end of file From 9c7490d7cb1bdb2232687153e542d813bfa53db3 Mon Sep 17 00:00:00 2001 From: Joe Scotto Date: Mon, 23 Jan 2023 04:38:22 -0500 Subject: [PATCH 096/139] [Keyboard] Add Scotto40 Keyboard (#18453) Co-authored-by: Drashna Jaelre Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> --- .../handwired/jscotto/scotto40/info.json | 180 ++++++++++++++++++ .../jscotto/scotto40/keymaps/default/config.h | 24 +++ .../jscotto/scotto40/keymaps/default/keymap.c | 114 +++++++++++ .../jscotto/scotto40/keymaps/default/rules.mk | 1 + .../handwired/jscotto/scotto40/readme.md | 25 +++ keyboards/handwired/jscotto/scotto40/rules.mk | 1 + 6 files changed, 345 insertions(+) create mode 100644 keyboards/handwired/jscotto/scotto40/info.json create mode 100644 keyboards/handwired/jscotto/scotto40/keymaps/default/config.h create mode 100644 keyboards/handwired/jscotto/scotto40/keymaps/default/keymap.c create mode 100644 keyboards/handwired/jscotto/scotto40/keymaps/default/rules.mk create mode 100644 keyboards/handwired/jscotto/scotto40/readme.md create mode 100644 keyboards/handwired/jscotto/scotto40/rules.mk diff --git a/keyboards/handwired/jscotto/scotto40/info.json b/keyboards/handwired/jscotto/scotto40/info.json new file mode 100644 index 000000000000..dd52bd7a1f90 --- /dev/null +++ b/keyboards/handwired/jscotto/scotto40/info.json @@ -0,0 +1,180 @@ +{ + "manufacturer": "Joe Scotto", + "keyboard_name": "Scotto40", + "maintainer": "joe-scotto", + "bootloader": "caterina", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["D1", "D0", "D4", "C6", "D7", "E6", "B4", "B5", "F4", "F5"], + "rows": ["B1", "B3", "B2", "B6"] + }, + "processor": "atmega32u4", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT_ortho_3x10_7": { + "layout": [ + // Row 1 + { "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 }, + + // Row 2 + { "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 }, + + // Row 3 + { "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 }, + + // Row 4 + { "matrix": [3, 0], "x": 0, "y": 3 }, + + { "matrix": [3, 2], "x": 2, "y": 3 }, + { "matrix": [3, 3], "x": 3, "y": 3 }, + { "matrix": [3, 4], "x": 4, "y": 3, "w": 2 }, + { "matrix": [3, 6], "x": 6, "y": 3 }, + { "matrix": [3, 7], "x": 7, "y": 3 }, + + { "matrix": [3, 9], "x": 9, "y": 3 } + ] + }, + "LAYOUT_ortho_3x10_8": { + "layout": [ + // Row 1 + { "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 }, + + // Row 2 + { "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 }, + + // Row 3 + { "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 }, + + // Row 4 + { "matrix": [3, 0], "x": 0, "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, 9], "x": 9, "y": 3 } + ] + }, + "LAYOUT_ortho_4x10": { + "layout": [ + // Row 1 + { "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 }, + + // Row 2 + { "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 }, + + // Row 3 + { "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 }, + + // Row 4 + { "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 } + ] + } + } +} diff --git a/keyboards/handwired/jscotto/scotto40/keymaps/default/config.h b/keyboards/handwired/jscotto/scotto40/keymaps/default/config.h new file mode 100644 index 000000000000..8723c294cb5d --- /dev/null +++ b/keyboards/handwired/jscotto/scotto40/keymaps/default/config.h @@ -0,0 +1,24 @@ +/* +Copyright 2022 Joe Scotto + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License 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 options +#define IGNORE_MOD_TAP_INTERRUPT +#define TAPPING_TERM 135 +#define PERMISSIVE_HOLD +#define TAPPING_TERM_PER_KEY diff --git a/keyboards/handwired/jscotto/scotto40/keymaps/default/keymap.c b/keyboards/handwired/jscotto/scotto40/keymaps/default/keymap.c new file mode 100644 index 000000000000..adfcdc559c71 --- /dev/null +++ b/keyboards/handwired/jscotto/scotto40/keymaps/default/keymap.c @@ -0,0 +1,114 @@ +/* +Copyright 2022 Joe Scotto + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +// Tap Dance declarations +enum { + TD_ESC_SPOTLIGHT_EMOJI, + TD_ESC_WINDOWS_EMOJI +}; + +void td_esc_spotlight_emoji (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + tap_code(KC_ESC); + } else if (state->count == 2) { + tap_code16(G(KC_SPC)); + } else if (state->count == 3) { + tap_code16(C(G(KC_SPC))); + } +} + +void td_esc_windows_emoji (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + tap_code(KC_ESC); + } else if (state->count == 2) { + tap_code(KC_LGUI); + } else if (state->count == 3) { + tap_code16(G(KC_DOT)); + } +}; + + // Tap Dance definitions +qk_tap_dance_action_t tap_dance_actions[] = { + [TD_ESC_SPOTLIGHT_EMOJI] = ACTION_TAP_DANCE_FN(td_esc_spotlight_emoji), + [TD_ESC_WINDOWS_EMOJI] = ACTION_TAP_DANCE_FN(td_esc_windows_emoji) +}; + +uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case TD(TD_ESC_SPOTLIGHT_EMOJI) : + case TD(TD_ESC_WINDOWS_EMOJI) : + case LGUI_T(KC_SPC) : + case LT(1, KC_TAB) : + case LT(2, KC_ENT) : + return 200; + default: + return TAPPING_TERM; + } +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_3x10_7( + KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, + KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), + KC_ESC, KC_LCTL, KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT), TD(TD_ESC_SPOTLIGHT_EMOJI) + ), + [1] = LAYOUT_ortho_3x10_7( + KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, + KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, + LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), + KC_ESC, KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_ESC_SPOTLIGHT_EMOJI) + ), + [2] = LAYOUT_ortho_3x10_7( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + KC_ESC, KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_ESC_SPOTLIGHT_EMOJI) + ), + [3] = LAYOUT_ortho_3x10_7( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(4), + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, + KC_ESC, KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_ESC_SPOTLIGHT_EMOJI) + ), + [4] = LAYOUT_ortho_3x10_7( + KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, + KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), + KC_ESC, KC_LALT, KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), TD(TD_ESC_WINDOWS_EMOJI) + ), + [5] = LAYOUT_ortho_3x10_7( + KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, + KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, + LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), + KC_ESC, KC_LALT, KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), TD(TD_ESC_WINDOWS_EMOJI) + ), + [6] = LAYOUT_ortho_3x10_7( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_LSFT, KC_NO, KC_NO, KC_NO, MO(7), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + KC_ESC, KC_LALT, KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), TD(TD_ESC_WINDOWS_EMOJI) + ), + [7] = LAYOUT_ortho_3x10_7( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0), + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, + KC_ESC, KC_LALT, KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), TD(TD_ESC_WINDOWS_EMOJI) + ) +}; diff --git a/keyboards/handwired/jscotto/scotto40/keymaps/default/rules.mk b/keyboards/handwired/jscotto/scotto40/keymaps/default/rules.mk new file mode 100644 index 000000000000..e5ddcae8d927 --- /dev/null +++ b/keyboards/handwired/jscotto/scotto40/keymaps/default/rules.mk @@ -0,0 +1 @@ +TAP_DANCE_ENABLE = yes diff --git a/keyboards/handwired/jscotto/scotto40/readme.md b/keyboards/handwired/jscotto/scotto40/readme.md new file mode 100644 index 000000000000..867313ecfc2b --- /dev/null +++ b/keyboards/handwired/jscotto/scotto40/readme.md @@ -0,0 +1,25 @@ +# Scotto40 + +![Scotto40](https://i.imgur.com/wtW5xOth.jpeg) + +A 37, 38, or 40 key handwired ortholinear keyboard. Case files available [here](https://github.com/joe-scotto/keyboards). + +- Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto) +- Hardware Supported: ATmega32U4 +- Hardware Availability: [Amazon](https://amazon.com) + +# Compiling + +Make example for this keyboard (after setting up your build environment): + + make handwired/jscotto/scotto40:default + +Flashing example for this keyboard: + + make handwired/jscotto/scotto40:default + +# Bootloader + +Uses [bootmagic](https://github.com/qmk/qmk_firmware/blob/master/docs/feature_bootmagic.md) allowing you to hold the top left key (0, 0) when plugging the board in to enter bootloader mode. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/handwired/jscotto/scotto40/rules.mk b/keyboards/handwired/jscotto/scotto40/rules.mk new file mode 100644 index 000000000000..6e7633bfe015 --- /dev/null +++ b/keyboards/handwired/jscotto/scotto40/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank From 4e658d47f8dfbb303e574bbd07c0d6568152175d Mon Sep 17 00:00:00 2001 From: youturn45 Date: Mon, 23 Jan 2023 05:23:00 -0500 Subject: [PATCH 097/139] [Keymap] Add youturn/yt keymap for think65 (#19300) Co-authored-by: jack <0x6a73@protonmail.com> Co-authored-by: Drashna Jaelre Co-authored-by: Jue Liu --- .../think65/solder/keymaps/yt/config.h | 19 +++ .../think65/solder/keymaps/yt/keymap.c | 139 ++++++++++++++++++ .../think65/solder/keymaps/yt/readme.md | 3 + .../think65/solder/keymaps/yt/rules.mk | 5 + 4 files changed, 166 insertions(+) create mode 100644 keyboards/gray_studio/think65/solder/keymaps/yt/config.h create mode 100644 keyboards/gray_studio/think65/solder/keymaps/yt/keymap.c create mode 100644 keyboards/gray_studio/think65/solder/keymaps/yt/readme.md create mode 100644 keyboards/gray_studio/think65/solder/keymaps/yt/rules.mk diff --git a/keyboards/gray_studio/think65/solder/keymaps/yt/config.h b/keyboards/gray_studio/think65/solder/keymaps/yt/config.h new file mode 100644 index 000000000000..6bdff5008e44 --- /dev/null +++ b/keyboards/gray_studio/think65/solder/keymaps/yt/config.h @@ -0,0 +1,19 @@ +/* Copyright 2022 Yt Liu + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define RGBLIGHT_LAYERS diff --git a/keyboards/gray_studio/think65/solder/keymaps/yt/keymap.c b/keyboards/gray_studio/think65/solder/keymaps/yt/keymap.c new file mode 100644 index 000000000000..bc2854261f45 --- /dev/null +++ b/keyboards/gray_studio/think65/solder/keymaps/yt/keymap.c @@ -0,0 +1,139 @@ +/* Copyright 2021 Qiaowei Tang + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + + + /* + * LED ranges for Think6.5v2 2U + * These values were derived from manual testing. Derived from keymaps/rys. + * ┌───────┬───────┬─────────────┬───────────────────────────────────────────┐ + * │ 00 01 │ 02 03 │ 04 05 06 07 │ 08 09 10 11 12 13 14 15 16 17 18 19 20 21 │ + * │ badge │ badge │    (?)     │              underglow (?)                │ + * │  bar │ icon │         │                               │ + * └───────┴───────┴─────────────┴───────────────────────────────────────────┘ + */ + + +// Setup some layers to control mac/win layouts +#include QMK_KEYBOARD_H + +enum bs_layers { + _WIN, + _MAC, + _FN, + _BLANC +}; + +// Setup some keycodes to control cycling and range toggling +enum bs_keycodes { + WIN = SAFE_RANGE, + MAC +}; + +// Light LEDs 6 to 9 and 12 to 15 red when caps lock is active. Hard to ignore! +const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 4, HSV_WHITE} // Light 4 LEDs, starting with LED 12 +); + +// Now define the array of layers. Later layers take precedence +const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( + my_capslock_layer // Overrides other layers +); + +void keyboard_post_init_user(void) { + // Enable the LED layers + rgblight_layers = my_rgb_layers; +}; + +bool led_update_user(led_t led_state) { + rgblight_set_layer_state(0, led_state.caps_lock); + return true; +}; + +layer_state_t default_layer_state_set_user(layer_state_t state) { + if (get_highest_layer(state) == _MAC) { + rgblight_mode_noeeprom(6); + } else { + rgblight_mode_noeeprom(9); + } + return state; +} + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Win Layer + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + * │Esc│! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│_ -│+ =│ Bckspc│pup│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │{ [│} ]│| \│pdw│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │lTCap │ A │ S │ D │ F │ G │ H │ J │ K │ L │: ;│" '│ Enter│ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ │ + * │Shift │ Z │ X │ C │ V │ B │ N │ M │< ,│> .│? /│ Shift│ Up│ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┴───┴┬─┬───┼───┼───┤ + * │Ctrl│ win│ alt│ Space │ Func │ │Lef│Dow│Rig│ + * └────┴────┴────┴────────────────────────┴─────────┴─┴───┴───┴───┘ + */ + [_WIN] = LAYOUT_65_ansi_blocker( + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, + LT(_FN, KC_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_1, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT + ), + /* Mac Layer + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + * │Esc│! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│_ -│+ =│ Bckspc│pup│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │{ [│} ]│| \│pdw│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │lTCap │ A │ S │ D │ F │ G │ H │ J │ K │ L │: ;│" '│ Enter│ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ │ + * │Shift │ Z │ X │ C │ V │ B │ N │ M │< ,│> .│? /│ Shift│ Up│ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┴───┴┬─┬───┼───┼───┤ + * │Ctrl│ Opt│ Cmd│ Space │ Func │ │Lef│Dow│Rig│ + * └────┴────┴────┴────────────────────────┴─────────┴─┴───┴───┴───┘ + */ + [_MAC] = LAYOUT_65_ansi_blocker( + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, + LT(_FN, KC_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_LOPT, KC_LCMD, KC_SPC, KC_1, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT + ), + /* Fn Layer + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬────────┬───┐ + * │lck│ F1│ F2│ F3│ F4│ F5│ F6│ F7│ F8│ F9│F10│F11│F12│ delete │mac│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬──────┼───┤ + * │ TOG │MB1│MSU│MB2│MDU│ │ │ │UP │ │Hom│pgu│End│ │win│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴──────┼───┤ + * │MO(2) │MSL│MSD│MSR│MWD│ │ │Lft│Dwn│rgt│END│pgd│ reset │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬────┤ │ + * │ RGB_mod│F13│F14│F15│F16│F17│F18│F19│F20│F21│F22│F23 │Bri+│ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼────┼───┤ + * │Vold│Mute│Volu│ │ │ │ │ │Bri-│ │ + * └────┴────┴────┴────────────────────────┴────┴────┴─┴───┴────┴───┘ + */ + [_FN] = LAYOUT_65_ansi_blocker( + KC_LOCK, KC_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, MAC, + RGB_TOG, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, KC_MS_WH_UP, _______, _______, _______, KC_UP, _______, KC_HOME, KC_PGUP, _______, _______, WIN, + _______, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_MS_WH_DOWN, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, KC_END, KC_PGDN, QK_BOOT, _______, + RGB_MOD, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_BRIU, _______, + KC_VOLD, KC_MUTE, KC_VOLU, _______, _______, _______, _______, KC_BRID, _______ + ), + +}; + + diff --git a/keyboards/gray_studio/think65/solder/keymaps/yt/readme.md b/keyboards/gray_studio/think65/solder/keymaps/yt/readme.md new file mode 100644 index 000000000000..84286c5e342f --- /dev/null +++ b/keyboards/gray_studio/think65/solder/keymaps/yt/readme.md @@ -0,0 +1,3 @@ +# YT45's Think6.5v2 keymap + +My personal keymap for the Think6.5v2. Using the dangjoeltang as a the base and adding a quick switch from mac to win layouts. also with indication of the current layer with RGB lights. diff --git a/keyboards/gray_studio/think65/solder/keymaps/yt/rules.mk b/keyboards/gray_studio/think65/solder/keymaps/yt/rules.mk new file mode 100644 index 000000000000..378684852980 --- /dev/null +++ b/keyboards/gray_studio/think65/solder/keymaps/yt/rules.mk @@ -0,0 +1,5 @@ +LTO_ENABLE = yes +VIA_ENABLE = yes +MOUSEKEY_ENABLE = yes +KEY_LOCK_ENABLE = yes +CONSOLE_ENABLE = no \ No newline at end of file From 4c6415d7682700327af262bfab04dbe61049bd6f Mon Sep 17 00:00:00 2001 From: cole smith <38364556+daysgobye@users.noreply.github.com> Date: Mon, 23 Jan 2023 21:42:38 -0800 Subject: [PATCH 098/139] [Keyboard] Fix boardsource/lulu/avr encoder pins (#19672) --- keyboards/boardsource/lulu/avr/info.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/boardsource/lulu/avr/info.json b/keyboards/boardsource/lulu/avr/info.json index ad7eefa77f7e..2c9155f6ad3e 100644 --- a/keyboards/boardsource/lulu/avr/info.json +++ b/keyboards/boardsource/lulu/avr/info.json @@ -15,7 +15,7 @@ }, "encoder": { "rotary": [ - { "pin_a": "F0", "pin_b": "F1" } + { "pin_a": "F4", "pin_b": "F5" } ] } } From 4d180c935adc2a5335e03b1f9936a32f6c1d2d06 Mon Sep 17 00:00:00 2001 From: jack <0x6A73@pm.me> Date: Tue, 24 Jan 2023 01:04:56 -0700 Subject: [PATCH 099/139] fixup splitkb/kyria VIA keymap (#19676) --- keyboards/splitkb/kyria/keymaps/via/keymap.c | 134 +++---------------- keyboards/splitkb/kyria/keymaps/via/rules.mk | 2 +- 2 files changed, 20 insertions(+), 116 deletions(-) diff --git a/keyboards/splitkb/kyria/keymaps/via/keymap.c b/keyboards/splitkb/kyria/keymaps/via/keymap.c index 9bbf127790e4..0849e8a7669f 100644 --- a/keyboards/splitkb/kyria/keymaps/via/keymap.c +++ b/keyboards/splitkb/kyria/keymaps/via/keymap.c @@ -34,23 +34,6 @@ enum layers { _BASE = 0, _NAV, _SYM, _FUNCTION, _ADJUST }; // produces the key `tap` when tapped (i.e. pressed and released). // clang-format off -#define LAYOUT_via( \ - L00, L01, L02, L03, L04, L05, LE0, LE1, RE0, RE1, R06, R07, R08, R09, R10, R11, \ - L12, L13, L14, L15, L16, L17, R18, R19, R20, R21, R22, R23, \ - L24, L25, L26, L27, L28, L29, L30, L31, R32, R33, R34, R35, R36, R37, R38, R39, \ - L40, L41, L42, L43, L44, R45, R46, R47, R48, R49 \ -) \ -{ \ - { LE0, LE1, L05, L04, L03, L02, L01, L00 }, \ - { RE0, RE1, L17, L16, L15, L14, L13, L12 }, \ - { L31, L30, L29, L28, L27, L26, L25, L24 }, \ - { L44, L43, L42, L41, L40, KC_NO, KC_NO, KC_NO }, \ - { KC_NO, KC_NO, R06, R07, R08, R09, R10, R11 }, \ - { KC_NO, KC_NO, R18, R19, R20, R21, R22, R23 }, \ - { R32, R33, R34, R35, R36, R37, R38, R39 }, \ - { R45, R46, R47, R48, R49, KC_NO, KC_NO, KC_NO }, \ -} - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* * Base Layer: QWERTY @@ -66,8 +49,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | Enter| | | | | | | | | * `----------------------------------' `----------------------------------' */ - [_BASE] = LAYOUT_via( - KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_VOLD, KC_VOLU, KC_PGDN, KC_PGUP, KC_Y, KC_U , KC_I , KC_O , KC_P , KC_BSPC, + [_BASE] = 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, CTL_ESC , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H, KC_J , KC_K , KC_L ,KC_SCLN,CTL_QUOT, KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_LBRC,KC_CAPS, FKEYS , KC_RBRC, KC_N, KC_M ,KC_COMM, KC_DOT ,KC_SLSH, KC_RSFT, ADJUST , KC_LGUI, ALT_ENT, KC_SPC , NAV , SYM , KC_SPC ,KC_RALT, KC_RGUI, KC_APP @@ -87,10 +70,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | | * `----------------------------------' `----------------------------------' */ - [_NAV] = LAYOUT_via( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_VOLU, KC_DEL, + [_NAV] = LAYOUT( + _______, _______, _______, _______, _______, _______, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_VOLU, KC_DEL, _______, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_VOLD, KC_INS, - _______, _______, _______, _______, _______, _______, _______, KC_SCRL, _______, _______,KC_PAUSE, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_PSCR, + _______, _______, _______, _______, _______, _______, _______, KC_SCRL, _______, _______, KC_PAUSE, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_PSCR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), @@ -108,8 +91,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | | * `----------------------------------' `----------------------------------' */ - [_SYM] = LAYOUT_via( - KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , _______, _______, _______, _______, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_EQL , + [_SYM] = LAYOUT( + KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_EQL , KC_TILD , KC_EXLM, KC_AT , KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PLUS, KC_PIPE , KC_BSLS, KC_COLN, KC_SCLN, KC_MINS, KC_NUBS, KC_LBRC, _______, _______, KC_RBRC, KC_NUHS, KC_UNDS, KC_COMM, KC_DOT, KC_SLSH, KC_QUES, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ @@ -129,8 +112,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | | * `----------------------------------' `----------------------------------' */ - [_FUNCTION] = LAYOUT_via( - _______, KC_F9 , KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + [_FUNCTION] = LAYOUT( + _______, KC_F9 , KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, KC_F5 , KC_F6 , KC_F7 , KC_F8 , _______, _______, KC_RSFT, KC_RCTL, KC_LALT, KC_RGUI, _______, _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ @@ -150,100 +133,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | | * `----------------------------------' `----------------------------------' */ - [_ADJUST] = LAYOUT_via( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + [_ADJUST] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_SAI, RGB_HUI, RGB_VAI, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_HUD, RGB_VAD, RGB_RMOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - - + ) }; // clang-format on -#ifdef ENCODER_ENABLE -static uint8_t encoder_state[2] = {0}; -static keypos_t encoder_ccw[2] = {{0, 0}, {0, 1}}; -static keypos_t encoder_cw[2] = {{1, 0}, {1, 1}}; - -void encoder_action_unregister(void) { - for (int index = 0; index < 2; ++index) { - if (encoder_state[index]) { - keyevent_t encoder_event = (keyevent_t){.key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index], .pressed = false, .time = (timer_read() | 1)}; - encoder_state[index] = 0; - action_exec(encoder_event); - } - } -} - -void encoder_action_register(uint8_t index, bool clockwise) { - keyevent_t encoder_event = (keyevent_t){.key = clockwise ? encoder_cw[index] : encoder_ccw[index], .pressed = true, .time = (timer_read() | 1)}; - encoder_state[index] = (clockwise ^ 1) | (clockwise << 1); - action_exec(encoder_event); -} - -void matrix_scan_user(void) { encoder_action_unregister(); } - -bool encoder_update_user(uint8_t index, bool clockwise) { - encoder_action_register(index, clockwise); - return false; +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_PGUP, KC_PGDN) }, + [1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, + [2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, + [3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, + [4] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, }; #endif - -#ifdef OLED_ENABLE -bool oled_task_user(void) { - if (is_keyboard_master()) { - // QMK Logo and version information - // clang-format off - static const char PROGMEM qmk_logo[] = { - 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, - 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, - 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0}; - // clang-format on - - oled_write_P(qmk_logo, false); - oled_write_P(PSTR("Kyria rev1.0 w/ VIA\n\n"), false); - - // Host Keyboard Layer Status - oled_write_P(PSTR("Layer: "), false); - switch (get_highest_layer(layer_state | default_layer_state)) { - case 0: - oled_write_P(PSTR("Base\n"), false); - break; - case 1: - oled_write_P(PSTR("Nav\n"), false); - break; - case 2: - oled_write_P(PSTR("Sym\n"), false); - break; - case 3: - oled_write_P(PSTR("Function\n"), false); - break; - case 4: - oled_write_P(PSTR("Adjust\n"), false); - break; - } - - // Host Keyboard LED Status - led_t led_usb_state = host_keyboard_led_state(); - oled_write_P(led_usb_state.num_lock ? PSTR("NUMLCK ") : PSTR(" "), false); - oled_write_P(led_usb_state.caps_lock ? PSTR("CAPLCK ") : PSTR(" "), false); - oled_write_P(led_usb_state.scroll_lock ? PSTR("SCRLCK ") : PSTR(" "), false); - } else { - // clang-format off - static const char PROGMEM kyria_logo[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,128,192,224,240,112,120, 56, 60, 28, 30, 14, 14, 14, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 14, 14, 14, 30, 28, 60, 56,120,112,240,224,192,128,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0,192,224,240,124, 62, 31, 15, 7, 3, 1,128,192,224,240,120, 56, 60, 28, 30, 14, 14, 7, 7,135,231,127, 31,255,255, 31,127,231,135, 7, 7, 14, 14, 30, 28, 60, 56,120,240,224,192,128, 1, 3, 7, 15, 31, 62,124,240,224,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,240,252,255, 31, 7, 1, 0, 0,192,240,252,254,255,247,243,177,176, 48, 48, 48, 48, 48, 48, 48,120,254,135, 1, 0, 0,255,255, 0, 0, 1,135,254,120, 48, 48, 48, 48, 48, 48, 48,176,177,243,247,255,254,252,240,192, 0, 0, 1, 7, 31,255,252,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0,255,255,255, 0, 0, 0, 0, 0,254,255,255, 1, 1, 7, 30,120,225,129,131,131,134,134,140,140,152,152,177,183,254,248,224,255,255,224,248,254,183,177,152,152,140,140,134,134,131,131,129,225,120, 30, 7, 1, 1,255,255,254, 0, 0, 0, 0, 0,255,255,255, 0, 0, 0, 0,255,255, 0, 0,192,192, 48, 48, 0, 0,240,240, 0, 0, 0, 0, 0, 0,240,240, 0, 0,240,240,192,192, 48, 48, 48, 48,192,192, 0, 0, 48, 48,243,243, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48,192,192, 0, 0, 0, 0, 0, - 0, 0, 0,255,255,255, 0, 0, 0, 0, 0,127,255,255,128,128,224,120, 30,135,129,193,193, 97, 97, 49, 49, 25, 25,141,237,127, 31, 7,255,255, 7, 31,127,237,141, 25, 25, 49, 49, 97, 97,193,193,129,135, 30,120,224,128,128,255,255,127, 0, 0, 0, 0, 0,255,255,255, 0, 0, 0, 0, 63, 63, 3, 3, 12, 12, 48, 48, 0, 0, 0, 0, 51, 51, 51, 51, 51, 51, 15, 15, 0, 0, 63, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 63, 63, 48, 48, 0, 0, 12, 12, 51, 51, 51, 51, 51, 51, 63, 63, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 15, 63,255,248,224,128, 0, 0, 3, 15, 63,127,255,239,207,141, 13, 12, 12, 12, 12, 12, 12, 12, 30,127,225,128, 0, 0,255,255, 0, 0,128,225,127, 30, 12, 12, 12, 12, 12, 12, 12, 13,141,207,239,255,127, 63, 15, 3, 0, 0,128,224,248,255, 63, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 7, 15, 62,124,248,240,224,192,128, 1, 3, 7, 15, 30, 28, 60, 56,120,112,112,224,224,225,231,254,248,255,255,248,254,231,225,224,224,112,112,120, 56, 60, 28, 30, 15, 7, 3, 1,128,192,224,240,248,124, 62, 15, 7, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 7, 15, 14, 30, 28, 60, 56,120,112,112,112,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,112,112,112,120, 56, 60, 28, 30, 14, 15, 7, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }; - // clang-format on - oled_write_raw_P(kyria_logo, sizeof(kyria_logo)); - } - return false; -} -#endif diff --git a/keyboards/splitkb/kyria/keymaps/via/rules.mk b/keyboards/splitkb/kyria/keymaps/via/rules.mk index 9f383dfa2d73..0f12ae88e1cf 100644 --- a/keyboards/splitkb/kyria/keymaps/via/rules.mk +++ b/keyboards/splitkb/kyria/keymaps/via/rules.mk @@ -1,10 +1,10 @@ OLED_ENABLE = yes OLED_DRIVER = SSD1306 # Enables the use of OLED displays ENCODER_ENABLE = yes # Enables the use of one or more encoders -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow VIA_ENABLE = yes NKRO_ENABLE = yes KEY_LOCK_ENABLE = no SPACE_CADET_ENABLE = no MAGIC_ENABLE = no GRAVE_ESCAPE_ENABLE = no +ENCODER_MAP_ENABLE = yes From 695c4c603005469704cd678a1d3ffb093d7e1231 Mon Sep 17 00:00:00 2001 From: adophoxia <100170946+adophoxia@users.noreply.github.com> Date: Tue, 24 Jan 2023 00:51:45 -0800 Subject: [PATCH 100/139] [Keyboard] Add missing `dip_switch_update_kb` for Keychron V2 (#19674) --- keyboards/keychron/v2/v2.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/keyboards/keychron/v2/v2.c b/keyboards/keychron/v2/v2.c index 852a9637c4ca..7703c280df08 100644 --- a/keyboards/keychron/v2/v2.c +++ b/keyboards/keychron/v2/v2.c @@ -26,6 +26,17 @@ const matrix_row_t matrix_mask[] = { #ifdef DIP_SWITCH_ENABLE +bool dip_switch_update_kb(uint8_t index, bool active) { + if (!dip_switch_update_user(index, active)) { return false;} + if (index == 0) { + default_layer_set(1UL << (active ? 1 : 0)); + } + return true; +} + +#endif // DIP_SWITCH_ENABLE + +#if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX) bool process_record_kb(uint16_t keycode, keyrecord_t *record) { if (!process_record_user(keycode, record)) { return false; } switch (keycode) { From 1c6968260568e5efba9e4d01cd656e3a15b870b8 Mon Sep 17 00:00:00 2001 From: MJM <89230047+MATTMCCA@users.noreply.github.com> Date: Tue, 24 Jan 2023 04:19:42 -0500 Subject: [PATCH 101/139] [Keyboard] Add the Black Hellebore (#19655) --- keyboards/black_hellebore/config.h | 84 +++++++++ keyboards/black_hellebore/halconf.h | 21 +++ keyboards/black_hellebore/info.json | 160 ++++++++++++++++++ .../black_hellebore/keymaps/default/keymap.c | 28 +++ .../black_hellebore/keymaps/via/keymap.c | 53 ++++++ .../black_hellebore/keymaps/via/rules.mk | 1 + keyboards/black_hellebore/mcuconf.h | 25 +++ keyboards/black_hellebore/readme.md | 24 +++ keyboards/black_hellebore/rules.mk | 2 + 9 files changed, 398 insertions(+) create mode 100644 keyboards/black_hellebore/config.h create mode 100644 keyboards/black_hellebore/halconf.h create mode 100644 keyboards/black_hellebore/info.json create mode 100644 keyboards/black_hellebore/keymaps/default/keymap.c create mode 100644 keyboards/black_hellebore/keymaps/via/keymap.c create mode 100644 keyboards/black_hellebore/keymaps/via/rules.mk create mode 100644 keyboards/black_hellebore/mcuconf.h create mode 100644 keyboards/black_hellebore/readme.md create mode 100644 keyboards/black_hellebore/rules.mk diff --git a/keyboards/black_hellebore/config.h b/keyboards/black_hellebore/config.h new file mode 100644 index 000000000000..398055460fd6 --- /dev/null +++ b/keyboards/black_hellebore/config.h @@ -0,0 +1,84 @@ +/* Copyright 2023 MATTMCCA (@MATTMCCA) + * SPDX-License-Identifier: GPL-2.0-only + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for 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" + +#ifdef RGB_MATRIX_ENABLE + + #define WS2812_PWM_DRIVER PWMD1 + #define WS2812_PWM_CHANNEL 1 + #define WS2812_PWM_PAL_MODE 1 //TIM1_CH1N (AF1) + #define WS2812_PWM_COMPLEMENTARY_OUTPUT + #define WS2812_DMA_STREAM STM32_DMA1_STREAM6 + #define WS2812_DMA_CHANNEL 7 //7 works, CxS[3:0] 0111 = TIM1_UP on Channel 6? (RM0394.pdf pg.298) + + #define RGB_DI_PIN A7 // The pin connected to the data pin of the LEDs + #define RGB_MATRIX_LED_COUNT 61 // The number of LEDs connected + + #define RGB_MATRIX_KEYPRESSES // reacts to keypresses + #define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) + #define RGB_MATRIX_FRAMEBUFFER_EFFECTS // enable framebuffer effects + + #define ENABLE_RGB_MATRIX_SOLID_COLOR // Static single color + #define ENABLE_RGB_MATRIX_ALPHAS_MODS // Static dual hue, speed is hue for secondary hue + #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN // Static gradient top to bottom, speed controls how much gradient changes + #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT // Static gradient left to right, speed controls how much gradient changes + #define ENABLE_RGB_MATRIX_BREATHING // Single hue brightness cycling animation + #define ENABLE_RGB_MATRIX_BAND_SAT // Single hue band fading saturation scrolling left to right + #define ENABLE_RGB_MATRIX_BAND_VAL // Single hue band fading brightness scrolling left to right + #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT // Single hue 3 blade spinning pinwheel fades saturation + #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL // Single hue 3 blade spinning pinwheel fades brightness + #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT // Single hue spinning spiral fades saturation + #define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL // Single hue spinning spiral fades brightness + #define ENABLE_RGB_MATRIX_CYCLE_ALL // Full keyboard solid hue cycling through full gradient + #define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT // Full gradient scrolling left to right + #define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN // Full gradient scrolling top to bottom + #define ENABLE_RGB_MATRIX_CYCLE_OUT_IN // Full gradient scrolling out to in + #define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL // Full dual gradients scrolling out to in + #define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON // Full gradient Chevron shaped scrolling left to right + #define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL // Full gradient spinning pinwheel around center of keyboard + #define ENABLE_RGB_MATRIX_CYCLE_SPIRAL // Full gradient spinning spiral around center of keyboard + #define ENABLE_RGB_MATRIX_DUAL_BEACON // Full gradient spinning around center of keyboard + #define ENABLE_RGB_MATRIX_RAINBOW_BEACON // Full tighter gradient spinning around center of keyboard + #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS // Full dual gradients spinning two halfs of keyboard + #define ENABLE_RGB_MATRIX_RAINDROPS // Randomly changes a single key's hue + #define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS // Randomly changes a single key's hue and saturation + #define ENABLE_RGB_MATRIX_HUE_BREATHING // Hue shifts up a slight amount at the same time, then shifts back + #define ENABLE_RGB_MATRIX_HUE_PENDULUM // Hue shifts up a slight amount in a wave to the right, then back to the left + #define ENABLE_RGB_MATRIX_HUE_WAVE // Hue shifts up a slight amount and then back down in a wave to the right + + /* RGB_MATRIX_FRAMEBUFFER_EFFECTS) */ + #define ENABLE_RGB_MATRIX_TYPING_HEATMAP + #define ENABLE_RGB_MATRIX_DIGITAL_RAIN + + /* RGB_MATRIX_KEYPRESSES) | defined(RGB_MATRIX_KEYRELEASES) */ + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE // Pulses keys hit to hue & value then fades value out + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE // Static single hue, pulses keys hit to shifted hue then fades to current hue + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE // Hue & value pulse near a single key hit then fades value out + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE // Hue & value pulse near multiple key hits then fades value out + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS // Hue & value pulse the same column and row of a single key hit then fades value out + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS // Hue & value pulse the same column and row of multiple key hits then fades value out + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS // Hue & value pulse away on the same column and row of a single key hit then fades value out + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS // Hue & value pulse away on the same column and row of multiple key hits then fades value out + #define ENABLE_RGB_MATRIX_SPLASH // Full gradient & value pulse away from a single key hit then fades value out + #define ENABLE_RGB_MATRIX_MULTISPLASH // Full gradient & value pulse away from multiple key hits then fades value out + #define ENABLE_RGB_MATRIX_SOLID_SPLASH // Hue & value pulse away from a single key hit then fades value out + #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH // Hue & value pulse away from multiple key hits then fades value out + +#endif + diff --git a/keyboards/black_hellebore/halconf.h b/keyboards/black_hellebore/halconf.h new file mode 100644 index 000000000000..d1b259e342a6 --- /dev/null +++ b/keyboards/black_hellebore/halconf.h @@ -0,0 +1,21 @@ +/* Copyright 2023 MATTMCCA (@MATTMCCA) + * SPDX-License-Identifier: GPL-2.0-only + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_PWM TRUE + +#include_next diff --git a/keyboards/black_hellebore/info.json b/keyboards/black_hellebore/info.json new file mode 100644 index 000000000000..1e02544157e4 --- /dev/null +++ b/keyboards/black_hellebore/info.json @@ -0,0 +1,160 @@ +{ + "manufacturer": "MATTMCCA", + "keyboard_name": "black_hellebore", + "maintainer": "MATTMCCA", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["B15", "B14", "B13", "A9", "A2", "B1", "B9", "B7", "B5", "B4", "B0", "A8", "B6", "B3"], + "rows": ["A15", "B8", "A4", "A3", "B2"] + }, + "processor": "STM32L412", + "url": "https://github.com/MATTMCCA/The-Black-Hellebore", + "usb": { + "device_version": "1.0.0", + "pid": "0x4467", + "vid": "0x3141" + }, + "rgb_matrix": { + "layout": [ + { "flags": 4, "matrix": [0, 0] , "x": 7 , "y": 5 } , + { "flags": 4, "matrix": [0, 1] , "x": 22 , "y": 5 } , + { "flags": 4, "matrix": [0, 2] , "x": 37 , "y": 5 } , + { "flags": 4, "matrix": [0, 3] , "x": 52 , "y": 5 } , + { "flags": 4, "matrix": [0, 4] , "x": 67 , "y": 5 } , + { "flags": 4, "matrix": [0, 5] , "x": 82 , "y": 5 } , + { "flags": 4, "matrix": [0, 6] , "x": 97 , "y": 5 } , + { "flags": 4, "matrix": [0, 7] , "x": 112, "y": 5 } , + { "flags": 4, "matrix": [0, 8] , "x": 127, "y": 5 } , + { "flags": 4, "matrix": [0, 9] , "x": 142, "y": 5 } , + { "flags": 4, "matrix": [0, 10], "x": 157, "y": 5 } , + { "flags": 4, "matrix": [0, 11], "x": 172, "y": 5 } , + { "flags": 4, "matrix": [0, 12], "x": 187, "y": 5 } , + { "flags": 4, "matrix": [0, 13], "x": 209, "y": 5 } , + { "flags": 4, "matrix": [1, 13], "x": 213, "y": 17 }, + { "flags": 4, "matrix": [1, 12], "x": 194, "y": 17 }, + { "flags": 4, "matrix": [1, 11], "x": 179, "y": 17 }, + { "flags": 4, "matrix": [1, 10], "x": 164, "y": 17 }, + { "flags": 4, "matrix": [1, 9] , "x": 149, "y": 17 }, + { "flags": 4, "matrix": [1, 8] , "x": 134, "y": 17 }, + { "flags": 4, "matrix": [1, 7] , "x": 119, "y": 17 }, + { "flags": 4, "matrix": [1, 6] , "x": 104, "y": 17 }, + { "flags": 4, "matrix": [1, 5] , "x": 90 , "y": 17 }, + { "flags": 4, "matrix": [1, 4] , "x": 75 , "y": 17 }, + { "flags": 4, "matrix": [1, 3] , "x": 60 , "y": 17 }, + { "flags": 4, "matrix": [1, 2] , "x": 45 , "y": 17 }, + { "flags": 4, "matrix": [1, 1] , "x": 30 , "y": 17 }, + { "flags": 4, "matrix": [1, 0] , "x": 11 , "y": 17 }, + { "flags": 4, "matrix": [2, 0] , "x": 13 , "y": 29 }, + { "flags": 4, "matrix": [2, 1] , "x": 34 , "y": 29 }, + { "flags": 4, "matrix": [2, 2] , "x": 49 , "y": 29 }, + { "flags": 4, "matrix": [2, 3] , "x": 63 , "y": 29 }, + { "flags": 4, "matrix": [2, 4] , "x": 78 , "y": 29 }, + { "flags": 4, "matrix": [2, 5] , "x": 93 , "y": 29 }, + { "flags": 4, "matrix": [2, 6] , "x": 108, "y": 29 }, + { "flags": 4, "matrix": [2, 7] , "x": 123, "y": 29 }, + { "flags": 4, "matrix": [2, 8] , "x": 138, "y": 29 }, + { "flags": 4, "matrix": [2, 9] , "x": 153, "y": 29 }, + { "flags": 4, "matrix": [2, 10], "x": 168, "y": 29 }, + { "flags": 4, "matrix": [2, 11], "x": 183, "y": 29 }, + { "flags": 4, "matrix": [2, 13], "x": 207, "y": 29 }, + { "flags": 4, "matrix": [3, 13], "x": 203, "y": 41 }, + { "flags": 4, "matrix": [3, 10], "x": 175, "y": 41 }, + { "flags": 4, "matrix": [3, 9] , "x": 161, "y": 41 }, + { "flags": 4, "matrix": [3, 8] , "x": 146, "y": 41 }, + { "flags": 4, "matrix": [3, 7] , "x": 131, "y": 41 }, + { "flags": 4, "matrix": [3, 6] , "x": 116, "y": 41 }, + { "flags": 4, "matrix": [3, 5] , "x": 101, "y": 41 }, + { "flags": 4, "matrix": [3, 4] , "x": 86 , "y": 41 }, + { "flags": 4, "matrix": [3, 3] , "x": 71 , "y": 41 }, + { "flags": 4, "matrix": [3, 2] , "x": 56 , "y": 41 }, + { "flags": 4, "matrix": [3, 1] , "x": 41 , "y": 41 }, + { "flags": 4, "matrix": [3, 0] , "x": 17 , "y": 41 }, + { "flags": 4, "matrix": [4, 0] , "x": 9 , "y": 54 }, + { "flags": 4, "matrix": [4, 1] , "x": 28 , "y": 54 }, + { "flags": 4, "matrix": [4, 2] , "x": 47 , "y": 54 }, + { "flags": 4, "matrix": [4, 5] , "x": 103, "y": 54 }, + { "flags": 4, "matrix": [4, 9] , "x": 159, "y": 54 }, + { "flags": 4, "matrix": [4, 10], "x": 177, "y": 54 }, + { "flags": 4, "matrix": [4, 11], "x": 196, "y": 54 }, + { "flags": 4, "matrix": [4, 13], "x": 215, "y": 54 } + ] + }, + "layouts": { + "LAYOUT_60_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], "w": 2 , "x": 13 , "y": 0 }, + { "matrix": [1, 0] , "w": 1.5 , "x": 0 , "y": 1 }, + { "matrix": [1, 1] , "x": 1.5 , "y": 1 }, + { "matrix": [1, 2] , "x": 2.5 , "y": 1 }, + { "matrix": [1, 3] , "x": 3.5 , "y": 1 }, + { "matrix": [1, 4] , "x": 4.5 , "y": 1 }, + { "matrix": [1, 5] , "x": 5.5 , "y": 1 }, + { "matrix": [1, 6] , "x": 6.5 , "y": 1 }, + { "matrix": [1, 7] , "x": 7.5 , "y": 1 }, + { "matrix": [1, 8] , "x": 8.5 , "y": 1 }, + { "matrix": [1, 9] , "x": 9.5 , "y": 1 }, + { "matrix": [1, 10] , "x": 10.5 , "y": 1 }, + { "matrix": [1, 11] , "x": 11.5 , "y": 1 }, + { "matrix": [1, 12] , "x": 12.5 , "y": 1 }, + { "matrix": [1, 13], "w": 1.5 , "x": 13.5 , "y": 1 }, + { "matrix": [2, 0] , "w": 1.75 , "x": 0 , "y": 2 }, + { "matrix": [2, 1] , "x": 1.75 , "y": 2 }, + { "matrix": [2, 2] , "x": 2.75 , "y": 2 }, + { "matrix": [2, 3] , "x": 3.75 , "y": 2 }, + { "matrix": [2, 4] , "x": 4.75 , "y": 2 }, + { "matrix": [2, 5] , "x": 5.75 , "y": 2 }, + { "matrix": [2, 6] , "x": 6.75 , "y": 2 }, + { "matrix": [2, 7] , "x": 7.75 , "y": 2 }, + { "matrix": [2, 8] , "x": 8.75 , "y": 2 }, + { "matrix": [2, 9] , "x": 9.75 , "y": 2 }, + { "matrix": [2, 10] , "x": 10.75, "y": 2 }, + { "matrix": [2, 11] , "x": 11.75, "y": 2 }, + { "matrix": [2, 13], "w": 2.25 , "x": 12.75, "y": 2 }, + { "matrix": [3, 0] , "w": 2.25 , "x": 0 , "y": 3 }, + { "matrix": [3, 1] , "x": 2.25 , "y": 3 }, + { "matrix": [3, 2] , "x": 3.25 , "y": 3 }, + { "matrix": [3, 3] , "x": 4.25 , "y": 3 }, + { "matrix": [3, 4] , "x": 5.25 , "y": 3 }, + { "matrix": [3, 5] , "x": 6.25 , "y": 3 }, + { "matrix": [3, 6] , "x": 7.25 , "y": 3 }, + { "matrix": [3, 7] , "x": 8.25 , "y": 3 }, + { "matrix": [3, 8] , "x": 9.25 , "y": 3 }, + { "matrix": [3, 9] , "x": 10.25, "y": 3 }, + { "matrix": [3, 10] , "x": 11.25, "y": 3 }, + { "matrix": [3, 13], "w": 2.75 , "x": 12.25, "y": 3 }, + { "matrix": [4, 0] , "w": 1.25 , "x": 0 , "y": 4 }, + { "matrix": [4, 1] , "w": 1.25 , "x": 1.25 , "y": 4 }, + { "matrix": [4, 2] , "w": 1.25 , "x": 2.5 , "y": 4 }, + { "matrix": [4, 5] , "w": 6.25 , "x": 3.75 , "y": 4 }, + { "matrix": [4, 9] , "w": 1.25 , "x": 10 , "y": 4 }, + { "matrix": [4, 10], "w": 1.25 , "x": 11.25, "y": 4 }, + { "matrix": [4, 11], "w": 1.25 , "x": 12.5 , "y": 4 }, + { "matrix": [4, 13], "w": 1.25 , "x": 13.75, "y": 4 } + ] + } + } +} + diff --git a/keyboards/black_hellebore/keymaps/default/keymap.c b/keyboards/black_hellebore/keymaps/default/keymap.c new file mode 100644 index 000000000000..28e244b59ee9 --- /dev/null +++ b/keyboards/black_hellebore/keymaps/default/keymap.c @@ -0,0 +1,28 @@ +/* Copyright 2023 MATTMCCA (@MATTMCCA) + * SPDX-License-Identifier: GPL-2.0-only + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_60_ansi( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL + ) +}; diff --git a/keyboards/black_hellebore/keymaps/via/keymap.c b/keyboards/black_hellebore/keymaps/via/keymap.c new file mode 100644 index 000000000000..cba8bd9be9d8 --- /dev/null +++ b/keyboards/black_hellebore/keymaps/via/keymap.c @@ -0,0 +1,53 @@ +/* Copyright 2023 MATTMCCA (@MATTMCCA) + * SPDX-License-Identifier: GPL-2.0-only + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_60_ansi( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL + ), + + [1] = LAYOUT_60_ansi( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [2] = LAYOUT_60_ansi( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [3] = LAYOUT_60_ansi( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) + +}; diff --git a/keyboards/black_hellebore/keymaps/via/rules.mk b/keyboards/black_hellebore/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/black_hellebore/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/black_hellebore/mcuconf.h b/keyboards/black_hellebore/mcuconf.h new file mode 100644 index 000000000000..ccb216946c93 --- /dev/null +++ b/keyboards/black_hellebore/mcuconf.h @@ -0,0 +1,25 @@ +/* Copyright 2023 MATTMCCA (@MATTMCCA) + * SPDX-License-Identifier: GPL-2.0-only + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef STM32_PWM_USE_ADVANCED +#define STM32_PWM_USE_ADVANCED TRUE + +#undef STM32_PWM_USE_TIM1 +#define STM32_PWM_USE_TIM1 TRUE diff --git a/keyboards/black_hellebore/readme.md b/keyboards/black_hellebore/readme.md new file mode 100644 index 000000000000..bd4bc3e4babe --- /dev/null +++ b/keyboards/black_hellebore/readme.md @@ -0,0 +1,24 @@ +# The Black Hellebore + +* Keyboard Maintainer: [MATTMCCA](https://github.com/MATTMCCA) +* Hardware Supported: *https://github.com/MATTMCCA/The-Black-Hellebore* +* Hardware Availability: *https://github.com/MATTMCCA/The-Black-Hellebore* + +Make example for this keyboard (after setting up your build environment): + + make black_hellebore:default + +Flashing example for this keyboard: + + make black_hellebore:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available + diff --git a/keyboards/black_hellebore/rules.mk b/keyboards/black_hellebore/rules.mk new file mode 100644 index 000000000000..5c0a6c7c0445 --- /dev/null +++ b/keyboards/black_hellebore/rules.mk @@ -0,0 +1,2 @@ +RGB_MATRIX_DRIVER = WS2812 +WS2812_DRIVER = pwm From b24fa2f9db91bb5425f2346adda53cfbdc741710 Mon Sep 17 00:00:00 2001 From: Natan-P Date: Tue, 24 Jan 2023 15:19:34 +0100 Subject: [PATCH 102/139] escaped stray backslash in bux.py (#19667) --- lib/python/qmk/cli/bux.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/python/qmk/cli/bux.py b/lib/python/qmk/cli/bux.py index 504ee35d6e2d..8c7f17277961 100755 --- a/lib/python/qmk/cli/bux.py +++ b/lib/python/qmk/cli/bux.py @@ -34,7 +34,7 @@ def bux(cli): @B _y ]# ,c vUWNWWPsfsssN9WyccnckAfUfWb0DR0&R5RRRddq2_ `@D`jr@2U@#c3@1@Qc- B@ @B !7! .r]` }AE0RdRqNd9dNR9fUIzzosPqqAddNNdER9EE9dPy! BQ!zy@iU@.Q@@y@8x- B@ @B :****>. '7adddDdR&gRNdRbd&dNNbbRdNdd5NdRRD0RSf}- .k0&EW`xR .8Q=NRRx B@ -@B =**-rx*r}r~}" ;n2jkzsf3N3zsKsP5dddRddddRddNNqPzy\" '~****" B@ +@B =**-rx*r}r~}" ;n2jkzsf3N3zsKsP5dddRddddRddNNqPzy\\" '~****" B@ @B :!!~!;=~r>:*_ `:^vxikylulKfHkyjzzozoIoklix|^!-` B@ @B ```'-_""::::!:_-.`` B@ @B `- .` B@ From 419a7944a461c78e985cf975a5a4e6bacbbeebd2 Mon Sep 17 00:00:00 2001 From: arrowj <172841+arrowj@users.noreply.github.com> Date: Tue, 24 Jan 2023 09:17:24 -0600 Subject: [PATCH 103/139] Update understanding_qmk.md (#19664) Changed "...4 row by 5 column numpad" to "...5 row by 4 column numpad" on line 46. --- docs/understanding_qmk.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/understanding_qmk.md b/docs/understanding_qmk.md index ab7834e24ab1..7b436a45beaa 100644 --- a/docs/understanding_qmk.md +++ b/docs/understanding_qmk.md @@ -43,7 +43,7 @@ While there are different strategies for doing the actual matrix detection, they } ``` -That datastructure is a direct representation of the matrix for a 4 row by 5 column numpad. When a key is pressed that key's position within the matrix will be returned as `1` instead of `0`. +That datastructure is a direct representation of the matrix for a 5 row by 4 column numpad. When a key is pressed that key's position within the matrix will be returned as `1` instead of `0`. Matrix Scanning runs many times per second. The exact rate varies but typically it runs at least 10 times per second to avoid perceptible lag. From 8af872056afd3b448c5203f4cd773d8c5cee15eb Mon Sep 17 00:00:00 2001 From: Christian Brauner Date: Tue, 24 Jan 2023 21:03:05 +0100 Subject: [PATCH 104/139] [Keymap] Update brauner preonic layout (#19665) --- keyboards/preonic/keymaps/brauner/keymap.c | 58 ++++++++++------------ 1 file changed, 26 insertions(+), 32 deletions(-) diff --git a/keyboards/preonic/keymaps/brauner/keymap.c b/keyboards/preonic/keymaps/brauner/keymap.c index 13b3b7b97145..85317852df76 100644 --- a/keyboards/preonic/keymaps/brauner/keymap.c +++ b/keyboards/preonic/keymaps/brauner/keymap.c @@ -48,7 +48,6 @@ enum preonic_keycodes { #define LT_LOWER_SPC LT(_LOWER, KC_SPC) #define LM_COMP_LALT LM(_COMPOSITOR, MOD_LALT) -#define LM_COMP_LALT_LSFT LM(_COMPOSITOR, MOD_LALT | MOD_LSFT) #define KO_LAYER_MASK_EXCEPT(layer) ((~0) & ~(1 << layer)) @@ -142,24 +141,24 @@ const key_override_t **key_overrides = (const key_override_t *[]){ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty - * ,------------------------------------------------------------------------------------------------------------------------------------. - * | Caps Lock | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Leader | - * |--------------+--------------------+------+------+------+------+-----------+------+------+------+--------------------+--------------| - * | Ctrl | Q | W | E | R | T | Y/Copy | U/Ü | I | O/Ö | P/Paste | Ctrl | - * |--------------+--------------------+------+------+------+------+-----------+------+------+------+--------------------+--------------| - * | Shift/Esc | A/Ä | S/ß | D | F | G | H | J | K | L | ' | Shift/Enter | - * |--------------+--------------------+------+------+------+------+-----------+------+------+------+--------------------+--------------| - * |Compositor+Alt| Z |X/Cut | C | V | B | N | M | , | . | / |Compositor+Alt| - * |--------------+--------------------+------+------+------+------+-----------+------+------+------+--------------------+--------------| - * | |Compositor+Alt+Shift| | |Raise |Lower |Lower/Space|Raise | | |Compositor+Alt+Shift| Manage | - * `------------------------------------------------------------------------------------------------------------------------------------' + * ,----------------------------------------------------------------------------------------------------------. + * | Caps Lock | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Leader | + * |--------------+-------+------+------+------+------+-----------+------+------+------+-------+--------------| + * | Ctrl | Q | W | E | R | T | Y/Copy | U/Ü | I | O/Ö |P/Paste| Ctrl | + * |--------------+-------+------+------+------+------+-----------+------+------+------+-------+--------------| + * | Shift/Esc | A/Ä | S/ß | D | F | G | H | J | K | L | ' | Shift/Enter | + * |--------------+-------+------+------+------+------+-----------+------+------+------+-------+--------------| + * | Alt | Z |X/Cut | C | V | B | N | M | , | . | / | Alt | + * |--------------+-------+------+------+------+------+-----------+------+------+------+-------+--------------| + * | Mouse | | | |Raise |Lower |Lower/Space|Raise | | | | Manage | + * `----------------------------------------------------------------------------------------------------------' */ [_QWERTY] = LAYOUT_preonic_grid( - KC_CAPS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LEAD, - KC_LCTL, KC_Q, KC_W, KC_E, KC_R, KC_T, LT_COPY_Y, LT_UE_U, KC_I, LT_OE_O, LT_PASTE_P, KC_RCTL, - MOD_TAP_LSFT_ESC, LT_AE_A, LT_SZ_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, MOD_TAP_LSFT_ENT, - LM_COMP_LALT, KC_Z, LT_CUT_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, LM_COMP_LALT, - _______, LM_COMP_LALT_LSFT, _______, _______, RAISE, LOWER, LT_LOWER_SPC, RAISE, _______, _______, _______, MANAGE + KC_CAPS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LEAD, + KC_LCTL, KC_Q, KC_W, KC_E, KC_R, KC_T, LT_COPY_Y, LT_UE_U, KC_I, LT_OE_O, LT_PASTE_P, KC_RCTL, + MOD_TAP_LSFT_ESC, LT_AE_A, LT_SZ_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, MOD_TAP_LSFT_ENT, + LM_COMP_LALT, KC_Z, LT_CUT_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, LM_COMP_LALT, + TG(_MOUSE), _______, _______, _______, RAISE, LOWER, LT_LOWER_SPC, RAISE, _______, _______, _______, MANAGE ), /* Lower * ,-----------------------------------------------------------------------------------. @@ -203,7 +202,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), /* Mouse * ,-------------------------------------------------------------------------------------------------------------------------------------------------------. - * | Caps Lock | | | | | | | | | | | Leader | + * | | | | | | | | | | | | | * |--------------+-------+--------------+--------------+--------------+--------------+-----------+-----------+---------+------------+------+--------------| * | | | | | | |Wheel Left |Wheel Down |Wheel Up |Wheel Right | | Ctrl | * |--------------+-------+--------------+--------------+--------------+--------------+-----------+-----------+---------+------------+------+--------------| @@ -211,15 +210,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------------+-------+--------------+--------------+--------------+--------------+-----------+-----------+---------+------------+------+--------------| * |Compositor+Alt| | | | | | | | | | |Compositor+Alt| * |--------------+-------+--------------+--------------+--------------+--------------+-----------+-----------+---------+------------+------+--------------| - * | | | |Accelaration 2|Accelaration 1|Accelaration 0| | | | | | | + * |Mouse | | |Accelaration 2|Accelaration 1|Accelaration 0| | | | | | | * `-------------------------------------------------------------------------------------------------------------------------------------------------------' */ [_MOUSE] = LAYOUT_preonic_grid( - _______, 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, KC_MS_WH_LEFT, KC_MS_WH_DOWN, KC_MS_WH_UP, KC_MS_WH_RIGHT, XXXXXXX, _______, XXXXXXX, XXXXXXX, KC_MS_BTN3, KC_MS_BTN2, KC_MS_BTN1, XXXXXXX, KC_MS_LEFT, KC_MS_DOWN, KC_MS_UP, KC_MS_RIGHT, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, - XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_ACCEL2, KC_MS_ACCEL1, KC_MS_ACCEL0, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + _______, XXXXXXX, XXXXXXX, KC_MS_ACCEL2, KC_MS_ACCEL1, KC_MS_ACCEL0, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX ), /* Manage * ,---------------------------------------------------------------------------------------. @@ -247,7 +246,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------| * | | Q | W | E | R | T | Y | U | I | O | P | | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | A | S | D | F | G | H | J | K | L | ' |Enter | + * |Shift | A | S | D | F | G | H | J | K | L | ' |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | Z | X | C | V | B | N | M | , | . | / | | * |------+------+------+------+------+------+------+------+------+------+------+------| @@ -255,11 +254,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_COMPOSITOR] = LAYOUT_preonic_grid( - XXXXXXX, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, XXXXXXX, - XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, XXXXXXX, - XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT, - XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + XXXXXXX, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, XXXXXXX, + XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, XXXXXXX, + _______, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, _______, + XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX ) }; @@ -396,11 +395,6 @@ static inline void leader_bindings(void) { SEQ_ONE_KEY(KC_P) { tap_code16(C(S(KC_V))); } - - /* Toggle mouse layer. */ - SEQ_ONE_KEY(KC_CAPS) { - layer_invert(_MOUSE); - } } } From fa132baa43a69ce7245e977916280eac5f8a0485 Mon Sep 17 00:00:00 2001 From: Darkhan Date: Wed, 25 Jan 2023 00:19:32 +0000 Subject: [PATCH 105/139] Decrease LED animation frequency to improve performance (#19677) --- keyboards/annepro2/config_led.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/annepro2/config_led.h b/keyboards/annepro2/config_led.h index e6d4dc35fba9..12ccd995ad8d 100644 --- a/keyboards/annepro2/config_led.h +++ b/keyboards/annepro2/config_led.h @@ -20,8 +20,8 @@ #define RGB_MATRIX_LED_COUNT 61 -/* Limit animations to 62.5 FPS to avoid tearing. (1/.016 = 62.5 FPS). */ -#define RGB_MATRIX_LED_FLUSH_LIMIT 16 +/* Limit animations to 25 FPS to avoid tearing. (1/.040 = 25 FPS). */ +#define RGB_MATRIX_LED_FLUSH_LIMIT 40 #define RGB_MATRIX_FRAMEBUFFER_EFFECTS #define RGB_MATRIX_KEYPRESSES From 3823046712c3c28c14a219b78d7d3bc30f76493f Mon Sep 17 00:00:00 2001 From: schwarzer-geiger Date: Thu, 26 Jan 2023 11:34:27 -0500 Subject: [PATCH 106/139] new keyboard: edinburgh41 (#19569) * added edinburgh41 Co-authored-by: Joel Challis Co-authored-by: jack <0x6a73@protonmail.com> Co-authored-by: Ryan Co-authored-by: Drashna Jaelre --- keyboards/edinburgh41/config.h | 42 ++++ keyboards/edinburgh41/edinburgh41.c | 16 ++ keyboards/edinburgh41/edinburgh41.h | 42 ++++ keyboards/edinburgh41/info.json | 66 ++++++ .../edinburgh41/keymaps/default/keymap.c | 167 +++++++++++++ keyboards/edinburgh41/keymaps/lalit/config.h | 19 ++ keyboards/edinburgh41/keymaps/lalit/keymap.c | 220 ++++++++++++++++++ keyboards/edinburgh41/keymaps/lalit/rules.mk | 1 + keyboards/edinburgh41/readme.md | 27 +++ keyboards/edinburgh41/rules.mk | 15 ++ 10 files changed, 615 insertions(+) create mode 100644 keyboards/edinburgh41/config.h create mode 100644 keyboards/edinburgh41/edinburgh41.c create mode 100644 keyboards/edinburgh41/edinburgh41.h create mode 100644 keyboards/edinburgh41/info.json create mode 100644 keyboards/edinburgh41/keymaps/default/keymap.c create mode 100644 keyboards/edinburgh41/keymaps/lalit/config.h create mode 100644 keyboards/edinburgh41/keymaps/lalit/keymap.c create mode 100644 keyboards/edinburgh41/keymaps/lalit/rules.mk create mode 100644 keyboards/edinburgh41/readme.md create mode 100644 keyboards/edinburgh41/rules.mk diff --git a/keyboards/edinburgh41/config.h b/keyboards/edinburgh41/config.h new file mode 100644 index 000000000000..d1f5c41fd49c --- /dev/null +++ b/keyboards/edinburgh41/config.h @@ -0,0 +1,42 @@ +// Copyright 2022 L. Mistry (@schwarzer-geiger) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "config_common.h" + +#define MATRIX_ROW_PINS \ + { F4, F5, F6, F7, B1, B3, B2 } +#define MATRIX_COL_PINS \ + { D1, D4, C6, D7, E6, B4 } + +#define DIODE_DIRECTION COL2ROW + +#define DEBOUNCE 5 + +// Underglow LED settings + +#define RGB_DI_PIN D0 +#define RGBLED_NUM 10 + +// Thumbstick settings +#define ANALOG_JOYSTICK_X_AXIS_PIN B5 +#define ANALOG_JOYSTICK_Y_AXIS_PIN B6 + +// Thumbstick defaults + +#ifndef SCROLLING_LAYER + #define SCROLLING_LAYER 1 +#endif +#ifndef TAPPING_LAYER + #define TAPPING_LAYER 2 +#endif +#ifndef CURSOR_SPEED + #define CURSOR_SPEED 70 +#endif +#ifndef SCROLL_SPEED + #define SCROLL_SPEED 25 +#endif +#ifndef SCROLL_DELAY_MS + #define SCROLL_DELAY_MS 70 +#endif diff --git a/keyboards/edinburgh41/edinburgh41.c b/keyboards/edinburgh41/edinburgh41.c new file mode 100644 index 000000000000..28c07d51bb55 --- /dev/null +++ b/keyboards/edinburgh41/edinburgh41.c @@ -0,0 +1,16 @@ +/* Copyright 2022 schwarzer-geiger + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "edinburgh41.h" diff --git a/keyboards/edinburgh41/edinburgh41.h b/keyboards/edinburgh41/edinburgh41.h new file mode 100644 index 000000000000..64cf9ff9103a --- /dev/null +++ b/keyboards/edinburgh41/edinburgh41.h @@ -0,0 +1,42 @@ +/* Copyright 2022 schwarzer-geiger + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "quantum.h" + +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K30, K31, K32, K33, K34, K35, \ + K10, K11, K12, K13, K14, K15, K40, K41, K42, K43, K44, K45, \ + K20, K21, K22, K23, K24, K25, K50, K51, K52, K53, K54, K55, \ + K60, K61, K62, K63, K64 \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05 }, \ + { K10, K11, K12, K13, K14, K15 }, \ + { K20, K21, K22, K23, K24, K25 }, \ + { K30, K31, K32, K33, K34, K35 }, \ + { K40, K41, K42, K43, K44, K45 }, \ + { K50, K51, K52, K53, K54, K55 }, \ + { K60, K61, K62, K63, K64, KC_NO } \ +} diff --git a/keyboards/edinburgh41/info.json b/keyboards/edinburgh41/info.json new file mode 100644 index 000000000000..6a8d8b4bf91f --- /dev/null +++ b/keyboards/edinburgh41/info.json @@ -0,0 +1,66 @@ +{ + "manufacturer": "L. Mistry", + "keyboard_name": "edinburgh41", + "maintainer": "schwarzer-geiger", + "bootloader": "atmel-dfu", + "processor": "atmega32u4", + "url": "https://github.com/schwarzer-geiger/Edinburgh41", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"K00", "x":0, "y":0.54}, + {"label":"K01", "x":1, "y":0.36}, + {"label":"K02", "x":2, "y":0.18}, + {"label":"K03", "x":3, "y":0}, + {"label":"K04", "x":4, "y":0.18}, + {"label":"K05", "x":5, "y":0.36}, + + {"label":"K30", "x":7, "y":0.36}, + {"label":"K31", "x":8, "y":0.18}, + {"label":"K32", "x":9, "y":0}, + {"label":"K33", "x":10, "y":0.18}, + {"label":"K34", "x":11, "y":0.36}, + {"label":"K35", "x":12, "y":0.54}, + + {"label":"K10", "x":0, "y":1.54}, + {"label":"K11", "x":1, "y":1.36}, + {"label":"K12", "x":2, "y":1.18}, + {"label":"K13", "x":3, "y":1}, + {"label":"K14", "x":4, "y":1.18}, + {"label":"K15", "x":5, "y":1.36}, + + {"label":"K40", "x":7, "y":1.36}, + {"label":"K41", "x":8, "y":1.18}, + {"label":"K42", "x":9, "y":1}, + {"label":"K43", "x":10, "y":1.18}, + {"label":"K44", "x":11, "y":1.36}, + {"label":"K45", "x":12, "y":1.54}, + + {"label":"K20", "x":0, "y":2.54}, + {"label":"K21", "x":1, "y":2.36}, + {"label":"K22", "x":2, "y":2.18}, + {"label":"K23", "x":3, "y":2}, + {"label":"K24", "x":4, "y":2.18}, + {"label":"K25", "x":5, "y":2.36}, + + {"label":"K50", "x":7, "y":2.36}, + {"label":"K51", "x":8, "y":2.18}, + {"label":"K52", "x":9, "y":2}, + {"label":"K53", "x":10, "y":2.18}, + {"label":"K54", "x":11, "y":2.36}, + {"label":"K55", "x":12, "y":2.54}, + + {"label":"K60", "x":2.875, "y":3.54, "w":1.25}, + {"label":"K61", "x":4.125, "y":3.54, "w":1.25}, + {"label":"K62", "x":5.375, "y":3.54, "w":2.25}, + {"label":"K63", "x":7.625, "y":3.54, "w":1.25}, + {"label":"K64", "x":8.875, "y":3.54, "w":1.25} + ] + } + } +} diff --git a/keyboards/edinburgh41/keymaps/default/keymap.c b/keyboards/edinburgh41/keymaps/default/keymap.c new file mode 100644 index 000000000000..b39a1758bcb5 --- /dev/null +++ b/keyboards/edinburgh41/keymaps/default/keymap.c @@ -0,0 +1,167 @@ +/* Copyright 2022 schwarzer-geiger + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +enum layer_names { + _BASE, + _LOWER, + _RAISE, + _ADJUST +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) +#define ADJUST MO(_ADJUST) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = 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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_ENT), + KC_LALT, LOWER, KC_SPC, RAISE, KC_RGUI + ), + + [_LOWER] = LAYOUT( + _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, + _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_GRV, KC_TILD, + _______, KC_ESC, KC_LGUI, KC_LALT, KC_CAPS, KC_DQUO, KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_PSCR, RSFT_T(KC_SPC), + _______, _______, KC_ENT, _______, _______ + ), + + [_RAISE] = LAYOUT( + _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + _______, KC_ESC, KC_RGUI, KC_RALT, KC_CAPS, KC_QUOT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + _______, _______, KC_BSPC, _______, _______ + ), + + [_ADJUST] = LAYOUT( + RGB_VAI, RGB_SAI, RGB_HUI, RGB_MOD, XXXXXXX, RGB_TOG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RGB_VAD, RGB_SAD, RGB_HUD, RGB_RMOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, _______, XXXXXXX, _______, _______ + ), +}; + + +// Thumbstick keymap, change KC_XXX to whatever you need + +#define THUMBSTICK_RIGHT_TAP KC_RIGHT +#define THUMBSTICK_LEFT_TAP KC_LEFT +#define THUMBSTICK_UP_TAP KC_UP +#define THUMBSTICK_DOWN_TAP KC_DOWN + +// Thumbstick code, no customisation needed + +bool cursor_mode = false; +bool scrolling_mode = false; +bool tapping_mode = false; + +// tracks if thumbstick was released +bool returned_to_zero = true; + +// tracks how many times mouse_report.x/y have been read zero in succession +uint16_t zero_reads = 0; + +// set mode depending on layer +layer_state_t layer_state_set_user(layer_state_t state) { + state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); + switch (get_highest_layer(state)) { + case SCROLLING_LAYER: + if (scrolling_mode == false) { + scrolling_mode = true; + } + if (tapping_mode) { + tapping_mode = false; + } + if (cursor_mode) { + cursor_mode = false; + } + break; + case TAPPING_LAYER: + if (tapping_mode == false) { + tapping_mode = true; + } + if (cursor_mode) { + cursor_mode = false; + } + if (scrolling_mode) { + scrolling_mode = false; + } + break; + default: + if (scrolling_mode) { + scrolling_mode = false; + } + if (tapping_mode) { + tapping_mode = false; + } + if (cursor_mode == false) { + cursor_mode = true; + } + break; + } + return state; +} + +// manipulate mouse report based on current mode +report_mouse_t pointing_device_task_user(report_mouse_t mouse_report) { + + if (cursor_mode) { + mouse_report.x = CURSOR_SPEED * mouse_report.x/100; + mouse_report.y = CURSOR_SPEED * mouse_report.y/100; + } + if (scrolling_mode) { + mouse_report.h = SCROLL_SPEED * mouse_report.x/100; + mouse_report.v = SCROLL_SPEED * mouse_report.y/100; + mouse_report.x = 0; + mouse_report.y = 0; + if ((mouse_report.h != 0) | (mouse_report.v != 0)) { + _delay_ms(SCROLL_DELAY_MS); + } + + } else if (tapping_mode) { + if ((mouse_report.x || mouse_report.y) != 0) { + if (returned_to_zero) { + if (mouse_report.x > 0) { + tap_code16(THUMBSTICK_RIGHT_TAP); + } + if (mouse_report.x < 0) { + tap_code16(THUMBSTICK_LEFT_TAP); + } + if (mouse_report.y > 0) { + tap_code16(THUMBSTICK_DOWN_TAP); + } + if (mouse_report.y < 0) { + tap_code16(THUMBSTICK_UP_TAP); + } + returned_to_zero = false; + } + zero_reads = 0; + } else if (zero_reads < 20) { + zero_reads++; + } + if (zero_reads >= 20) { + if (returned_to_zero == false) { + returned_to_zero = true; + } + } + mouse_report.x = 0; + mouse_report.y = 0; + } + + return mouse_report; +} diff --git a/keyboards/edinburgh41/keymaps/lalit/config.h b/keyboards/edinburgh41/keymaps/lalit/config.h new file mode 100644 index 000000000000..b8304212e28b --- /dev/null +++ b/keyboards/edinburgh41/keymaps/lalit/config.h @@ -0,0 +1,19 @@ +// Copyright 2022 L. Mistry (@schwarzer-geiger) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +// Underglow LED settings + +#define RGBLIGHT_SLEEP + +// Thumbstick settings + +#undef CURSOR_SPEED +#define CURSOR_SPEED 95 + +#undef SCROLL_SPEED +#define SCROLL_SPEED 20 + +// tap dance settings +#define TAPPING_TERM 155 diff --git a/keyboards/edinburgh41/keymaps/lalit/keymap.c b/keyboards/edinburgh41/keymaps/lalit/keymap.c new file mode 100644 index 000000000000..91e9b8fe2683 --- /dev/null +++ b/keyboards/edinburgh41/keymaps/lalit/keymap.c @@ -0,0 +1,220 @@ +/* Copyright 2022 schwarzer-geiger + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum layer_names { + _BASE, + _LOWER, + _RAISE, + _ADJUST +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) +#define ADJUST MO(_ADJUST) + +enum custom_keycodes { + AE_UMLAUT = SAFE_RANGE, + UE_UMLAUT, + OE_UMLAUT, + SS_UMLAUT +}; + +enum { + TD_J_QUOTE, + TD_H_DQT, +}; + +// Tap Dance definitions +qk_tap_dance_action_t tap_dance_actions[] = { + // Tap once for J, twice for Semicolon + [TD_J_QUOTE] = ACTION_TAP_DANCE_DOUBLE(KC_J, KC_QUOTE), + // Tap once for K, twice for Colon + [TD_H_DQT] = ACTION_TAP_DANCE_DOUBLE(KC_H, KC_DOUBLE_QUOTE), +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + LT(RAISE, KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, TD(TD_H_DQT), TD(TD_J_QUOTE), KC_K, KC_L, KC_MS_BTN1, KC_ENTER, + LGUI(KC_TAB), KC_Y, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_SCLN, + KC_LCTL, KC_LSFT, KC_NO, KC_SPC, LOWER + ), + + [_LOWER] = LAYOUT( + RGB_TOG, KC_NO, KC_LBRC, KC_RBRC, KC_NO, KC_NO, KC_NO, LGUI(KC_SPC), KC_MINUS, LSFT(KC_EQUAL), KC_NO, LGUI(LSFT(KC_4)), + _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + _______, KC_NO, LSFT(KC_LBRC), LSFT(KC_RBRC), KC_NO, KC_NO, KC_NO, KC_EQUAL, KC_BSLS, KC_GRAVE, KC_NO, KC_NO, + _______, _______, KC_NO, _______, _______ + ), + + [_RAISE] = LAYOUT( + _______, KC_NO, KC_UP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + _______, KC_LEFT, KC_DOWN, KC_RIGHT, KC_NO, KC_NO, KC_NO, UE_UMLAUT, OE_UMLAUT, AE_UMLAUT, SS_UMLAUT, KC_NO, + _______, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + _______, _______, KC_NO, _______, _______ + ), + + [_ADJUST] = LAYOUT( + RGB_VAI, RGB_SAI, RGB_HUI, RGB_MOD, XXXXXXX, RGB_TOG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RGB_VAD, RGB_SAD, RGB_HUD, RGB_RMOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, _______, XXXXXXX, _______, _______ + ), +}; + +// German Umlaute macro for Mac US keyboard + +bool process_record_user(uint16_t keycode, keyrecord_t* record) { + switch (keycode) { + case AE_UMLAUT: + if (record->event.pressed) { + // when keycode AE_UMLAUT is pressed + SEND_STRING(SS_LALT("u") "a"); + } else { + // when keycode AE_UMLAUT is released + } + break; + case UE_UMLAUT: + if (record->event.pressed) { + SEND_STRING(SS_LALT("u") "u"); + } else { + } + break; + case OE_UMLAUT: + if (record->event.pressed) { + SEND_STRING(SS_LALT("u") "o"); + } else { + } + break; + case SS_UMLAUT: + if (record->event.pressed) { + SEND_STRING(SS_LALT("s")); + } else { + } + break; + } + return true; +}; + +// Thumbstick keymap, change KC_XXX to whatever you need + +#define THUMBSTICK_RIGHT_TAP KC_RIGHT +#define THUMBSTICK_LEFT_TAP KC_LEFT +#define THUMBSTICK_UP_TAP KC_UP +#define THUMBSTICK_DOWN_TAP KC_DOWN + +// Thumbstick code, no customisation needed + +bool cursor_mode = false; +bool scrolling_mode = false; +bool tapping_mode = false; + +// tracks if thumbstick was released +bool returned_to_zero = true; + +// tracks how many times mouse_report.x/y have been read zero in succession +uint16_t zero_reads = 0; + +// set mode depending on layer +layer_state_t layer_state_set_user(layer_state_t state) { + switch (get_highest_layer(state)) { + case SCROLLING_LAYER: + if (scrolling_mode == false) { + scrolling_mode = true; + } + if (tapping_mode) { + tapping_mode = false; + } + if (cursor_mode) { + cursor_mode = false; + } + break; + case TAPPING_LAYER: + if (tapping_mode == false) { + tapping_mode = true; + } + if (cursor_mode) { + cursor_mode = false; + } + if (scrolling_mode) { + scrolling_mode = false; + } + break; + default: + if (scrolling_mode) { + scrolling_mode = false; + } + if (tapping_mode) { + tapping_mode = false; + } + if (cursor_mode == false) { + cursor_mode = true; + } + break; + } + return state; +} + +// manipulate mouse report based on current mode +report_mouse_t pointing_device_task_user(report_mouse_t mouse_report) { + + if (cursor_mode) { + mouse_report.x = CURSOR_SPEED * mouse_report.x/100; + mouse_report.y = CURSOR_SPEED * mouse_report.y/100; + } + if (scrolling_mode) { + mouse_report.h = SCROLL_SPEED * mouse_report.x/100; + mouse_report.v = SCROLL_SPEED * mouse_report.y/100; + mouse_report.x = 0; + mouse_report.y = 0; + if ((mouse_report.h != 0) | (mouse_report.v != 0)) { + _delay_ms(SCROLL_DELAY_MS); + } + + } else if (tapping_mode) { + if ((mouse_report.x || mouse_report.y) != 0) { + if (returned_to_zero) { + if (mouse_report.x > 0) { + tap_code16(THUMBSTICK_RIGHT_TAP); + } + if (mouse_report.x < 0) { + tap_code16(THUMBSTICK_LEFT_TAP); + } + if (mouse_report.y > 0) { + tap_code16(THUMBSTICK_DOWN_TAP); + } + if (mouse_report.y < 0) { + tap_code16(THUMBSTICK_UP_TAP); + } + returned_to_zero = false; + } + zero_reads = 0; + } else if (zero_reads < 20) { + zero_reads++; + } + if (zero_reads >= 20) { + if (returned_to_zero == false) { + returned_to_zero = true; + } + } + mouse_report.x = 0; + mouse_report.y = 0; + } + + return mouse_report; +} diff --git a/keyboards/edinburgh41/keymaps/lalit/rules.mk b/keyboards/edinburgh41/keymaps/lalit/rules.mk new file mode 100644 index 000000000000..e5ddcae8d927 --- /dev/null +++ b/keyboards/edinburgh41/keymaps/lalit/rules.mk @@ -0,0 +1 @@ +TAP_DANCE_ENABLE = yes diff --git a/keyboards/edinburgh41/readme.md b/keyboards/edinburgh41/readme.md new file mode 100644 index 000000000000..61f3fac0173a --- /dev/null +++ b/keyboards/edinburgh41/readme.md @@ -0,0 +1,27 @@ +# edinburgh41 + +![edinburgh41](https://i.imgur.com/Lrjyp6nh.png) + +A small 40% board based on gtip's reviung41. The gasket mounted edinburgh41 features joystick with versatile functionality and rgb underglow. + +* Keyboard Maintainer: [Lalit Mistry](https://github.com/schwarzer-geiger) +* Hardware Supported: edinburgh41 pcb with pro micro or wired equivalent +* Hardware Availability: Contact me, lalitmistry1407@gmail.com + +Make example for this keyboard (after setting up your build environment): + + make edinburgh41:default + +Flashing example for this keyboard: + + make edinburgh41: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 top left key while plugging keyboard into computer +* **Physical reset button**: Short RST and GND pins +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/edinburgh41/rules.mk b/keyboards/edinburgh41/rules.mk new file mode 100644 index 000000000000..bf33c793b6bf --- /dev/null +++ b/keyboards/edinburgh41/rules.mk @@ -0,0 +1,15 @@ +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + +POINTING_DEVICE_ENABLE = yes +POINTING_DEVICE_DRIVER = analog_joystick From 19ecd697570784bff8803edc2f18a8ee75d3d4ce Mon Sep 17 00:00:00 2001 From: Charly Delay <0xcharly@users.noreply.github.com> Date: Fri, 27 Jan 2023 03:43:08 +0900 Subject: [PATCH 107/139] Rename `LAYOUT` macros identifier that contained the keyboard name (#19657) --- keyboards/bastardkb/charybdis/3x5/3x5.h | 2 +- keyboards/bastardkb/charybdis/3x5/info.json | 5 ++++- keyboards/bastardkb/charybdis/3x5/keymaps/bstiq/config.h | 4 ++++ keyboards/bastardkb/charybdis/3x5/keymaps/bstiq/keymap.c | 2 +- .../bastardkb/charybdis/3x5/keymaps/default/keymap.c | 6 +++--- keyboards/bastardkb/charybdis/3x5/keymaps/via/keymap.c | 2 +- keyboards/bastardkb/charybdis/3x6/3x6.h | 2 +- keyboards/bastardkb/charybdis/3x6/info.json | 5 ++++- .../bastardkb/charybdis/3x6/keymaps/default/keymap.c | 6 +++--- keyboards/bastardkb/charybdis/3x6/keymaps/via/keymap.c | 8 ++++---- keyboards/bastardkb/charybdis/4x6/4x6.h | 2 +- keyboards/bastardkb/charybdis/4x6/info.json | 5 ++++- .../bastardkb/charybdis/4x6/keymaps/default/keymap.c | 6 +++--- keyboards/bastardkb/charybdis/4x6/keymaps/via/keymap.c | 8 ++++---- 14 files changed, 38 insertions(+), 25 deletions(-) diff --git a/keyboards/bastardkb/charybdis/3x5/3x5.h b/keyboards/bastardkb/charybdis/3x5/3x5.h index 665fcbeec287..4ea3ef94bb19 100644 --- a/keyboards/bastardkb/charybdis/3x5/3x5.h +++ b/keyboards/bastardkb/charybdis/3x5/3x5.h @@ -21,7 +21,7 @@ #include "charybdis.h" // clang-format off -#define LAYOUT_charybdis_3x5( \ +#define LAYOUT( \ k00, k01, k02, k03, k04, k44, k43, k42, k41, k40, \ k10, k11, k12, k13, k14, k54, k53, k52, k51, k50, \ k20, k21, k22, k23, k24, k64, k63, k62, k61, k60, \ diff --git a/keyboards/bastardkb/charybdis/3x5/info.json b/keyboards/bastardkb/charybdis/3x5/info.json index efa863ea4b00..0c47d1a3ad9e 100644 --- a/keyboards/bastardkb/charybdis/3x5/info.json +++ b/keyboards/bastardkb/charybdis/3x5/info.json @@ -5,8 +5,11 @@ "pid": "0x1832", "vid": "0xA8F8" }, + "layout_aliases": { + "LAYOUT_charybdis_3x5": "LAYOUT" + }, "layouts": { - "LAYOUT_charybdis_3x5": { + "LAYOUT": { "layout": [ { "label": "L00", "x": 0, "y": 0 }, { "label": "L01", "x": 1, "y": 0 }, diff --git a/keyboards/bastardkb/charybdis/3x5/keymaps/bstiq/config.h b/keyboards/bastardkb/charybdis/3x5/keymaps/bstiq/config.h index cceba7c1fb16..3ab7e56ebdb4 100644 --- a/keyboards/bastardkb/charybdis/3x5/keymaps/bstiq/config.h +++ b/keyboards/bastardkb/charybdis/3x5/keymaps/bstiq/config.h @@ -156,10 +156,14 @@ # define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT // Slow swirl at startup. +# undef RGB_MATRIX_DEFAULT_SPD # define RGB_MATRIX_DEFAULT_SPD 32 // Startup values. +# undef RGB_MATRIX_DEFAULT_HUE # define RGB_MATRIX_DEFAULT_HUE 0 +# undef RGB_MATRIX_DEFAULT_SAT # define RGB_MATRIX_DEFAULT_SAT 255 +# undef RGB_MATRIX_DEFAULT_VAL # define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/bastardkb/charybdis/3x5/keymaps/bstiq/keymap.c b/keyboards/bastardkb/charybdis/3x5/keymaps/bstiq/keymap.c index 2664b531a23f..8f02227c0182 100644 --- a/keyboards/bastardkb/charybdis/3x5/keymaps/bstiq/keymap.c +++ b/keyboards/bastardkb/charybdis/3x5/keymaps/bstiq/keymap.c @@ -182,7 +182,7 @@ enum charybdis_keymap_bstiq_layers { __VA_ARGS__ #define MOUSE_MOD(...) _MOUSE_MOD(__VA_ARGS__) -#define LAYOUT_wrapper(...) LAYOUT_charybdis_3x5(__VA_ARGS__) +#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [LAYER_BASE] = LAYOUT_wrapper( diff --git a/keyboards/bastardkb/charybdis/3x5/keymaps/default/keymap.c b/keyboards/bastardkb/charybdis/3x5/keymaps/default/keymap.c index 60c314630877..b1bd74957dbb 100644 --- a/keyboards/bastardkb/charybdis/3x5/keymaps/default/keymap.c +++ b/keyboards/bastardkb/charybdis/3x5/keymaps/default/keymap.c @@ -32,7 +32,7 @@ enum charybdis_keymap_layers { // clang-format off const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [LAYER_BASE] = LAYOUT_charybdis_3x5( + [LAYER_BASE] = LAYOUT( // ╭─────────────────────────────────────────────╮ ╭─────────────────────────────────────────────╮ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, // ├─────────────────────────────────────────────┤ ├─────────────────────────────────────────────┤ @@ -44,7 +44,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // ╰───────────────────────────╯ ╰──────────────────╯ ), - [LAYER_LOWER] = LAYOUT_charybdis_3x5( + [LAYER_LOWER] = LAYOUT( // ╭─────────────────────────────────────────────╮ ╭─────────────────────────────────────────────╮ RGB_TOG, KC_MNXT, KC_MPLY, KC_MPRV, XXXXXXX, KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, // ├─────────────────────────────────────────────┤ ├─────────────────────────────────────────────┤ @@ -56,7 +56,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // ╰───────────────────────────╯ ╰──────────────────╯ ), - [LAYER_RAISE] = LAYOUT_charybdis_3x5( + [LAYER_RAISE] = LAYOUT( // ╭─────────────────────────────────────────────╮ ╭─────────────────────────────────────────────╮ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLU, KC_MUTE, KC_VOLD, XXXXXXX, // ├─────────────────────────────────────────────┤ ├─────────────────────────────────────────────┤ diff --git a/keyboards/bastardkb/charybdis/3x5/keymaps/via/keymap.c b/keyboards/bastardkb/charybdis/3x5/keymaps/via/keymap.c index ec93cec6273d..4a9154809052 100644 --- a/keyboards/bastardkb/charybdis/3x5/keymaps/via/keymap.c +++ b/keyboards/bastardkb/charybdis/3x5/keymaps/via/keymap.c @@ -200,7 +200,7 @@ static uint16_t auto_pointer_layer_timer = 0; __VA_ARGS__ #define POINTER_MOD(...) _POINTER_MOD(__VA_ARGS__) -#define LAYOUT_wrapper(...) LAYOUT_charybdis_3x5(__VA_ARGS__) +#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [LAYER_BASE] = LAYOUT_wrapper( diff --git a/keyboards/bastardkb/charybdis/3x6/3x6.h b/keyboards/bastardkb/charybdis/3x6/3x6.h index bf5de31036f9..71c22a561bd5 100644 --- a/keyboards/bastardkb/charybdis/3x6/3x6.h +++ b/keyboards/bastardkb/charybdis/3x6/3x6.h @@ -20,7 +20,7 @@ #include "charybdis.h" // clang-format off -#define LAYOUT_charybdis_3x6( \ +#define LAYOUT( \ k00, k01, k02, k03, k04, k05, k45, k44, k43, k42, k41, k40, \ k10, k11, k12, k13, k14, k15, k55, k54, k53, k52, k51, k50, \ k20, k21, k22, k23, k24, k25, k65, k64, k63, k62, k61, k60, \ diff --git a/keyboards/bastardkb/charybdis/3x6/info.json b/keyboards/bastardkb/charybdis/3x6/info.json index 4851da1d53e7..92c424788fe3 100644 --- a/keyboards/bastardkb/charybdis/3x6/info.json +++ b/keyboards/bastardkb/charybdis/3x6/info.json @@ -3,8 +3,11 @@ "usb": { "pid": "0x1834" }, + "layout_aliases": { + "LAYOUT_charybdis_3x6": "LAYOUT" + }, "layouts": { - "LAYOUT_charybdis_3x6": { + "LAYOUT": { "layout": [ { "label": "L00", "x": 0, "y": 0 }, { "label": "L01", "x": 1, "y": 0 }, diff --git a/keyboards/bastardkb/charybdis/3x6/keymaps/default/keymap.c b/keyboards/bastardkb/charybdis/3x6/keymaps/default/keymap.c index 8632ab7258e1..c3aa67a944a5 100644 --- a/keyboards/bastardkb/charybdis/3x6/keymaps/default/keymap.c +++ b/keyboards/bastardkb/charybdis/3x6/keymaps/default/keymap.c @@ -27,7 +27,7 @@ enum charybdis_keymap_layers { // clang-format off const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [LAYER_BASE] = LAYOUT_charybdis_3x6( + [LAYER_BASE] = LAYOUT( // ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮ KC_LGUI, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_RGUI, // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ @@ -39,7 +39,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // ╰───────────────────────────╯ ╰──────────────────╯ ), - [LAYER_LOWER] = LAYOUT_charybdis_3x6( + [LAYER_LOWER] = LAYOUT( // ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮ XXXXXXX, RGB_TOG, KC_MNXT, KC_MPLY, KC_MPRV, XXXXXXX, KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, XXXXXXX, // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ @@ -51,7 +51,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // ╰───────────────────────────╯ ╰──────────────────╯ ), - [LAYER_RAISE] = LAYOUT_charybdis_3x6( + [LAYER_RAISE] = LAYOUT( // ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLU, KC_MUTE, KC_VOLD, XXXXXXX, XXXXXXX, // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ diff --git a/keyboards/bastardkb/charybdis/3x6/keymaps/via/keymap.c b/keyboards/bastardkb/charybdis/3x6/keymaps/via/keymap.c index 7f6eb6a91161..fd56cce25dc0 100644 --- a/keyboards/bastardkb/charybdis/3x6/keymaps/via/keymap.c +++ b/keyboards/bastardkb/charybdis/3x6/keymaps/via/keymap.c @@ -45,7 +45,7 @@ static uint16_t auto_pointer_layer_timer = 0; // clang-format off const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [LAYER_BASE] = LAYOUT_charybdis_3x6( + [LAYER_BASE] = LAYOUT( // ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮ KC_LGUI, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_RGUI, // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ @@ -57,7 +57,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // ╰───────────────────────────╯ ╰──────────────────╯ ), - [LAYER_LOWER] = LAYOUT_charybdis_3x6( + [LAYER_LOWER] = LAYOUT( // ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮ XXXXXXX, RGB_TOG, KC_MNXT, KC_MPLY, KC_MPRV, XXXXXXX, KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, XXXXXXX, // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ @@ -69,7 +69,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // ╰───────────────────────────╯ ╰──────────────────╯ ), - [LAYER_RAISE] = LAYOUT_charybdis_3x6( + [LAYER_RAISE] = LAYOUT( // ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLU, KC_MUTE, KC_VOLD, XXXXXXX, XXXXXXX, // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ @@ -81,7 +81,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // ╰───────────────────────────╯ ╰──────────────────╯ ), - [LAYER_POINTER] = LAYOUT_charybdis_3x6( + [LAYER_POINTER] = LAYOUT( // ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DPI_MOD, S_D_MOD, S_D_MOD, DPI_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ diff --git a/keyboards/bastardkb/charybdis/4x6/4x6.h b/keyboards/bastardkb/charybdis/4x6/4x6.h index c26d356d6970..0d8810266e9b 100644 --- a/keyboards/bastardkb/charybdis/4x6/4x6.h +++ b/keyboards/bastardkb/charybdis/4x6/4x6.h @@ -21,7 +21,7 @@ #include "charybdis.h" // clang-format off -#define LAYOUT_charybdis_4x6( \ +#define LAYOUT( \ k00, k01, k02, k03, k04, k05, k55, k54, k53, k52, k51, k50, \ k10, k11, k12, k13, k14, k15, k65, k64, k63, k62, k61, k60, \ k20, k21, k22, k23, k24, k25, k75, k74, k73, k72, k71, k70, \ diff --git a/keyboards/bastardkb/charybdis/4x6/info.json b/keyboards/bastardkb/charybdis/4x6/info.json index 0b929a2188cd..6f3b6ec57ed5 100644 --- a/keyboards/bastardkb/charybdis/4x6/info.json +++ b/keyboards/bastardkb/charybdis/4x6/info.json @@ -5,8 +5,11 @@ "pid": "0x1833", "vid": "0xA8F8" }, + "layout_aliases": { + "LAYOUT_charybdis_4x6": "LAYOUT" + }, "layouts": { - "LAYOUT_charybdis_4x6": { + "LAYOUT": { "layout": [ { "label": "L00", "x": 0, "y": 0 }, { "label": "L01", "x": 1, "y": 0 }, diff --git a/keyboards/bastardkb/charybdis/4x6/keymaps/default/keymap.c b/keyboards/bastardkb/charybdis/4x6/keymaps/default/keymap.c index 98edad47d9d2..304e9fc9a483 100644 --- a/keyboards/bastardkb/charybdis/4x6/keymaps/default/keymap.c +++ b/keyboards/bastardkb/charybdis/4x6/keymaps/default/keymap.c @@ -27,7 +27,7 @@ enum charybdis_keymap_layers { // clang-format off const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [LAYER_BASE] = LAYOUT_charybdis_4x6( + [LAYER_BASE] = LAYOUT( // ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // ╰───────────────────────────╯ ╰──────────────────╯ ), - [LAYER_LOWER] = LAYOUT_charybdis_4x6( + [LAYER_LOWER] = LAYOUT( // ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_UNDS, // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ @@ -57,7 +57,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // ╰───────────────────────────╯ ╰──────────────────╯ ), - [LAYER_RAISE] = LAYOUT_charybdis_4x6( + [LAYER_RAISE] = LAYOUT( // ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮ KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ diff --git a/keyboards/bastardkb/charybdis/4x6/keymaps/via/keymap.c b/keyboards/bastardkb/charybdis/4x6/keymaps/via/keymap.c index 1050974212ec..fb795829fde1 100644 --- a/keyboards/bastardkb/charybdis/4x6/keymaps/via/keymap.c +++ b/keyboards/bastardkb/charybdis/4x6/keymaps/via/keymap.c @@ -56,7 +56,7 @@ static uint16_t auto_pointer_layer_timer = 0; // clang-format off const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [LAYER_BASE] = LAYOUT_charybdis_4x6( + [LAYER_BASE] = LAYOUT( // ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ @@ -71,7 +71,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // ╰───────────────────────────╯ ╰──────────────────╯ ), - [LAYER_LOWER] = LAYOUT_charybdis_4x6( + [LAYER_LOWER] = LAYOUT( // ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_UNDS, // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ @@ -86,7 +86,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // ╰───────────────────────────╯ ╰──────────────────╯ ), - [LAYER_RAISE] = LAYOUT_charybdis_4x6( + [LAYER_RAISE] = LAYOUT( // ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮ KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ @@ -101,7 +101,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // ╰───────────────────────────╯ ╰──────────────────╯ ), - [LAYER_POINTER] = LAYOUT_charybdis_4x6( + [LAYER_POINTER] = LAYOUT( // ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ From 6e42b5854902963469a4016abeca48a9df5c1c46 Mon Sep 17 00:00:00 2001 From: AnotherStranger Date: Thu, 26 Jan 2023 22:14:34 +0100 Subject: [PATCH 108/139] VIA keymap for the dactyl manuform 4x6 (#19668) Co-authored-by: adophoxia <100170946+adophoxia@users.noreply.github.com> Co-authored-by: Drashna Jaelre --- .../dactyl_manuform/4x6/keymaps/via/config.h | 28 +++++ .../dactyl_manuform/4x6/keymaps/via/keymap.c | 108 ++++++++++++++++++ .../dactyl_manuform/4x6/keymaps/via/rules.mk | 1 + 3 files changed, 137 insertions(+) create mode 100644 keyboards/handwired/dactyl_manuform/4x6/keymaps/via/config.h create mode 100644 keyboards/handwired/dactyl_manuform/4x6/keymaps/via/keymap.c create mode 100644 keyboards/handwired/dactyl_manuform/4x6/keymaps/via/rules.mk diff --git a/keyboards/handwired/dactyl_manuform/4x6/keymaps/via/config.h b/keyboards/handwired/dactyl_manuform/4x6/keymaps/via/config.h new file mode 100644 index 000000000000..ce7fd324eb25 --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/4x6/keymaps/via/config.h @@ -0,0 +1,28 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert +Copyright 2023 André Büsgen + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +/* Select hand configuration */ +// #define MASTER_LEFT +// #define MASTER_RIGHT + +#define EE_HANDS diff --git a/keyboards/handwired/dactyl_manuform/4x6/keymaps/via/keymap.c b/keyboards/handwired/dactyl_manuform/4x6/keymaps/via/keymap.c new file mode 100644 index 000000000000..3e70e664af88 --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/4x6/keymaps/via/keymap.c @@ -0,0 +1,108 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert +Copyright 2023 André Büsgen + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H + +enum layers{ + _BASE, + _RAISE, + _LOWER, + _BLANK +}; + +#define SFT_ESC SFT_T(KC_ESC) +#define CTL_BSPC CTL_T(KC_BSPC) +#define ALT_SPC ALT_T(KC_SPC) +#define SFT_ENT SFT_T(KC_ENT) + +#define KC_ML KC_MS_LEFT +#define KC_MR KC_MS_RIGHT +#define KC_MU KC_MS_UP +#define KC_MD KC_MS_DOWN +#define KC_MB1 KC_MS_BTN1 +#define KC_MB2 KC_MS_BTN1 + +#define RAISE MO(_RAISE) +#define LOWER MO(_LOWER) + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base (qwerty) + * +-----------------------------------------+ +-----------------------------------------+ + * | ESC | q | w | e | r | t | | y | u | i | o | p | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | TAB | a | s | d | f | g | | h | j | k | l | ; | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | SHFT | z | x | c | v | b | | n | m | , | . | / | | + * +------+------+------+------+-------------+ +-------------+------+------+------+------+ + * | [ | ] | | | | + * +-------------+-------------+ +-------------+-------------+ + * | | | | | | + * |------+------| |------+------| + * | | | | | | + * +-------------+ +-------------+ + * +-------------+ +-------------+ + * | | | | | | + * |------+------| |------+------| + * | | | | | | + * +-------------+ +-------------+ + */ + [_BASE] = LAYOUT( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_BSLS, + KC_LBRC, KC_RBRC, KC_PLUS, KC_EQL, + RAISE, KC_SPC, KC_ENT, LOWER, + KC_TAB, KC_HOME, KC_END, KC_DEL, + KC_BSPC, KC_GRV, KC_LGUI, KC_LALT + ), + + [_LOWER] = LAYOUT( + _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_P7, KC_P8, KC_P9, QK_BOOT, KC_PLUS, + _______, KC_HOME, KC_PGUP, KC_PGDN, KC_END , KC_LPRN, KC_RPRN, KC_P4, KC_P5, KC_P6, KC_MINS, KC_PIPE, + _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_EQL, KC_UNDS, + _______, KC_PSCR, _______, KC_P0, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______ + ), + + [_RAISE] = LAYOUT( + _______, QK_BOOT, _______, _______, _______, KC_LBRC, KC_RBRC, _______, KC_NUM, KC_INS, KC_SCRL, KC_MUTE, + _______, KC_LEFT, KC_UP , KC_DOWN, KC_RGHT, KC_LPRN, KC_RPRN, KC_MPRV, KC_MPLY, KC_MNXT, _______, KC_VOLU, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, + _______, _______, KC_EQL, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______ + ), + + [_BLANK] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______ + ) +}; +//clang-format on + diff --git a/keyboards/handwired/dactyl_manuform/4x6/keymaps/via/rules.mk b/keyboards/handwired/dactyl_manuform/4x6/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/4x6/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes From b3dca4bb36d0c08e8145f6f25649aaf61b513fdd Mon Sep 17 00:00:00 2001 From: Jay Greco Date: Fri, 27 Jan 2023 00:03:57 -0800 Subject: [PATCH 109/139] Add RP2040 SCRAMBLE v2 (#19489) --- keyboards/nullbitsco/scramble/rules.mk | 21 +---- keyboards/nullbitsco/scramble/scramble.c | 22 ----- keyboards/nullbitsco/scramble/scramble.h | 17 ++-- .../nullbitsco/scramble/{ => v1}/config.h | 2 + keyboards/nullbitsco/scramble/v1/rules.mk | 21 +++++ keyboards/nullbitsco/scramble/v1/v1.c | 25 ++++++ keyboards/nullbitsco/scramble/v1/v1.h | 18 ++++ keyboards/nullbitsco/scramble/v2/config.h | 42 ++++++++++ keyboards/nullbitsco/scramble/v2/halconf.h | 9 ++ keyboards/nullbitsco/scramble/v2/mcuconf.h | 14 ++++ keyboards/nullbitsco/scramble/v2/rules.mk | 21 +++++ keyboards/nullbitsco/scramble/v2/v2.c | 84 +++++++++++++++++++ keyboards/nullbitsco/scramble/v2/v2.h | 43 ++++++++++ 13 files changed, 288 insertions(+), 51 deletions(-) rename keyboards/nullbitsco/scramble/{ => v1}/config.h (94%) create mode 100644 keyboards/nullbitsco/scramble/v1/rules.mk create mode 100644 keyboards/nullbitsco/scramble/v1/v1.c create mode 100644 keyboards/nullbitsco/scramble/v1/v1.h create mode 100644 keyboards/nullbitsco/scramble/v2/config.h create mode 100644 keyboards/nullbitsco/scramble/v2/halconf.h create mode 100644 keyboards/nullbitsco/scramble/v2/mcuconf.h create mode 100644 keyboards/nullbitsco/scramble/v2/rules.mk create mode 100644 keyboards/nullbitsco/scramble/v2/v2.c create mode 100644 keyboards/nullbitsco/scramble/v2/v2.h diff --git a/keyboards/nullbitsco/scramble/rules.mk b/keyboards/nullbitsco/scramble/rules.mk index e6d789691b51..6f83796e9f41 100644 --- a/keyboards/nullbitsco/scramble/rules.mk +++ b/keyboards/nullbitsco/scramble/rules.mk @@ -1,19 +1,4 @@ -# MCU name -MCU = atmega328p +# NOTE: This file is shared and only exists to set the default build +# The real build rules are set in the v1/v2 directories -# Bootloader selection -BOOTLOADER = usbasploader - -# 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 = 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 # Use rotary encoder +DEFAULT_FOLDER = nullbitsco/scramble/v2 diff --git a/keyboards/nullbitsco/scramble/scramble.c b/keyboards/nullbitsco/scramble/scramble.c index f9f28d2c31bc..c8a55e0d4850 100644 --- a/keyboards/nullbitsco/scramble/scramble.c +++ b/keyboards/nullbitsco/scramble/scramble.c @@ -16,25 +16,3 @@ along with this program. If not, see . */ #include QMK_KEYBOARD_H - -// place overrides here -void set_scramble_LED(uint8_t mode) { - switch(mode) { - case LED_ON: - setPinOutput(PIN_LED); - writePin(PIN_LED, GPIO_STATE_HIGH); - break; - - case LED_DIM: - setPinInput(PIN_LED); - break; - - case LED_OFF: - setPinOutput(PIN_LED); - writePin(PIN_LED, GPIO_STATE_LOW); - break; - - default: - break; - } -} diff --git a/keyboards/nullbitsco/scramble/scramble.h b/keyboards/nullbitsco/scramble/scramble.h index 101645e51d25..22c112040bf9 100644 --- a/keyboards/nullbitsco/scramble/scramble.h +++ b/keyboards/nullbitsco/scramble/scramble.h @@ -18,18 +18,13 @@ #include "quantum.h" -// Indication LED settings -#define LED_ON 2 -#define LED_DIM 1 -#define LED_OFF 0 - -#define GPIO_STATE_LOW 0 -#define GPIO_STATE_HIGH 1 - -#define PIN_LED B2 - -void set_scramble_LED(uint8_t mode); +#if defined(KEYBOARD_nullbitsco_scramble_v1) + #include "v1.h" +#elif defined(KEYBOARD_nullbitsco_scramble_v2) + #include "v2.h" +#endif +// Layout is the same in all revisions #define LAYOUT( \ K01, K02, K03, \ K11, K12, K13 \ diff --git a/keyboards/nullbitsco/scramble/config.h b/keyboards/nullbitsco/scramble/v1/config.h similarity index 94% rename from keyboards/nullbitsco/scramble/config.h rename to keyboards/nullbitsco/scramble/v1/config.h index 4333d94d376c..b249b99851f4 100644 --- a/keyboards/nullbitsco/scramble/config.h +++ b/keyboards/nullbitsco/scramble/v1/config.h @@ -15,6 +15,8 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ +/* NOTE: This config file is specific to AVR builds. */ + #pragma once #include "config_common.h" diff --git a/keyboards/nullbitsco/scramble/v1/rules.mk b/keyboards/nullbitsco/scramble/v1/rules.mk new file mode 100644 index 000000000000..c1cf175c649b --- /dev/null +++ b/keyboards/nullbitsco/scramble/v1/rules.mk @@ -0,0 +1,21 @@ +# NOTE: This file is specific to AVR builds. + +# MCU name +MCU = atmega328p + +# Bootloader selection +BOOTLOADER = usbasploader + +# 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 = 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 # Use rotary encoder diff --git a/keyboards/nullbitsco/scramble/v1/v1.c b/keyboards/nullbitsco/scramble/v1/v1.c new file mode 100644 index 000000000000..4b5e8e3e6719 --- /dev/null +++ b/keyboards/nullbitsco/scramble/v1/v1.c @@ -0,0 +1,25 @@ +// Copyright 2022 Jay Greco +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "v1.h" + +void set_scramble_LED(uint8_t mode) { + switch(mode) { + case LED_ON: + setPinOutput(PIN_LED); + writePin(PIN_LED, GPIO_STATE_HIGH); + break; + + case LED_DIM: + setPinInput(PIN_LED); + break; + + case LED_OFF: + setPinOutput(PIN_LED); + writePin(PIN_LED, GPIO_STATE_LOW); + break; + + default: + break; + } +} diff --git a/keyboards/nullbitsco/scramble/v1/v1.h b/keyboards/nullbitsco/scramble/v1/v1.h new file mode 100644 index 000000000000..5dc6d4a0e825 --- /dev/null +++ b/keyboards/nullbitsco/scramble/v1/v1.h @@ -0,0 +1,18 @@ +// Copyright 2022 Jay Greco +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "scramble.h" + +// Indication LED settings +#define LED_ON 2 +#define LED_DIM 1 +#define LED_OFF 0 + +#define GPIO_STATE_LOW 0 +#define GPIO_STATE_HIGH 1 + +#define PIN_LED B2 + +void set_scramble_LED(uint8_t mode); diff --git a/keyboards/nullbitsco/scramble/v2/config.h b/keyboards/nullbitsco/scramble/v2/config.h new file mode 100644 index 000000000000..a2eb9712f91e --- /dev/null +++ b/keyboards/nullbitsco/scramble/v2/config.h @@ -0,0 +1,42 @@ +/* +Copyright 2021 Jay Greco + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +/* NOTE: This config file is specific to RP2040 builds. */ + +#pragma once + +#include "config_common.h" + +/* key matrix size */ +#define MATRIX_ROWS 2 +#define MATRIX_COLS 3 + +#define DIRECT_PINS {{GP6,GP8,GP10}, {GP29,GP28,GP22}} + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 10 + +/* Optional encoder pins */ +#define ENCODERS_PAD_A { GP24 } +#define ENCODERS_PAD_B { GP25 } +#define TAP_CODE_DELAY 10 + +/* RP2040-specific defines*/ +#define RP2040_FLASH_GENERIC_03H +#define I2C1_SDA_PIN GP26 +#define I2C1_SCL_PIN GP27 +#define I2C_DRIVER I2CD2 diff --git a/keyboards/nullbitsco/scramble/v2/halconf.h b/keyboards/nullbitsco/scramble/v2/halconf.h new file mode 100644 index 000000000000..2cc40eaa91c1 --- /dev/null +++ b/keyboards/nullbitsco/scramble/v2/halconf.h @@ -0,0 +1,9 @@ +// Copyright 2022 Jay Greco +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_I2C TRUE +#define HAL_USE_PWM TRUE + +#include_next diff --git a/keyboards/nullbitsco/scramble/v2/mcuconf.h b/keyboards/nullbitsco/scramble/v2/mcuconf.h new file mode 100644 index 000000000000..9646c6b7020b --- /dev/null +++ b/keyboards/nullbitsco/scramble/v2/mcuconf.h @@ -0,0 +1,14 @@ +// Copyright 2022 Jay Greco +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef RP_I2C_USE_I2C1 +#define RP_I2C_USE_I2C1 TRUE + +#undef RP_PWM_USE_PWM1 +#define RP_PWM_USE_PWM1 TRUE +#undef RP_PWM_USE_PWM2 +#define RP_PWM_USE_PWM2 TRUE diff --git a/keyboards/nullbitsco/scramble/v2/rules.mk b/keyboards/nullbitsco/scramble/v2/rules.mk new file mode 100644 index 000000000000..f93963285bf4 --- /dev/null +++ b/keyboards/nullbitsco/scramble/v2/rules.mk @@ -0,0 +1,21 @@ +# NOTE: This file is is specific to RP2040 builds. + +# MCU name +MCU = RP2040 + +# Bootloader selection +BOOTLOADER = rp2040 + +# 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 = 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 # Use rotary encoder diff --git a/keyboards/nullbitsco/scramble/v2/v2.c b/keyboards/nullbitsco/scramble/v2/v2.c new file mode 100644 index 000000000000..9b0a088855f2 --- /dev/null +++ b/keyboards/nullbitsco/scramble/v2/v2.c @@ -0,0 +1,84 @@ +// Copyright 2022 Jay Greco +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "v2.h" + +// SCRAMBLE PWM LED config +pwm_led_t scramble_rgb = { + {GP18, GP19, GP20}, + {&PWMD1, &PWMD1, &PWMD2}, + {0, 1, 0}, + PWM_OUTPUT_ACTIVE_LOW, + 0 +}; + +// Internal PWM init +// only runs once per PWM LED +void _init_pwm(pwm_led_t* led) { + if (!led->init_complete) { + for (int i=0; ipin[i]), PAL_PAD(led->pin[i]), PWM_PAL_MODE); + + static PWMConfig pwmCFG = { + .frequency = PWM_PWM_COUNTER_FREQUENCY, + .period = PWM_PWM_PERIOD, + }; + + // Channels are always configured as active low + // If active high is needed, pwm is inverted in _set_led_pwm() + pwmCFG.channels[0].mode = PWM_OUTPUT_ACTIVE_LOW; + pwmCFG.channels[1].mode = PWM_OUTPUT_ACTIVE_LOW; + pwmStart(led->driver[i], &pwmCFG); + + // Start LEDs in the OFF state + uint8_t pwm = led->mode == PWM_OUTPUT_ACTIVE_HIGH ? 100 : 0; + pwmEnableChannel(led->driver[i], led->channel[i], PWM_FRACTION_TO_WIDTH(led->driver[i], 99, pwm)); + } + + led->init_complete = 1; + } +} + +// Internal generic PWM setter +void _set_led_pwm(uint8_t pwm, pwm_led_t* led, uint8_t channel) { + if (pwm > 100) pwm = 100; + if (led->mode == PWM_OUTPUT_ACTIVE_HIGH) pwm = (100 - pwm); + + _init_pwm(led); + pwmEnableChannel(led->driver[channel], led->channel[channel], PWM_FRACTION_TO_WIDTH(led->driver[channel], 99, pwm)); +} + +// SCRAMBLE +void set_scramble_LED(uint8_t mode) { + switch(mode) { + case LED_ON: + set_scramble_LED_rgb_pwm(65, 100, 95); + break; + + case LED_DIM: + set_scramble_LED_rgb_pwm(3, 9, 3); + break; + + default: //LED_OFF + set_scramble_LED_rgb_pwm(0, 0, 0); + break; + } +} + +void set_scramble_LED_rgb_pwm(uint8_t r_pwm, uint8_t g_pwm, uint8_t b_pwm) { + _set_led_pwm(r_pwm, &scramble_rgb, RED); + _set_led_pwm(g_pwm, &scramble_rgb, GREEN); + _set_led_pwm(b_pwm, &scramble_rgb, BLUE); +} + +void set_scramble_LED_r_pwm(uint8_t pwm) { + _set_led_pwm(pwm, &scramble_rgb, RED); +} + +void set_scramble_LED_g_pwm(uint8_t pwm) { + _set_led_pwm(pwm, &scramble_rgb, GREEN); +} + +void set_scramble_LED_b_pwm(uint8_t pwm) { + _set_led_pwm(pwm, &scramble_rgb, BLUE); +} diff --git a/keyboards/nullbitsco/scramble/v2/v2.h b/keyboards/nullbitsco/scramble/v2/v2.h new file mode 100644 index 000000000000..d278c0a86a67 --- /dev/null +++ b/keyboards/nullbitsco/scramble/v2/v2.h @@ -0,0 +1,43 @@ +// Copyright 2022 Jay Greco +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "scramble.h" +#include + +enum led_mode { + LED_OFF = 0, + LED_DIM, + LED_ON, + NUM_LED_MODE +}; + +enum rgb_idx { + RED = 0, + GREEN, + BLUE, + NUM_RGB_IDX +}; + +typedef struct pwm_led_t { + uint32_t pin[3]; + PWMDriver* driver[3]; + uint8_t channel[3]; + uint8_t mode; + uint8_t init_complete; +} pwm_led_t; + +#define PWM_PAL_MODE (PAL_MODE_ALTERNATE_PWM | PAL_RP_PAD_DRIVE12 | PAL_RP_GPIO_OE) +#define PWM_PWM_COUNTER_FREQUENCY 1000000 +#define PWM_PWM_PERIOD PWM_PWM_COUNTER_FREQUENCY / 1000 + +// RP2040 adds HW PWM control! +// PWM values are in percent, 0-100 +void + set_scramble_LED(uint8_t mode), + set_scramble_LED_rgb_pwm(uint8_t r_pwm, uint8_t g_pwm, uint8_t b_pwm), + set_scramble_LED_r_pwm(uint8_t pwm), + set_scramble_LED_g_pwm(uint8_t pwm), + set_scramble_LED_b_pwm(uint8_t pwm); + \ No newline at end of file From 9aaf1c26f028d22bae8fdf9d63e21d1b9951a3bd Mon Sep 17 00:00:00 2001 From: Patrick Muldoon Date: Fri, 27 Jan 2023 08:35:26 -0800 Subject: [PATCH 110/139] Swap LED_PIN_ON_STATE to 0. (#19692) User reported that CAPS lock Led state was inverted after soldering a LED to their board. LED_PIN_ON_STATE defaults to 1, so just swap to low. Flashed board and now CAPS LED reflects the actual state --- keyboards/mode/m80v2/config.h | 1 + 1 file changed, 1 insertion(+) diff --git a/keyboards/mode/m80v2/config.h b/keyboards/mode/m80v2/config.h index 9382def58aec..6a8864fdb9cd 100644 --- a/keyboards/mode/m80v2/config.h +++ b/keyboards/mode/m80v2/config.h @@ -38,3 +38,4 @@ along with this program. If not, see . #define LOCKING_RESYNC_ENABLE #define LED_CAPS_LOCK_PIN A0 +#define LED_PIN_ON_STATE 0 From acea06b4f5d7dbbe3a65ea512a367b8fb202b5e2 Mon Sep 17 00:00:00 2001 From: adophoxia <100170946+adophoxia@users.noreply.github.com> Date: Fri, 27 Jan 2023 13:39:38 -0800 Subject: [PATCH 111/139] [Keyboard] Update effects for Keychron Q2 (#19685) --- keyboards/keychron/q2/config.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/keyboards/keychron/q2/config.h b/keyboards/keychron/q2/config.h index 210ecb1201f3..51b5b72faa0b 100644 --- a/keyboards/keychron/q2/config.h +++ b/keyboards/keychron/q2/config.h @@ -103,4 +103,7 @@ #define ENABLE_RGB_MATRIX_SPLASH // #define ENABLE_RGB_MATRIX_MULTISPLASH #define ENABLE_RGB_MATRIX_SOLID_SPLASH -#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH +// #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH + +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS From ce7bb639998f97536c562c2cde5afbd3e3a0950e Mon Sep 17 00:00:00 2001 From: azhizhinov Date: Sat, 28 Jan 2023 01:52:05 +0300 Subject: [PATCH 112/139] VIA keymap for Reviung 34. (#19694) VIA keymap for Reviung 34. --- .../reviung/reviung34/keymaps/via/keymap.c | 69 +++++++++++++++++++ .../reviung/reviung34/keymaps/via/rules.mk | 3 + 2 files changed, 72 insertions(+) create mode 100644 keyboards/reviung/reviung34/keymaps/via/keymap.c create mode 100644 keyboards/reviung/reviung34/keymaps/via/rules.mk diff --git a/keyboards/reviung/reviung34/keymaps/via/keymap.c b/keyboards/reviung/reviung34/keymaps/via/keymap.c new file mode 100644 index 000000000000..44ec64bdd371 --- /dev/null +++ b/keyboards/reviung/reviung34/keymaps/via/keymap.c @@ -0,0 +1,69 @@ +/* Copyright 2019 gtips + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +enum layer_names { + _BASE, + _LOWER, + _RAISE, + _ADJUST +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) + +#define CT_Q LCTL_T(KC_Q) +#define CT_CM RCTL_T(KC_COMM) +#define SF_Z LSFT_T(KC_Z) +#define SF_SS RSFT_T(KC_SLSH) +#define AL_X LALT_T(KC_X) +#define AL_DT RALT_T(KC_DOT) +#define RA_SP LT(RAISE, KC_SPC) + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_reviung34( + CT_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, + SF_Z, AL_X, KC_C, KC_V, KC_B, KC_N, KC_M, CT_CM, AL_DT, SF_SS, + KC_TAB, KC_BSPC, LOWER, RA_SP + ), + + [_LOWER] = LAYOUT_reviung34( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, + KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_SCLN, + KC_LSFT, KC_ESC, KC_LGUI, KC_LALT, KC_QUOT, KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_BSPC, + _______, _______, _______, _______ + ), + + [_RAISE] = LAYOUT_reviung34( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, XXXXXXX, XXXXXXX, KC_GRV, KC_TILD, KC_COLN, + KC_LSFT, KC_ESC, KC_RGUI, KC_LALT, KC_DQUO, KC_TAB, XXXXXXX, KC_RCTL, KC_RALT, KC_DEL, + _______, _______, _______, _______ + ), + + [_ADJUST] = LAYOUT_reviung34( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSCR, + KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_F11, KC_F12, KC_CAPS, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, _______, _______, _______ + ), +}; + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); +} diff --git a/keyboards/reviung/reviung34/keymaps/via/rules.mk b/keyboards/reviung/reviung34/keymaps/via/rules.mk new file mode 100644 index 000000000000..5d85ccd10314 --- /dev/null +++ b/keyboards/reviung/reviung34/keymaps/via/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes +RGBLIGHT_ENABLE = no +LTO_ENABLE = yes From 981f3c316cb1619aef554fbb2913c8d1b03b0d08 Mon Sep 17 00:00:00 2001 From: Albert Y <76888457+filterpaper@users.noreply.github.com> Date: Sun, 29 Jan 2023 00:41:50 +0800 Subject: [PATCH 113/139] Additional handedness by EEPROM examples (#19686) Co-authored-by: jack <0x6a73@protonmail.com> Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com> --- docs/feature_split_keyboard.md | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/docs/feature_split_keyboard.md b/docs/feature_split_keyboard.md index 0b475cc63d60..fff72f71f3ad 100644 --- a/docs/feature_split_keyboard.md +++ b/docs/feature_split_keyboard.md @@ -132,28 +132,25 @@ To enable this method, add the following to your `config.h` file: #define EE_HANDS ``` -Next, you will have to flash the EEPROM files once for the correct hand to the controller on each halve. You can do this manually with the following bootloader targets while flashing the firmware: +Next, you will have to flash the correct handedness option to the controller on each halve. You can do this manually with the following bootloader targets using `qmk flash -kb -km -bl ` command to flash: -* AVR controllers with the Caterina bootloader (e.g. Pro Micro): - * `:avrdude-split-left` - * `:avrdude-split-right` -* AVR controllers with the stock Amtel DFU or DFU compatible bootloader (e.g. Elite-C): - * `:dfu-split-left` - * `:dfu-split-right` -* ARM controllers with a DFU compatible bootloader (e.g. Proton-C): - * `:dfu-util-split-left` - * `:dfu-util-split-right` -* ARM controllers with a UF2 compatible bootloader: - * `:uf2-split-left` - * `:uf2-split-right` - -Example: +|Microcontroller Type|Bootloader Parameter| +|--------------------|--------------------| +|AVR controllers with Caterina bootloader
(e.g. Pro Micro)|`avrdude-split-left`
`avrdude-split-right`| +|AVR controllers with the stock Amtel DFU or DFU compatible bootloader
(e.g. Elite-C)|`dfu-split-left`
`dfu-split-right`| +|ARM controllers with a DFU compatible bootloader
(e.g. Proton-C)|`dfu-util-split-left`
`dfu-util-split-right`| +|ARM controllers with a UF2 compatible bootloader
(e.g. RP2040)|`uf2-split-left`
`uf2-split-right`| +Example for `crkbd/rev1` keyboard with normal AVR Pro Micro MCUs, reset the left controller and run: +``` +qmk flash -kb crkbd/rev1 -km default -bl avrdude-split-left +``` +Reset the right controller and run: ``` -make crkbd:default:avrdude-split-left +qmk flash -kb crkbd/rev1 -km default -bl avrdude-split-right ``` -?> ARM controllers using `dfu-util` will require an EEPROM reset after setting handedness. This can be done using the `EE_CLR` keycode or [Bootmagic Lite](feature_bootmagic.md). Controllers using emulated EEPROM will always require handedness parameter when flashing the firmware. +?> Some controllers (e.g. Blackpill with DFU compatible bootloader) will need to be flashed with handedness bootloader parameter every time because it is not retained between flashes. ?> [QMK Toolbox]() can also be used to flash EEPROM handedness files. Place the controller in bootloader mode and select menu option Tools -> EEPROM -> Set Left/Right Hand From d322b4c041d4b600fee00ba7f94966ac9a9e2dfa Mon Sep 17 00:00:00 2001 From: yiancar Date: Sun, 29 Jan 2023 16:59:13 +0000 Subject: [PATCH 114/139] [Keyboard] Baion 808 (#19690) Co-authored-by: jack <0x6a73@protonmail.com> Co-authored-by: Joel Challis Co-authored-by: yiancar --- keyboards/baion_808/baion_808.c | 22 +++ keyboards/baion_808/baion_808.h | 164 +++++++++++++++++++ keyboards/baion_808/config.h | 66 ++++++++ keyboards/baion_808/info.json | 42 +++++ keyboards/baion_808/keymaps/default/keymap.c | 27 +++ keyboards/baion_808/keymaps/via/keymap.c | 54 ++++++ keyboards/baion_808/keymaps/via/rules.mk | 1 + keyboards/baion_808/readme.md | 38 +++++ keyboards/baion_808/rules.mk | 22 +++ 9 files changed, 436 insertions(+) create mode 100755 keyboards/baion_808/baion_808.c create mode 100644 keyboards/baion_808/baion_808.h create mode 100755 keyboards/baion_808/config.h create mode 100755 keyboards/baion_808/info.json create mode 100644 keyboards/baion_808/keymaps/default/keymap.c create mode 100644 keyboards/baion_808/keymaps/via/keymap.c create mode 100755 keyboards/baion_808/keymaps/via/rules.mk create mode 100755 keyboards/baion_808/readme.md create mode 100755 keyboards/baion_808/rules.mk diff --git a/keyboards/baion_808/baion_808.c b/keyboards/baion_808/baion_808.c new file mode 100755 index 000000000000..4f4b7adeab39 --- /dev/null +++ b/keyboards/baion_808/baion_808.c @@ -0,0 +1,22 @@ +/* Copyright 2022 Yiancar-Designs + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "baion_808.h" + +void led_init_ports(void) { + // Set our LED pins as open drain outputs + palSetLineMode(LED_CAPS_LOCK_PIN, PAL_MODE_OUTPUT_OPENDRAIN); + palSetLineMode(LED_SCROLL_LOCK_PIN, PAL_MODE_OUTPUT_OPENDRAIN); +} diff --git a/keyboards/baion_808/baion_808.h b/keyboards/baion_808/baion_808.h new file mode 100644 index 000000000000..944b46ef9063 --- /dev/null +++ b/keyboards/baion_808/baion_808.h @@ -0,0 +1,164 @@ +/* Copyright 2022 Yiancar-Designs + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#define XXX KC_NO + +#include "quantum.h" + +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0F, KOG, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K2D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K3C, 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, K56, K5A, K5B, K5C, K5D, K5E, K5F, K5G \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, XXX, K0E, K0F, KOG }, \ + { 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, 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, XXX, K56, XXX, XXX, XXX, K5A, K5B, K5C, K5D, K5E, K5F, K5G } \ +} + +#define LAYOUT_tkl_ansi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0F, KOG, \ + 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, K3C, 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, K56, K5A, K5B, K5C, K5D, K5E, K5F, K5G \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, XXX, K0E, K0F, KOG }, \ + { 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, XXX, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, 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, XXX, K56, XXX, XXX, XXX, K5A, K5B, K5C, K5D, K5E, K5F, K5G } \ +} + +#define LAYOUT_tkl_ansi_split_bs_rshift( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0F, KOG, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K2D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K3C, 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, 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, XXX, K0E, K0F, KOG }, \ + { 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, XXX, XXX, XXX }, \ + { K40, XXX, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, XXX, K4F, XXX }, \ + { K50, K51, K52, XXX, XXX, XXX, K56, XXX, XXX, XXX, K5A, K5B, K5C, K5D, K5E, K5F, K5G } \ +} + +#define LAYOUT_tkl_ansi_tsangan( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0F, KOG, \ + 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, K3C, 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, K56, K5B, K5C, K5D, K5E, K5F, K5G \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, XXX, K0E, K0F, KOG }, \ + { 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, XXX, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, 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, XXX, K56, XXX, XXX, XXX, XXX, K5B, K5C, K5D, K5E, K5F, K5G } \ +} + +#define LAYOUT_tkl_ansi_tsangan_split_bs_rshift( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0F, KOG, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K2D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K3C, 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, K4D, K4F, \ + K50, K51, K52, K56, K5B, K5C, K5D, K5E, K5F, K5G \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, XXX, K0E, K0F, KOG }, \ + { 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, XXX, XXX, XXX }, \ + { K40, XXX, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, XXX, K4F, XXX }, \ + { K50, K51, K52, XXX, XXX, XXX, K56, XXX, XXX, XXX, XXX, K5B, K5C, K5D, K5E, K5F, K5G } \ +} + +#define LAYOUT_tkl_iso( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0F, KOG, \ + 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, \ + 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, XXX, K0E, K0F, KOG }, \ + { 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, XXX, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, 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, XXX, K56, XXX, XXX, XXX, K5A, K5B, K5C, K5D, K5E, K5F, K5G } \ +} + +#define LAYOUT_tkl_iso_split_bs_rshift( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0F, KOG, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K2D, 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, 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, XXX, K0E, K0F, KOG }, \ + { 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, 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, XXX, K56, XXX, XXX, XXX, K5A, K5B, K5C, K5D, K5E, K5F, K5G } \ +} + +#define LAYOUT_tkl_iso_tsangan( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0F, KOG, \ + 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, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4F, \ + K50, K51, K52, K56, K5B, K5C, K5D, K5E, K5F, K5G \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, XXX, K0E, K0F, KOG }, \ + { 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, XXX, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, 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, XXX, K56, XXX, XXX, XXX, XXX, K5B, K5C, K5D, K5E, K5F, K5G } \ +} + +#define LAYOUT_tkl_iso_tsangan_split_bs_rshift( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0F, KOG, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K2D, 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, K4F, \ + K50, K51, K52, K56, K5B, K5C, K5D, K5E, K5F, K5G \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, XXX, K0E, K0F, KOG }, \ + { 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, 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, XXX, K56, XXX, XXX, XXX, XXX, K5B, K5C, K5D, K5E, K5F, K5G } \ +} diff --git a/keyboards/baion_808/config.h b/keyboards/baion_808/config.h new file mode 100755 index 000000000000..f3fe8ae7993a --- /dev/null +++ b/keyboards/baion_808/config.h @@ -0,0 +1,66 @@ +/* +Copyright 2022 Yiancar-Designs + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published byß +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "config_common.h" + +#define MATRIX_ROW_PINS { A2, A14, A15, B3, B4, B5 } +#define MATRIX_COL_PINS { A1, B9, A3, A4, A5, A6, A7, B0, B1, B2, B10, B11, B12, B13, B14, B15, A8 } + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* Ensure we jump to bootloader if the RESET keycode was pressed */ +#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE + +/* Indicator LEDs */ +#define LED_CAPS_LOCK_PIN B6 +#define LED_SCROLL_LOCK_PIN B7 +#define LED_PIN_ON_STATE 0 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO diff --git a/keyboards/baion_808/info.json b/keyboards/baion_808/info.json new file mode 100755 index 000000000000..456a7c7bd7ce --- /dev/null +++ b/keyboards/baion_808/info.json @@ -0,0 +1,42 @@ +{ + "keyboard_name": "Baion 808", + "manufacturer": "Yiancar-Designs", + "url": "https://yiancar-designs.com", + "maintainer": "Yiancar-Designs", + "usb": { + "vid": "0x8968", + "pid": "0x4238", + "device_version": "0.0.1" + }, + "processor": "STM32F072", + "bootloader": "stm32-dfu", + "layouts": { + "LAYOUT_all": { + "layout": [{"x":0, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.5, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15.25, "y":0}, {"x":16.25, "y":0}, {"x":17.25, "y":0}, {"x":0, "y":1.5}, {"x":1, "y":1.5}, {"x":2, "y":1.5}, {"x":3, "y":1.5}, {"x":4, "y":1.5}, {"x":5, "y":1.5}, {"x":6, "y":1.5}, {"x":7, "y":1.5}, {"x":8, "y":1.5}, {"x":9, "y":1.5}, {"x":10, "y":1.5}, {"x":11, "y":1.5}, {"x":12, "y":1.5}, {"x":13, "y":1.5}, {"x":14, "y":1.5}, {"x":15.25, "y":1.5}, {"x":16.25, "y":1.5}, {"x":17.25, "y":1.5}, {"x":0, "y":2.5, "w":1.5}, {"x":1.5, "y":2.5}, {"x":2.5, "y":2.5}, {"x":3.5, "y":2.5}, {"x":4.5, "y":2.5}, {"x":5.5, "y":2.5}, {"x":6.5, "y":2.5}, {"x":7.5, "y":2.5}, {"x":8.5, "y":2.5}, {"x":9.5, "y":2.5}, {"x":10.5, "y":2.5}, {"x":11.5, "y":2.5}, {"x":12.5, "y":2.5}, {"x":13.5, "y":2.5, "w":1.5}, {"x":15.25, "y":2.5}, {"x":16.25, "y":2.5}, {"x":17.25, "y":2.5}, {"x":0, "y":3.5, "w":1.75}, {"x":1.75, "y":3.5}, {"x":2.75, "y":3.5}, {"x":3.75, "y":3.5}, {"x":4.75, "y":3.5}, {"x":5.75, "y":3.5}, {"x":6.75, "y":3.5}, {"x":7.75, "y":3.5}, {"x":8.75, "y":3.5}, {"x":9.75, "y":3.5}, {"x":10.75, "y":3.5}, {"x":11.75, "y":3.5}, {"x":12.75, "y":3.5, "w":2.25}, {"x":0, "y":4.5, "w":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":1.75}, {"x":14, "y":4.5}, {"x":16.25, "y":4.5}, {"x":0, "y":5.5, "w":1.25}, {"x":1.25, "y":5.5, "w":1.25}, {"x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"x":10, "y":5.5, "w":1.25}, {"x":11.25, "y":5.5, "w":1.25}, {"x":12.5, "y":5.5, "w":1.25}, {"x":13.75, "y":5.5, "w":1.25}, {"x":15.25, "y":5.5}, {"x":16.25, "y":5.5}, {"x":17.25, "y":5.5}] + }, + "LAYOUT_tkl_ansi": { + "layout": [{"x":0, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.5, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15.25, "y":0}, {"x":16.25, "y":0}, {"x":17.25, "y":0}, {"x":0, "y":1.25}, {"x":1, "y":1.25}, {"x":2, "y":1.25}, {"x":3, "y":1.25}, {"x":4, "y":1.25}, {"x":5, "y":1.25}, {"x":6, "y":1.25}, {"x":7, "y":1.25}, {"x":8, "y":1.25}, {"x":9, "y":1.25}, {"x":10, "y":1.25}, {"x":11, "y":1.25}, {"x":12, "y":1.25}, {"x":13, "y":1.25, "w":2}, {"x":15.25, "y":1.25}, {"x":16.25, "y":1.25}, {"x":17.25, "y":1.25}, {"x":0, "y":2.25, "w":1.5}, {"x":1.5, "y":2.25}, {"x":2.5, "y":2.25}, {"x":3.5, "y":2.25}, {"x":4.5, "y":2.25}, {"x":5.5, "y":2.25}, {"x":6.5, "y":2.25}, {"x":7.5, "y":2.25}, {"x":8.5, "y":2.25}, {"x":9.5, "y":2.25}, {"x":10.5, "y":2.25}, {"x":11.5, "y":2.25}, {"x":12.5, "y":2.25}, {"x":13.5, "y":2.25, "w":1.5}, {"x":15.25, "y":2.25}, {"x":16.25, "y":2.25}, {"x":17.25, "y":2.25}, {"x":0, "y":3.25, "w":1.75}, {"x":1.75, "y":3.25}, {"x":2.75, "y":3.25}, {"x":3.75, "y":3.25}, {"x":4.75, "y":3.25}, {"x":5.75, "y":3.25}, {"x":6.75, "y":3.25}, {"x":7.75, "y":3.25}, {"x":8.75, "y":3.25}, {"x":9.75, "y":3.25}, {"x":10.75, "y":3.25}, {"x":11.75, "y":3.25}, {"x":12.75, "y":3.25, "w":2.25}, {"x":0, "y":4.25, "w":2.25}, {"x":2.25, "y":4.25}, {"x":3.25, "y":4.25}, {"x":4.25, "y":4.25}, {"x":5.25, "y":4.25}, {"x":6.25, "y":4.25}, {"x":7.25, "y":4.25}, {"x":8.25, "y":4.25}, {"x":9.25, "y":4.25}, {"x":10.25, "y":4.25}, {"x":11.25, "y":4.25}, {"x":12.25, "y":4.25, "w":2.75}, {"x":16.25, "y":4.25}, {"x":0, "y":5.25, "w":1.25}, {"x":1.25, "y":5.25, "w":1.25}, {"x":2.5, "y":5.25, "w":1.25}, {"x":3.75, "y":5.25, "w":6.25}, {"x":10, "y":5.25, "w":1.25}, {"x":11.25, "y":5.25, "w":1.25}, {"x":12.5, "y":5.25, "w":1.25}, {"x":13.75, "y":5.25, "w":1.25}, {"x":15.25, "y":5.25}, {"x":16.25, "y":5.25}, {"x":17.25, "y":5.25}] + }, + "LAYOUT_tkl_ansi_split_bs_rshift": { + "layout": [{"x":0, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.5, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15.25, "y":0}, {"x":16.25, "y":0}, {"x":17.25, "y":0}, {"x":0, "y":1.25}, {"x":1, "y":1.25}, {"x":2, "y":1.25}, {"x":3, "y":1.25}, {"x":4, "y":1.25}, {"x":5, "y":1.25}, {"x":6, "y":1.25}, {"x":7, "y":1.25}, {"x":8, "y":1.25}, {"x":9, "y":1.25}, {"x":10, "y":1.25}, {"x":11, "y":1.25}, {"x":12, "y":1.25}, {"x":13, "y":1.25}, {"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.25}, {"x":1.25, "y":5.25, "w":1.25}, {"x":2.5, "y":5.25, "w":1.25}, {"x":3.75, "y":5.25, "w":6.25}, {"x":10, "y":5.25, "w":1.25}, {"x":11.25, "y":5.25, "w":1.25}, {"x":12.5, "y":5.25, "w":1.25}, {"x":13.75, "y":5.25, "w":1.25}, {"x":15.25, "y":5.25}, {"x":16.25, "y":5.25}, {"x":17.25, "y":5.25}] + }, + "LAYOUT_tkl_ansi_tsangan": { + "layout": [{"x":0, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.5, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15.25, "y":0}, {"x":16.25, "y":0}, {"x":17.25, "y":0}, {"x":0, "y":1.25}, {"x":1, "y":1.25}, {"x":2, "y":1.25}, {"x":3, "y":1.25}, {"x":4, "y":1.25}, {"x":5, "y":1.25}, {"x":6, "y":1.25}, {"x":7, "y":1.25}, {"x":8, "y":1.25}, {"x":9, "y":1.25}, {"x":10, "y":1.25}, {"x":11, "y":1.25}, {"x":12, "y":1.25}, {"x":13, "y":1.25, "w":2}, {"x":15.25, "y":1.25}, {"x":16.25, "y":1.25}, {"x":17.25, "y":1.25}, {"x":0, "y":2.25, "w":1.5}, {"x":1.5, "y":2.25}, {"x":2.5, "y":2.25}, {"x":3.5, "y":2.25}, {"x":4.5, "y":2.25}, {"x":5.5, "y":2.25}, {"x":6.5, "y":2.25}, {"x":7.5, "y":2.25}, {"x":8.5, "y":2.25}, {"x":9.5, "y":2.25}, {"x":10.5, "y":2.25}, {"x":11.5, "y":2.25}, {"x":12.5, "y":2.25}, {"x":13.5, "y":2.25, "w":1.5}, {"x":15.25, "y":2.25}, {"x":16.25, "y":2.25}, {"x":17.25, "y":2.25}, {"x":0, "y":3.25, "w":1.75}, {"x":1.75, "y":3.25}, {"x":2.75, "y":3.25}, {"x":3.75, "y":3.25}, {"x":4.75, "y":3.25}, {"x":5.75, "y":3.25}, {"x":6.75, "y":3.25}, {"x":7.75, "y":3.25}, {"x":8.75, "y":3.25}, {"x":9.75, "y":3.25}, {"x":10.75, "y":3.25}, {"x":11.75, "y":3.25}, {"x":12.75, "y":3.25, "w":2.25}, {"x":0, "y":4.25, "w":2.25}, {"x":2.25, "y":4.25}, {"x":3.25, "y":4.25}, {"x":4.25, "y":4.25}, {"x":5.25, "y":4.25}, {"x":6.25, "y":4.25}, {"x":7.25, "y":4.25}, {"x":8.25, "y":4.25}, {"x":9.25, "y":4.25}, {"x":10.25, "y":4.25}, {"x":11.25, "y":4.25}, {"x":12.25, "y":4.25, "w":2.75}, {"x":16.25, "y":4.25}, {"x":0, "y":5.25, "w":1.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_ansi_tsangan_split_bs_rshift": { + "layout": [{"x":0, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.5, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15.25, "y":0}, {"x":16.25, "y":0}, {"x":17.25, "y":0}, {"x":0, "y":1.25}, {"x":1, "y":1.25}, {"x":2, "y":1.25}, {"x":3, "y":1.25}, {"x":4, "y":1.25}, {"x":5, "y":1.25}, {"x":6, "y":1.25}, {"x":7, "y":1.25}, {"x":8, "y":1.25}, {"x":9, "y":1.25}, {"x":10, "y":1.25}, {"x":11, "y":1.25}, {"x":12, "y":1.25}, {"x":13, "y":1.25}, {"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_iso": { + "layout": [{"x":0, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.5, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15.25, "y":0}, {"x":16.25, "y":0}, {"x":17.25, "y":0}, {"x":0, "y":1.25}, {"x":1, "y":1.25}, {"x":2, "y":1.25}, {"x":3, "y":1.25}, {"x":4, "y":1.25}, {"x":5, "y":1.25}, {"x":6, "y":1.25}, {"x":7, "y":1.25}, {"x":8, "y":1.25}, {"x":9, "y":1.25}, {"x":10, "y":1.25}, {"x":11, "y":1.25}, {"x":12, "y":1.25}, {"x":13, "y":1.25, "w":2}, {"x":15.25, "y":1.25}, {"x":16.25, "y":1.25}, {"x":17.25, "y":1.25}, {"x":0, "y":2.25, "w":1.5}, {"x":1.5, "y":2.25}, {"x":2.5, "y":2.25}, {"x":3.5, "y":2.25}, {"x":4.5, "y":2.25}, {"x":5.5, "y":2.25}, {"x":6.5, "y":2.25}, {"x":7.5, "y":2.25}, {"x":8.5, "y":2.25}, {"x":9.5, "y":2.25}, {"x":10.5, "y":2.25}, {"x":11.5, "y":2.25}, {"x":12.5, "y":2.25}, {"x":13.75, "y":2.25, "w":1.25, "h":2}, {"x":15.25, "y":2.25}, {"x":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":0, "y":4.25, "w":1.25}, {"x":1.25, "y":4.25}, {"x":2.25, "y":4.25}, {"x":3.25, "y":4.25}, {"x":4.25, "y":4.25}, {"x":5.25, "y":4.25}, {"x":6.25, "y":4.25}, {"x":7.25, "y":4.25}, {"x":8.25, "y":4.25}, {"x":9.25, "y":4.25}, {"x":10.25, "y":4.25}, {"x":11.25, "y":4.25}, {"x":12.25, "y":4.25, "w":2.75}, {"x":16.25, "y":4.25}, {"x":0, "y":5.25, "w":1.25}, {"x":1.25, "y":5.25, "w":1.25}, {"x":2.5, "y":5.25, "w":1.25}, {"x":3.75, "y":5.25, "w":6.25}, {"x":10, "y":5.25, "w":1.25}, {"x":11.25, "y":5.25, "w":1.25}, {"x":12.5, "y":5.25, "w":1.25}, {"x":13.75, "y":5.25, "w":1.25}, {"x":15.25, "y":5.25}, {"x":16.25, "y":5.25}, {"x":17.25, "y":5.25}] + }, + "LAYOUT_tkl_iso_split_bs_rshift": { + "layout": [{"x":0, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.5, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15.25, "y":0}, {"x":16.25, "y":0}, {"x":17.25, "y":0}, {"x":0, "y":1.25}, {"x":1, "y":1.25}, {"x":2, "y":1.25}, {"x":3, "y":1.25}, {"x":4, "y":1.25}, {"x":5, "y":1.25}, {"x":6, "y":1.25}, {"x":7, "y":1.25}, {"x":8, "y":1.25}, {"x":9, "y":1.25}, {"x":10, "y":1.25}, {"x":11, "y":1.25}, {"x":12, "y":1.25}, {"x":13, "y":1.25}, {"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.75, "y":2.25, "w":1.25, "h":2}, {"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":0, "y":4.25, "w":1.25}, {"x":1.25, "y":4.25}, {"x":2.25, "y":4.25}, {"x":3.25, "y":4.25}, {"x":4.25, "y":4.25}, {"x":5.25, "y":4.25}, {"x":6.25, "y":4.25}, {"x":7.25, "y":4.25}, {"x":8.25, "y":4.25}, {"x":9.25, "y":4.25}, {"x":10.25, "y":4.25}, {"x":11.25, "y":4.25}, {"x":12.25, "y":4.25, "w":1.75}, {"x":14, "y":4.25}, {"x":16.25, "y":4.25}, {"x":0, "y":5.25, "w":1.25}, {"x":1.25, "y":5.25, "w":1.25}, {"x":2.5, "y":5.25, "w":1.25}, {"x":3.75, "y":5.25, "w":6.25}, {"x":10, "y":5.25, "w":1.25}, {"x":11.25, "y":5.25, "w":1.25}, {"x":12.5, "y":5.25, "w":1.25}, {"x":13.75, "y":5.25, "w":1.25}, {"x":15.25, "y":5.25}, {"x":16.25, "y":5.25}, {"x":17.25, "y":5.25}] + }, + "LAYOUT_tkl_iso_tsangan": { + "layout": [{"x":0, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.5, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15.25, "y":0}, {"x":16.25, "y":0}, {"x":17.25, "y":0}, {"x":0, "y":1.25}, {"x":1, "y":1.25}, {"x":2, "y":1.25}, {"x":3, "y":1.25}, {"x":4, "y":1.25}, {"x":5, "y":1.25}, {"x":6, "y":1.25}, {"x":7, "y":1.25}, {"x":8, "y":1.25}, {"x":9, "y":1.25}, {"x":10, "y":1.25}, {"x":11, "y":1.25}, {"x":12, "y":1.25}, {"x":13, "y":1.25, "w":2}, {"x":15.25, "y":1.25}, {"x":16.25, "y":1.25}, {"x":17.25, "y":1.25}, {"x":0, "y":2.25, "w":1.5}, {"x":1.5, "y":2.25}, {"x":2.5, "y":2.25}, {"x":3.5, "y":2.25}, {"x":4.5, "y":2.25}, {"x":5.5, "y":2.25}, {"x":6.5, "y":2.25}, {"x":7.5, "y":2.25}, {"x":8.5, "y":2.25}, {"x":9.5, "y":2.25}, {"x":10.5, "y":2.25}, {"x":11.5, "y":2.25}, {"x":12.5, "y":2.25}, {"x":13.75, "y":2.25, "w":1.25, "h":2}, {"x":15.25, "y":2.25}, {"x":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":0, "y":4.25, "w":1.25}, {"x":1.25, "y":4.25}, {"x":2.25, "y":4.25}, {"x":3.25, "y":4.25}, {"x":4.25, "y":4.25}, {"x":5.25, "y":4.25}, {"x":6.25, "y":4.25}, {"x":7.25, "y":4.25}, {"x":8.25, "y":4.25}, {"x":9.25, "y":4.25}, {"x":10.25, "y":4.25}, {"x":11.25, "y":4.25}, {"x":12.25, "y":4.25, "w":2.75}, {"x":16.25, "y":4.25}, {"x":0, "y":5.25, "w":1.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_iso_tsangan_split_bs_rshift": { + "layout": [{"x":0, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.5, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15.25, "y":0}, {"x":16.25, "y":0}, {"x":17.25, "y":0}, {"x":0, "y":1.25}, {"x":1, "y":1.25}, {"x":2, "y":1.25}, {"x":3, "y":1.25}, {"x":4, "y":1.25}, {"x":5, "y":1.25}, {"x":6, "y":1.25}, {"x":7, "y":1.25}, {"x":8, "y":1.25}, {"x":9, "y":1.25}, {"x":10, "y":1.25}, {"x":11, "y":1.25}, {"x":12, "y":1.25}, {"x":13, "y":1.25}, {"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.75, "y":2.25, "w":1.25, "h":2}, {"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":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}] + } + } +} diff --git a/keyboards/baion_808/keymaps/default/keymap.c b/keyboards/baion_808/keymaps/default/keymap.c new file mode 100644 index 000000000000..862a28cd81a3 --- /dev/null +++ b/keyboards/baion_808/keymaps/default/keymap.c @@ -0,0 +1,27 @@ +/* Copyright 2022 Yiancar-Designs + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT_all( /* Base */ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, + + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_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, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT) +}; diff --git a/keyboards/baion_808/keymaps/via/keymap.c b/keyboards/baion_808/keymaps/via/keymap.c new file mode 100644 index 000000000000..81edc335341e --- /dev/null +++ b/keyboards/baion_808/keymaps/via/keymap.c @@ -0,0 +1,54 @@ +/* Copyright 2022 Yiancar-Designs + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT_all( /* Base */ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, + + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_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, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + +[1] = LAYOUT_all( /* Empty for dynamic keymaps */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +[2] = LAYOUT_all( /* Empty for dynamic keymaps */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +[3] = LAYOUT_all( /* Empty for dynamic keymaps */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; diff --git a/keyboards/baion_808/keymaps/via/rules.mk b/keyboards/baion_808/keymaps/via/rules.mk new file mode 100755 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/baion_808/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/baion_808/readme.md b/keyboards/baion_808/readme.md new file mode 100755 index 000000000000..751f1793d45d --- /dev/null +++ b/keyboards/baion_808/readme.md @@ -0,0 +1,38 @@ +# Baion 808 + +This is a standard TKL layout PCB. It supports VIA. + +* Keyboard Maintainer: [Yiancar](http://yiancar-designs.com/) and on [GitHub](https://github.com/yiancar) +* Hardware Supported: A TKL keyboard with STM32F072CB +* Hardware Availability: https://baionlenja.com + +![Layer 0](https://i.imgur.com/IhbvSZ1.png) + +## Instructions + +### Build + +Make example for this keyboard (after setting up your build environment): + + make baion_808:default + +Flashing example for this keyboard: + + make baion_808: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 + +- Unplug +- Hold Escape +- Plug In +- Unplug +- Release Escape + +### Flash + +- Unplug +- Hold Escape +- Plug In +- Flash using QMK Toolbox or CLI (`make baion_808::flash`) diff --git a/keyboards/baion_808/rules.mk b/keyboards/baion_808/rules.mk new file mode 100755 index 000000000000..5d2ff6287791 --- /dev/null +++ b/keyboards/baion_808/rules.mk @@ -0,0 +1,22 @@ +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -v FFFF -p FFFF + +# Do not put the microcontroller into power saving mode +# when we get USB suspend event. We want it to keep updating +# backlight effects. +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + +LAYOUTS = tkl_ansi tkl_ansi_tsangan tkl_ansi_split_bs_rshift tkl_ansi_tsangan_split_bs_rshift tkl_iso tkl_iso_split_bs_rshift tkl_iso_tsangan tkl_iso_tsangan_split_bs_rshift From 328279ac592bcb61fcc12097287a75bfaa5e7a3d Mon Sep 17 00:00:00 2001 From: Wolf Van Herreweghe Date: Sun, 29 Jan 2023 23:58:07 +0100 Subject: [PATCH 115/139] Add base firmware for the Frog Numpad (#19698) Co-authored-by: Wolf Van Herreweghe Co-authored-by: Drashna Jaelre Co-authored-by: jack <0x6a73@protonmail.com> --- keyboards/wolf/frogpad/frogpad.c | 38 ++++++++ keyboards/wolf/frogpad/info.json | 93 +++++++++++++++++++ .../wolf/frogpad/keymaps/default/keymap.c | 48 ++++++++++ .../wolf/frogpad/keymaps/default/rules.mk | 1 + keyboards/wolf/frogpad/keymaps/via/keymap.c | 70 ++++++++++++++ keyboards/wolf/frogpad/keymaps/via/rules.mk | 2 + keyboards/wolf/frogpad/readme.md | 25 +++++ keyboards/wolf/frogpad/rules.mk | 2 + 8 files changed, 279 insertions(+) create mode 100644 keyboards/wolf/frogpad/frogpad.c create mode 100644 keyboards/wolf/frogpad/info.json create mode 100644 keyboards/wolf/frogpad/keymaps/default/keymap.c create mode 100644 keyboards/wolf/frogpad/keymaps/default/rules.mk create mode 100644 keyboards/wolf/frogpad/keymaps/via/keymap.c create mode 100644 keyboards/wolf/frogpad/keymaps/via/rules.mk create mode 100644 keyboards/wolf/frogpad/readme.md create mode 100644 keyboards/wolf/frogpad/rules.mk diff --git a/keyboards/wolf/frogpad/frogpad.c b/keyboards/wolf/frogpad/frogpad.c new file mode 100644 index 000000000000..ae6a2e0e179e --- /dev/null +++ b/keyboards/wolf/frogpad/frogpad.c @@ -0,0 +1,38 @@ +/* +Copyright 2023 + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "quantum.h" + +#ifdef ENCODER_ENABLE +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + if (index == 0) { + if (clockwise) { + tap_code_delay(KC_VOLU, 10); + } else { + tap_code_delay(KC_VOLD, 10); + } + } else if (index == 1) { /* Second encoder */ + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } + return true; +} +#endif \ No newline at end of file diff --git a/keyboards/wolf/frogpad/info.json b/keyboards/wolf/frogpad/info.json new file mode 100644 index 000000000000..4efd640ba054 --- /dev/null +++ b/keyboards/wolf/frogpad/info.json @@ -0,0 +1,93 @@ +{ + "manufacturer": "Geon", + "keyboard_name": "Frog Pad", + "maintainer": "ToastyStoemp", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "encoder": true + }, + "matrix_pins": { + "cols": ["F5", "F6", "B7", "B3"], + "rows": ["F0", "B6", "D6", "B5", "D7", "B4"] + }, + "encoder": { + "rotary": [ + { "pin_a": "F4", "pin_b": "F1" }, + { "pin_a": "B1", "pin_b": "B2" } + ] + }, + "processor": "atmega32u4", + "url": "https://geon.works/products/frog-pad", + "usb": { + "device_version": "1.0.0", + "pid": "0x0004", + "vid": "0x5453" + }, + "layouts": { + "LAYOUT_numpad_6x4": { + "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": [3, 0], "x":0, "y":3}, + {"matrix": [3, 1], "x":1, "y":3}, + {"matrix": [3, 2], "x":2, "y":3}, + {"matrix": [2, 3], "x":3, "y":2, "h":2}, + + {"matrix": [4, 0], "x":0, "y":4}, + {"matrix": [4, 1], "x":1, "y":4}, + {"matrix": [4, 2], "x":2, "y":4}, + + {"matrix": [5, 0], "x":0, "y":5, "w":2}, + {"matrix": [5, 2], "x":2, "y":5}, + {"matrix": [4, 3], "x":3, "y":4, "h":2} + ] + }, + "LAYOUT_ortho_6x4": { + "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 }, + { "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": [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": [5, 0], "x": 0, "y": 5 }, + { "matrix": [5, 1], "x": 1, "y": 5 }, + { "matrix": [5, 2], "x": 2, "y": 5 }, + { "matrix": [5, 3], "x": 3, "y": 5 } + ] + } + } +} \ No newline at end of file diff --git a/keyboards/wolf/frogpad/keymaps/default/keymap.c b/keyboards/wolf/frogpad/keymaps/default/keymap.c new file mode 100644 index 000000000000..e7f88542bcc2 --- /dev/null +++ b/keyboards/wolf/frogpad/keymaps/default/keymap.c @@ -0,0 +1,48 @@ +/* +Copyright 2020 +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more 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_ortho_6x4( + KC_F1, KC_F2, KC_F3, KC_F4, + KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_P4, KC_P5, KC_P6, KC_TRNS, + KC_P1, KC_P2, KC_P3, KC_PENT, + KC_P0, KC_PDOT, KC_PDOT, MO(1) + ), + + [_LAYER1] = LAYOUT_ortho_6x4( + QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_HOME, KC_UP, KC_PGUP, KC_TRNS, + KC_LEFT, KC_TRNS, KC_RGHT, KC_TRNS, + KC_END, KC_DOWN, KC_PGDN, KC_TRNS, + KC_INS, KC_TRNS, KC_DEL, KC_TRNS + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [_LAYER0] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_LAYER1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } +}; +#endif \ No newline at end of file diff --git a/keyboards/wolf/frogpad/keymaps/default/rules.mk b/keyboards/wolf/frogpad/keymaps/default/rules.mk new file mode 100644 index 000000000000..a40474b4d5c7 --- /dev/null +++ b/keyboards/wolf/frogpad/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/wolf/frogpad/keymaps/via/keymap.c b/keyboards/wolf/frogpad/keymaps/via/keymap.c new file mode 100644 index 000000000000..0a95b54b66a7 --- /dev/null +++ b/keyboards/wolf/frogpad/keymaps/via/keymap.c @@ -0,0 +1,70 @@ +/* +Copyright 2020 +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more 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_ortho_6x4( + KC_F1, KC_F2, KC_F3, KC_F4, + KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_P4, KC_P5, KC_P6, KC_TRNS, + KC_P1, KC_P2, KC_P3, KC_PENT, + KC_P0, KC_PDOT, KC_PDOT, MO(1) + ), + + [_LAYER1] = LAYOUT_ortho_6x4( + QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_HOME, KC_UP, KC_PGUP, KC_TRNS, + KC_LEFT, KC_TRNS, KC_RGHT, KC_TRNS, + KC_END, KC_DOWN, KC_PGDN, KC_TRNS, + KC_INS, KC_TRNS, KC_DEL, KC_TRNS + ), + + [_LAYER2] = LAYOUT_ortho_6x4( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [_LAYER3] = LAYOUT_ortho_6x4( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [_LAYER0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN) }, + [_LAYER1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [_LAYER2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [_LAYER3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } +}; +#endif \ No newline at end of file diff --git a/keyboards/wolf/frogpad/keymaps/via/rules.mk b/keyboards/wolf/frogpad/keymaps/via/rules.mk new file mode 100644 index 000000000000..4253f570f0bb --- /dev/null +++ b/keyboards/wolf/frogpad/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/wolf/frogpad/readme.md b/keyboards/wolf/frogpad/readme.md new file mode 100644 index 000000000000..b797d37fd7d9 --- /dev/null +++ b/keyboards/wolf/frogpad/readme.md @@ -0,0 +1,25 @@ +# Frog Pad + +The following is the QMK Firmware for the Frog Pad PCB. + +The PCB features: +* QMK & VIA compatibility +* 2 Encoders + +--- + +* Keyboard Maintainer: [ToastyStoemp](https://github.com/ToastyStoemp) + +Make example for this keyboard (after setting up your build environment): + + make wolf/frogpad:default + +Flashing example for this keyboard: + + make wolf/frogpad: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 ESC key and plug in the keyboard (Top Left most switch) +* **Reset Pads**: Briefly short the pads labeled `QK_BOOT` on the back of the PCB diff --git a/keyboards/wolf/frogpad/rules.mk b/keyboards/wolf/frogpad/rules.mk new file mode 100644 index 000000000000..3437a35bdf1d --- /dev/null +++ b/keyboards/wolf/frogpad/rules.mk @@ -0,0 +1,2 @@ +# Processor frequency +F_CPU = 8000000 From 2c878b1b161ae10332fdc4d69f3d1f86d2726c5c Mon Sep 17 00:00:00 2001 From: Ryan Date: Mon, 30 Jan 2023 14:37:02 +1100 Subject: [PATCH 116/139] Clean up `qmk generate-autocorrect-data` (#19710) --- docs/feature_autocorrect.md | 6 +- .../qmk/cli/generate/autocorrect_data.py | 82 +++++++++---------- 2 files changed, 42 insertions(+), 46 deletions(-) diff --git a/docs/feature_autocorrect.md b/docs/feature_autocorrect.md index e042027c0faa..aa8d37817d0c 100644 --- a/docs/feature_autocorrect.md +++ b/docs/feature_autocorrect.md @@ -86,7 +86,7 @@ The `qmk generate-autocorrect-data` commands can make an effort to check for ent ## Overriding Autocorrect -Occasionally you might actually want to type a typo (for instance, while editing autocorrection_dict.txt) without being autocorrected. There are a couple of ways to do this: +Occasionally you might actually want to type a typo (for instance, while editing autocorrect_dict.txt) without being autocorrected. There are a couple of ways to do this: 1. Begin typing the typo. 2. Before typing the last letter, press and release the Ctrl or Alt key. @@ -238,13 +238,13 @@ bool apply_autocorrect(uint8_t backspaces, const char *str) { ## Appendix: Trie binary data format :id=appendix -This section details how the trie is serialized to byte data in autocorrection_data. You don’t need to care about this to use this autocorrection implementation. But it is documented for the record in case anyone is interested in modifying the implementation, or just curious how it works. +This section details how the trie is serialized to byte data in autocorrect_data. You don’t need to care about this to use this autocorrection implementation. But it is documented for the record in case anyone is interested in modifying the implementation, or just curious how it works. What I did here is fairly arbitrary, but it is simple to decode and gets the job done. ### Encoding :id=encoding -All autocorrection data is stored in a single flat array autocorrection_data. Each trie node is associated with a byte offset into this array, where data for that node is encoded, beginning with root at offset 0. There are three kinds of nodes. The highest two bits of the first byte of the node indicate what kind: +All autocorrection data is stored in a single flat array autocorrect_data. Each trie node is associated with a byte offset into this array, where data for that node is encoded, beginning with root at offset 0. There are three kinds of nodes. The highest two bits of the first byte of the node indicate what kind: * 00 ⇒ chain node: a trie node with a single child. * 01 ⇒ branching node: a trie node with multiple children. diff --git a/lib/python/qmk/cli/generate/autocorrect_data.py b/lib/python/qmk/cli/generate/autocorrect_data.py index 00ab6180ab0d..5b70e0cb4e16 100644 --- a/lib/python/qmk/cli/generate/autocorrect_data.py +++ b/lib/python/qmk/cli/generate/autocorrect_data.py @@ -33,9 +33,11 @@ from milc import cli -import qmk.path +from qmk.commands import dump_lines +from qmk.constants import GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE from qmk.keyboard import keyboard_completer, keyboard_folder from qmk.keymap import keymap_completer, locate_keymap +from qmk.path import normpath KC_A = 4 KC_SPC = 0x2c @@ -63,9 +65,10 @@ def parse_file(file_name: str) -> List[Tuple[str, str]]: try: from english_words import english_words_lower_alpha_set as correct_words except ImportError: - cli.echo('Autocorrection will falsely trigger when a typo is a substring of a correctly spelled word.') - cli.echo('To check for this, install the english_words package and rerun this script:') - cli.echo(' {fg_cyan}python3 -m pip install english_words') + if not cli.args.quiet: + cli.echo('Autocorrection will falsely trigger when a typo is a substring of a correctly spelled word.') + cli.echo('To check for this, install the english_words package and rerun this script:') + cli.echo(' {fg_cyan}python3 -m pip install english_words') # Use a minimal word list as a fallback. correct_words = ('information', 'available', 'international', 'language', 'loosest', 'reference', 'wealthier', 'entertainment', 'association', 'provides', 'technology', 'statehood') @@ -232,58 +235,51 @@ def encode_link(link: Dict[str, Any]) -> List[int]: return [byte_offset & 255, byte_offset >> 8] -def write_generated_code(autocorrections: List[Tuple[str, str]], data: List[int], file_name: str) -> None: - """Writes autocorrection data as generated C code to `file_name`. - Args: - autocorrections: List of (typo, correction) tuples. - data: List of ints in 0-255, the serialized trie. - file_name: String, path of the output C file. - """ - assert all(0 <= b <= 255 for b in data) - - def typo_len(e: Tuple[str, str]) -> int: - return len(e[0]) +def typo_len(e: Tuple[str, str]) -> int: + return len(e[0]) - min_typo = min(autocorrections, key=typo_len)[0] - max_typo = max(autocorrections, key=typo_len)[0] - generated_code = ''.join([ - '// Generated code.\n\n', f'// Autocorrection dictionary ({len(autocorrections)} entries):\n', ''.join(sorted(f'// {typo:<{len(max_typo)}} -> {correction}\n' for typo, correction in autocorrections)), - f'\n#define AUTOCORRECT_MIN_LENGTH {len(min_typo)} // "{min_typo}"\n', f'#define AUTOCORRECT_MAX_LENGTH {len(max_typo)} // "{max_typo}"\n\n', f'#define DICTIONARY_SIZE {len(data)}\n\n', - textwrap.fill('static const uint8_t autocorrect_data[DICTIONARY_SIZE] PROGMEM = {%s};' % (', '.join(map(str, data))), width=120, subsequent_indent=' '), '\n\n' - ]) - with open(file_name, 'wt') as f: - f.write(generated_code) +def to_hex(b: int) -> str: + return f'0x{b:02X}' -@cli.argument('filename', default='autocorrect_dict.txt', help='The autocorrection database file') +@cli.argument('filename', type=normpath, help='The autocorrection database file') @cli.argument('-kb', '--keyboard', type=keyboard_folder, completer=keyboard_completer, help='The keyboard to build a firmware for. Ignored when a configurator export is supplied.') @cli.argument('-km', '--keymap', completer=keymap_completer, help='The keymap to build a firmware for. Ignored when a configurator export is supplied.') -@cli.argument('-o', '--output', arg_only=True, type=qmk.path.normpath, help='File to write to') +@cli.argument('-o', '--output', arg_only=True, type=normpath, help='File to write to') +@cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages") @cli.subcommand('Generate the autocorrection data file from a dictionary file.') def generate_autocorrect_data(cli): autocorrections = parse_file(cli.args.filename) trie = make_trie(autocorrections) data = serialize_trie(autocorrections, trie) - # Environment processing - if cli.args.output == '-': - cli.args.output = None - if cli.args.output: - cli.args.output.parent.mkdir(parents=True, exist_ok=True) - cli.log.info('Creating autocorrect database at {fg_cyan}%s', cli.args.output) - write_generated_code(autocorrections, data, cli.args.output) + current_keyboard = cli.args.keyboard or cli.config.user.keyboard or cli.config.generate_autocorrect_data.keyboard + current_keymap = cli.args.keymap or cli.config.user.keymap or cli.config.generate_autocorrect_data.keymap + + if current_keyboard and current_keymap: + cli.args.output = locate_keymap(current_keyboard, current_keymap).parent / 'autocorrect_data.h' - else: - current_keyboard = cli.args.keyboard or cli.config.user.keyboard or cli.config.generate_autocorrect_data.keyboard - current_keymap = cli.args.keymap or cli.config.user.keymap or cli.config.generate_autocorrect_data.keymap + assert all(0 <= b <= 255 for b in data) - if current_keyboard and current_keymap: - filename = locate_keymap(current_keyboard, current_keymap).parent / 'autocorrect_data.h' - cli.log.info('Creating autocorrect database at {fg_cyan}%s', filename) - write_generated_code(autocorrections, data, filename) + min_typo = min(autocorrections, key=typo_len)[0] + max_typo = max(autocorrections, key=typo_len)[0] - else: - write_generated_code(autocorrections, data, 'autocorrect_data.h') + # Build the autocorrect_data.h file. + autocorrect_data_h_lines = [GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE, '#pragma once', ''] - cli.log.info('Processed %d autocorrection entries to table with %d bytes.', len(autocorrections), len(data)) + autocorrect_data_h_lines.append(f'// Autocorrection dictionary ({len(autocorrections)} entries):') + for typo, correction in autocorrections: + autocorrect_data_h_lines.append(f'// {typo:<{len(max_typo)}} -> {correction}') + + autocorrect_data_h_lines.append('') + autocorrect_data_h_lines.append(f'#define AUTOCORRECT_MIN_LENGTH {len(min_typo)} // "{min_typo}"') + autocorrect_data_h_lines.append(f'#define AUTOCORRECT_MAX_LENGTH {len(max_typo)} // "{max_typo}"') + autocorrect_data_h_lines.append(f'#define DICTIONARY_SIZE {len(data)}') + autocorrect_data_h_lines.append('') + autocorrect_data_h_lines.append('static const uint8_t autocorrect_data[DICTIONARY_SIZE] PROGMEM = {') + autocorrect_data_h_lines.append(textwrap.fill(' %s' % (', '.join(map(to_hex, data))), width=100, subsequent_indent=' ')) + autocorrect_data_h_lines.append('};') + + # Show the results + dump_lines(cli.args.output, autocorrect_data_h_lines, cli.args.quiet) From e296d671463f38a78c75ee0727016939634ef985 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Mon, 30 Jan 2023 19:47:46 +1100 Subject: [PATCH 117/139] Accumulate version.h generator flags. (#19716) --- builddefs/build_keyboard.mk | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/builddefs/build_keyboard.mk b/builddefs/build_keyboard.mk index 8999ac80ad52..28389f3cfc52 100644 --- a/builddefs/build_keyboard.mk +++ b/builddefs/build_keyboard.mk @@ -46,11 +46,12 @@ ifdef SKIP_VERSION endif # Generate the version.h file +VERSION_H_FLAGS := ifdef SKIP_VERSION -VERSION_H_FLAGS := --skip-all +VERSION_H_FLAGS += --skip-all endif ifdef SKIP_GIT -VERSION_H_FLAGS := --skip-git +VERSION_H_FLAGS += --skip-git endif # Generate the board's version.h file. From 252b041b97c03374e8f10570a54992f7f91f5f26 Mon Sep 17 00:00:00 2001 From: Patryk <61631089+patrykf03@users.noreply.github.com> Date: Wed, 1 Feb 2023 14:13:18 +0000 Subject: [PATCH 118/139] add Mecx Labs mp1 macropad (#19064) * add mecxlabs mp1 macropad Co-authored-by: Joel Challis --- keyboards/mecxlabs/mp1/info.json | 46 +++++++++++++++++++ .../mecxlabs/mp1/keymaps/default/keymap.c | 22 +++++++++ keyboards/mecxlabs/mp1/readme.md | 23 ++++++++++ keyboards/mecxlabs/mp1/rules.mk | 4 ++ 4 files changed, 95 insertions(+) create mode 100644 keyboards/mecxlabs/mp1/info.json create mode 100644 keyboards/mecxlabs/mp1/keymaps/default/keymap.c create mode 100644 keyboards/mecxlabs/mp1/readme.md create mode 100644 keyboards/mecxlabs/mp1/rules.mk diff --git a/keyboards/mecxlabs/mp1/info.json b/keyboards/mecxlabs/mp1/info.json new file mode 100644 index 000000000000..db989e5517f9 --- /dev/null +++ b/keyboards/mecxlabs/mp1/info.json @@ -0,0 +1,46 @@ +{ + "keyboard_name": "mp1", + "manufacturer": "Mecx Labs", + "maintainer": "patrykf03", + "usb": { + "vid": "0xC6C6", + "pid": "0x6C6C", + "device_version": "0.0.1" + }, + "processor": "STM32F072", + "bootloader": "stm32-dfu", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "encoder": true + }, + "encoder": { + "rotary": [ + { "pin_a": "A10", "pin_b": "A9", "resolution": 2 } + ] + }, + "matrix_pins": { + "direct": [ + ["B14", "A14", "A15"], + ["B13", "B12", "A2"], + ["A5", "A4", "A3"] + ] + }, + "layouts": { + "LAYOUT_ortho_3x3": { + "layout": [ + { "matrix": [0, 0], "x": 0.0, "y": 0.0 }, + { "matrix": [0, 1], "x": 1.0, "y": 0.0 }, + { "matrix": [0, 2], "x": 2.0, "y": 0.0 }, + { "matrix": [1, 0], "x": 0.0, "y": 1.0 }, + { "matrix": [1, 1], "x": 1.0, "y": 1.0 }, + { "matrix": [1, 2], "x": 2.0, "y": 1.0 }, + { "matrix": [2, 0], "x": 0.0, "y": 2.0 }, + { "matrix": [2, 1], "x": 1.0, "y": 2.0 }, + { "matrix": [2, 2], "x": 2.0, "y": 2.0 } + ] + } + } +} diff --git a/keyboards/mecxlabs/mp1/keymaps/default/keymap.c b/keyboards/mecxlabs/mp1/keymaps/default/keymap.c new file mode 100644 index 000000000000..a58fefbd2d73 --- /dev/null +++ b/keyboards/mecxlabs/mp1/keymaps/default/keymap.c @@ -0,0 +1,22 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_ortho_3x3( + KC_1, KC_2, KC_3, + KC_4, KC_5, KC_6, + KC_7, KC_8, KC_9 + ) + +}; + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + return true; +} diff --git a/keyboards/mecxlabs/mp1/readme.md b/keyboards/mecxlabs/mp1/readme.md new file mode 100644 index 000000000000..de0c6e6255ce --- /dev/null +++ b/keyboards/mecxlabs/mp1/readme.md @@ -0,0 +1,23 @@ +# mecxlabs mp1 + +* Keyboard Maintainer: [Patrykf03](https://github.com/Patrykf03) +* Hardware Supported: Mecx Labs mp1 macropad (STM32/APM32F072) +* Hardware Availability: [mecxlabs.com](https://mecxlabs.com/products/mp1-framework) + +Make example for this keyboard (after setting up your build environment): + + make mecxlabs/mp1:default + +Flashing example for this keyboard: + + make mecxlabs/mp1: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 (encoder in top left) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `RESET` if it is available diff --git a/keyboards/mecxlabs/mp1/rules.mk b/keyboards/mecxlabs/mp1/rules.mk new file mode 100644 index 000000000000..ee2a7c0d6a92 --- /dev/null +++ b/keyboards/mecxlabs/mp1/rules.mk @@ -0,0 +1,4 @@ +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -v FFFF -p FFFF +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE From ca8b4b8e305444039a10755e280be7f0e19aaf85 Mon Sep 17 00:00:00 2001 From: a_marmot <90110685+a-marmot@users.noreply.github.com> Date: Wed, 1 Feb 2023 09:26:37 -0800 Subject: [PATCH 119/139] [Keyboard] Add modded Razer Orbweaver with RP2040 (#19711) Co-authored-by: jack <0x6a73@protonmail.com> Co-authored-by: Sergey Vlasov --- keyboards/handwired/orbweaver/config.h | 24 ++++ keyboards/handwired/orbweaver/info.json | 59 ++++++++++ .../orbweaver/keymaps/default/keymap.c | 110 ++++++++++++++++++ keyboards/handwired/orbweaver/orbweaver.c | 84 +++++++++++++ keyboards/handwired/orbweaver/readme.md | 39 +++++++ keyboards/handwired/orbweaver/rules.mk | 3 + 6 files changed, 319 insertions(+) create mode 100644 keyboards/handwired/orbweaver/config.h create mode 100644 keyboards/handwired/orbweaver/info.json create mode 100644 keyboards/handwired/orbweaver/keymaps/default/keymap.c create mode 100644 keyboards/handwired/orbweaver/orbweaver.c create mode 100644 keyboards/handwired/orbweaver/readme.md create mode 100644 keyboards/handwired/orbweaver/rules.mk diff --git a/keyboards/handwired/orbweaver/config.h b/keyboards/handwired/orbweaver/config.h new file mode 100644 index 000000000000..ab7cb9d9d5e9 --- /dev/null +++ b/keyboards/handwired/orbweaver/config.h @@ -0,0 +1,24 @@ +// Copyright 2023 a_marmot +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define DRIVER_COUNT 1 +#define DRIVER_ADDR_1 0b1110100 +#define RGB_MATRIX_LED_COUNT 20 +#define I2C1_CLOCK_SPEED 100000 +#define RGB_MATRIX_CENTER { 40, 30 } diff --git a/keyboards/handwired/orbweaver/info.json b/keyboards/handwired/orbweaver/info.json new file mode 100644 index 000000000000..e9b37e1c81cb --- /dev/null +++ b/keyboards/handwired/orbweaver/info.json @@ -0,0 +1,59 @@ +{ + "manufacturer": "a_marmot", + "keyboard_name": "orbweaver", + "maintainer": "a_marmot", + "bootloader": "rp2040", + "diode_direction": "ROW2COL", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "rows": ["GP4", "GP5", "GP6", "GP7", "GP8", "GP9"], + "cols": ["GP12", "GP13", "GP14", "GP15", "GP16"] + }, + "processor": "RP2040", + "url": "https://geekhack.org/index.php?topic=119396.0", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "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": [1, 0], "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1, "y": 1 }, + { "matrix": [1, 2], "x": 2, "y": 1 }, + { "matrix": [1, 3], "x": 3, "y": 1 }, + { "matrix": [1, 4], "x": 4, "y": 1 }, + { "matrix": [2, 0], "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1, "y": 2 }, + { "matrix": [2, 2], "x": 2, "y": 2 }, + { "matrix": [2, 3], "x": 3, "y": 2 }, + { "matrix": [2, 4], "x": 4, "y": 2 }, + { "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": [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": [5, 0], "x": 0, "y": 5 }, + { "matrix": [5, 1], "w": 4, "x": 1, "y": 5 } + ] + } + } +} diff --git a/keyboards/handwired/orbweaver/keymaps/default/keymap.c b/keyboards/handwired/orbweaver/keymaps/default/keymap.c new file mode 100644 index 000000000000..fb168264306a --- /dev/null +++ b/keyboards/handwired/orbweaver/keymaps/default/keymap.c @@ -0,0 +1,110 @@ +/* Copyright 2023 a_marmot +* +* This program is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 2 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +//generic default keymap with Razor defaults (+ mode toggle) + + /* + * ┌───┬───┬───┬───┬───┐ + * │Esc│ 1 │ 2 │ 3 │ 4 │ + * ├───┼───┼───┼───┼───┤ + * │Tab│ q │ w │ e │ r │ + * ├───┼───┼───┼───┼───┤ + * │Cap│ a │ s │ d │ f │ + * ├───┼───┼───┼───┼───┤ + * │Shi│ z │ x │ c │ v │ + * ├───┼───┼───┼───┼───┤ + * │Alt│ ↑ │ ↓ │ → │ ← │ + * ├───────┴┬──┴───┴───┤ + * │Spacebar│change map│ + * └────────┴──────────┘ + */ + + [0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, + KC_LALT, KC_UP, KC_DOWN, KC_RIGHT, KC_LEFT, + KC_SPACE, TO(1) + ), + +//Second example keymap with all modifier keys replaced with numbers or letters + + /* + * ┌───┬───┬───┬───┬───┐ + * │ 0 │ 1 │ 2 │ 3 │ 4 │ + * ├───┼───┼───┼───┼───┤ + * │ i │ q │ w │ e │ r │ + * ├───┼───┼───┼───┼───┤ + * │ j │ a │ s │ d │ f │ + * ├───┼───┼───┼───┼───┤ + * │ k │ z │ x │ c │ v │ + * ├───┼───┼───┼───┼───┤ + * │ l │ ↑ │ ↓ │ → │ ← │ + * ├───────┴┬──┴───┴───┤ + * │Spacebar│change map│ + * └────────┴──────────┘ + */ + + [1] = LAYOUT( + KC_0, KC_1, KC_2, KC_3, KC_4, + KC_I, KC_Q, KC_W, KC_E, KC_R, + KC_J, KC_A, KC_S, KC_D, KC_F, + KC_K, KC_Z, KC_X, KC_C, KC_V, + KC_L, KC_UP, KC_DOWN, KC_RIGHT, KC_LEFT, + KC_SPACE, TO(0) + ) +//, add more keymaps here + +}; + +static const uint8_t colormap[][20][3] = { + +// colors for the default key map in hex RGB values + { + {0x00, 0x00, 0xFF},{0xE7, 0xFF, 0x00},{0xE7, 0xFF, 0x00},{0xE7, 0xFF, 0x00},{0xE7, 0xFF, 0x00}, + {0xFF, 0x70, 0x00},{0x00, 0xFF, 0xFF},{0x80, 0x00, 0xFF},{0x00, 0xFF, 0xFF},{0x00, 0xFF, 0xFF}, + {0xFF, 0x70, 0x00},{0x80, 0x00, 0xFF},{0x80, 0x00, 0xFF},{0x80, 0x00, 0xFF},{0x00, 0xFF, 0xFF}, + {0xFF, 0x70, 0x00},{0x00, 0xFF, 0xFF},{0x00, 0xFF, 0xFF},{0x00, 0xFF, 0xFF},{0x00, 0xFF, 0xFF} + }, + +// colors for the 2nd key map + { + {0xE7, 0xFF, 0x00},{0xE7, 0xFF, 0x00},{0xE7, 0xFF, 0x00},{0xE7, 0xFF, 0x00},{0xE7, 0xFF, 0x00}, + {0x00, 0xFF, 0xFF},{0x00, 0xFF, 0xFF},{0x80, 0x00, 0xFF},{0x00, 0xFF, 0xFF},{0x00, 0xFF, 0xFF}, + {0x00, 0xFF, 0xFF},{0x80, 0x00, 0xFF},{0x80, 0x00, 0xFF},{0x80, 0x00, 0xFF},{0x00, 0xFF, 0xFF}, + {0x00, 0xFF, 0xFF},{0x00, 0xFF, 0xFF},{0x00, 0xFF, 0xFF},{0x00, 0xFF, 0xFF},{0x00, 0xFF, 0xFF} + } +//, add more keymaps here + +}; + + +bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { + for (uint8_t i = led_min; i < led_max; i++) { + rgb_matrix_set_color(i, + colormap[get_highest_layer(layer_state|default_layer_state)][i][0], + colormap[get_highest_layer(layer_state|default_layer_state)][i][1], + colormap[get_highest_layer(layer_state|default_layer_state)][i][2]); + } + + return false; +} + diff --git a/keyboards/handwired/orbweaver/orbweaver.c b/keyboards/handwired/orbweaver/orbweaver.c new file mode 100644 index 000000000000..f6485b6adfa0 --- /dev/null +++ b/keyboards/handwired/orbweaver/orbweaver.c @@ -0,0 +1,84 @@ +// Copyright 2023 a_marmot +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +// SPDX-License-Identifier: GPL-2.0-or-later + +// This IS31FL3731 configuration is for a Razer Orbweaver Chroma. +// It was reverse-engineered by testing all possible Cx_y combinations (144 total), +// and determining which ones addressed individual diodes (60 total). These were then +// placed in order R-G-B, sweeping left to right, and then top to bottom. + +#include "rgb_matrix.h" + +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, C9_1, C8_1, C7_1}, //top left key. + {0, C9_2, C8_2, C7_2}, + {0, C9_3, C8_3, C7_3}, + {0, C9_4, C8_4, C7_4}, + {0, C9_5, C8_5, C7_5}, //top right key. + {0, C9_6, C8_6, C7_6}, + {0, C9_7, C8_7, C6_6}, + {0, C9_8, C7_7, C6_7}, + {0, C1_8, C2_8, C3_8}, + {0, C1_7, C2_7, C3_7}, + {0, C1_6, C2_6, C3_6}, + {0, C1_5, C2_5, C3_5}, + {0, C1_4, C2_4, C3_4}, + {0, C1_3, C2_3, C3_3}, + {0, C1_2, C2_2, C4_3}, + {0, C1_1, C3_2, C4_2}, //lower left key + {0, C9_9, C8_9, C7_9}, + {0, C9_10, C8_10, C7_10}, + {0, C9_11, C8_11, C7_11}, + {0, C9_12, C8_12, C7_12} //lower right key + +}; + +led_config_t g_led_config = { + // Matrix location to LED index + { + { 0, 2, 3, 4, 5 }, + { 6, 7, 8, 9, 10 }, + { 11, 12, 13, 14, 15 }, + { 16, 17, 18, 19, 19 }, + { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, + { NO_LED, NO_LED } + }, + + // LED index to physical location + { + {0,0}, {20,0}, {40,0}, {60,0}, {80,0}, + {0,20}, {20,20}, {40,20}, {60,20}, {80,20}, + {0,40}, {20,40}, {40,40}, {60,40}, {80,40}, + {0,60}, {20,60}, {40,60}, {60,60}, {80,60} + }, + + // LED index to flags + { + 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4 + } + }; + + + diff --git a/keyboards/handwired/orbweaver/readme.md b/keyboards/handwired/orbweaver/readme.md new file mode 100644 index 000000000000..7075d8a6a319 --- /dev/null +++ b/keyboards/handwired/orbweaver/readme.md @@ -0,0 +1,39 @@ +# orbweaver + +This firmware is for a Razer Orbweaver Chroma keypad, modded to replace the stock MCU +with an Elite Pi RP2040 microcontroller. Mod instructions can be found on [geekhack](https://geekhack.org/index.php?topic=119396.0). + +The firmware controls a 6x5 key matrix (4x5 keypad + 6 additional keys +on the thumb pad and up to 4 additional keys added by user). It also controls a +IS31FL3731 RGB Matrix controller (on the Chroma model) via I2C interface. This requires +a single I2C Driver with 20 common anode RGB LEDs. I found that the I2C clock speed must +be slowed down to 100 kHz for the IS31 chip to keep up (the default for RP2040 seems to +be 400 kHz unless specified otherwise). + +The default key map (layer 0) is a generic layer based on the original Razer defaults. +You can change or add layers as needed, and change static colors in keymap.c + +Many thanks to bomtarnes, Drashna, Dasky, sigprof, and casuanoob for helpful discussions +and coding suggestions and snippets. + +* Keyboard Maintainer: [a_marmot](https://github.com/a-marmot) +* Hardware Supported: RP2040 + IS31FL3731 +* Hardware Availability: [https://geekhack.org/index.php?topic=119396.0](https://geekhack.org/index.php?topic=119396.0) + +Make example for this keyboard (after setting up your build environment): + + make handwired/orbweaver:default + +Flashing example for this keyboard: + + make handwired/orbweaver: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: + +* Press and hold the upper left hand key on the main keyboard while you plug in the USB. +* Press and release both reset buttons on the top of the RP2040 inside the modded unit. diff --git a/keyboards/handwired/orbweaver/rules.mk b/keyboards/handwired/orbweaver/rules.mk new file mode 100644 index 000000000000..07c357daaccb --- /dev/null +++ b/keyboards/handwired/orbweaver/rules.mk @@ -0,0 +1,3 @@ +# Add support for 3731 RGB matrix controller +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = IS31FL3731 From 8dc66867e25493c8bffc1bea2c4de1334f4ca475 Mon Sep 17 00:00:00 2001 From: adiabatic Date: Wed, 1 Feb 2023 10:55:12 -0800 Subject: [PATCH 120/139] zweihander-macos: Update keys, add capslock (#19730) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update to current Scroll Lock/Power names * Replace `'` with `⇪` --- layouts/community/ergodox/zweihander-macos/keymap.c | 8 ++++---- .../community/ergodox/zweihander-macos/readme.markdown | 4 ++++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/layouts/community/ergodox/zweihander-macos/keymap.c b/layouts/community/ergodox/zweihander-macos/keymap.c index 9e0423375d8a..cbf258745b66 100644 --- a/layouts/community/ergodox/zweihander-macos/keymap.c +++ b/layouts/community/ergodox/zweihander-macos/keymap.c @@ -40,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | L⌃ | L⌥ | L⌘ | ← | → | | ↑ | ↓ | [ | ] | ↩︎ | * `----------------------------------' `----------------------------------' * ,-------------. ,---------------. - * | `~ | '" | | ⎋ | ⌫ | + * | `~ | ⇪ | | ⎋ | ⌫ | * ,------|------|------| |------+--------+------. * | | | L⌥ | | R⌥ | | | * | ↩︎ | ⇥ |------| |------| ⇥ | | @@ -56,7 +56,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LGUI, KC_LCTL, KC_LALT, KC_LGUI, KC_LEFT,KC_RGHT, - KC_GRV, KC_QUOT, + KC_GRV, KC_CAPS, KC_LALT, KC_ENT ,KC_TAB ,KC_LCTL, // right hand @@ -134,7 +134,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ // MEDIA AND MOUSE [MDIA] = LAYOUT_ergodox( - KC_TRNS, KC_F14 , KC_F15 , KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, /* F14 dims screen, F15 brightens */ + KC_TRNS, KC_F14 , KC_F15 , KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS, /* F14 dims screen, F15 brightens */ KC_TRNS, KC_TRNS, LALT(KC_UP), KC_PGUP, LALT(KC_DOWN), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -143,7 +143,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, // right hand - KC_TRNS, LGUI(KC_W), LGUI(LSFT(KC_GRV)), LGUI(KC_GRV), KC_TRNS, KC_EJCT, KC_POWER, + KC_TRNS, LGUI(KC_W), LGUI(LSFT(KC_GRV)), LGUI(KC_GRV), KC_TRNS, KC_EJCT, KC_PWR, KC_TRNS, LGUI(KC_RBRC), LGUI(LALT(KC_UP)), KC_UP , LGUI(LALT(KC_DOWN)), KC_TRNS, KC_TRNS, LGUI(KC_LBRC), KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_F16 , KC_TRNS, KC_TRNS, KC_MPLY, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, diff --git a/layouts/community/ergodox/zweihander-macos/readme.markdown b/layouts/community/ergodox/zweihander-macos/readme.markdown index d2b1b0ba6197..fa65e2faad5b 100644 --- a/layouts/community/ergodox/zweihander-macos/readme.markdown +++ b/layouts/community/ergodox/zweihander-macos/readme.markdown @@ -71,6 +71,10 @@ If you’re on the second layer, pressing `v` will send the string `"\n- "`, not F16, accessed by holding ; and pressing the ' key next to it, is intended for Siri. +## use the fn/🌐︎︎︎ key + +A thumb key is bound to Caps Lock. You are not expected to use this for Caps Lock. You would probably be happier going into System Settings, opening the “Customize modifier keys” part of it, and having Caps Lock work as the fn key. macOS is convinced that Ergodoxen EZ have fn keys, so you might as well have one in a place that lends itself tolerably well to keyboard shortcuts. + ## use it with an iPad This layout overrides `USB_MAX_POWER_CONSUMPTION` to turn it down to 100 mA instead of the default of 500 mA. This is not what you want if your Ergodox EZ has the Shine or Glow lights, but good if you want to be able to plug it into your iPad’s lightning port with a USB adapter. The indicator lights that tell you what layer you’re on are _not_ Shine or Glow lights. From f7e69639b5bb3333d58b6da5df28ffcc59931bb8 Mon Sep 17 00:00:00 2001 From: ziptyze Date: Thu, 2 Feb 2023 13:17:10 -0500 Subject: [PATCH 121/139] adding pi60 (#19431) * updates to 1up product line Co-authored-by: Joel Challis Co-authored-by: Ryan Co-authored-by: jack <0x6a73@protonmail.com> --- keyboards/1upkeyboards/pi60/config.h | 68 ++++++++ keyboards/1upkeyboards/pi60/info.json | 149 ++++++++++++++++++ .../pi60/keymaps/default/keymap.c | 61 +++++++ .../pi60/keymaps/default/rules.mk | 1 + .../1upkeyboards/pi60/keymaps/via/keymap.c | 115 ++++++++++++++ .../1upkeyboards/pi60/keymaps/via/rules.mk | 3 + keyboards/1upkeyboards/pi60/readme.md | 22 +++ keyboards/1upkeyboards/pi60/rules.mk | 1 + 8 files changed, 420 insertions(+) create mode 100644 keyboards/1upkeyboards/pi60/config.h create mode 100644 keyboards/1upkeyboards/pi60/info.json create mode 100644 keyboards/1upkeyboards/pi60/keymaps/default/keymap.c create mode 100644 keyboards/1upkeyboards/pi60/keymaps/default/rules.mk create mode 100644 keyboards/1upkeyboards/pi60/keymaps/via/keymap.c create mode 100644 keyboards/1upkeyboards/pi60/keymaps/via/rules.mk create mode 100644 keyboards/1upkeyboards/pi60/readme.md create mode 100644 keyboards/1upkeyboards/pi60/rules.mk diff --git a/keyboards/1upkeyboards/pi60/config.h b/keyboards/1upkeyboards/pi60/config.h new file mode 100644 index 000000000000..24a8d9218bb4 --- /dev/null +++ b/keyboards/1upkeyboards/pi60/config.h @@ -0,0 +1,68 @@ +// Copyright 2022 ziptyze (@ziptyze) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "config_common.h" + +#define DYNAMIC_KEYMAP_LAYER_COUNT 10 + +#define RGB_DI_PIN GP17 +#define RGB_MATRIX_LED_COUNT 21 +//#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +//#define RGB_MATRIX_KEYPRESSES +#define RGB_DISABLE_WHEN_USB_SUSPENDED +// RGB Matrix Animation modes. Explicitly enabled +// For full list of effects, see: +// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects +//# define ENABLE_RGB_MATRIX_ALPHAS_MODS +# define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN +# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +# define ENABLE_RGB_MATRIX_BREATHING +# define ENABLE_RGB_MATRIX_BAND_SAT +# define ENABLE_RGB_MATRIX_BAND_VAL +# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +# define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT +# define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL +# define ENABLE_RGB_MATRIX_CYCLE_ALL +# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +# define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN +# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN +# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +# define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL +# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL +# define ENABLE_RGB_MATRIX_DUAL_BEACON +# define ENABLE_RGB_MATRIX_RAINBOW_BEACON +# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS +# define ENABLE_RGB_MATRIX_RAINDROPS +# define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +# define ENABLE_RGB_MATRIX_HUE_BREATHING +# define ENABLE_RGB_MATRIX_HUE_PENDULUM +# define ENABLE_RGB_MATRIX_HUE_WAVE +# define ENABLE_RGB_MATRIX_PIXEL_RAIN +# define ENABLE_RGB_MATRIX_PIXEL_FLOW +//# define ENABLE_RGB_MATRIX_PIXEL_FRACTAL +// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined +//# define ENABLE_RGB_MATRIX_TYPING_HEATMAP +//# define ENABLE_RGB_MATRIX_DIGITAL_RAIN +// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined +//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE +//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +//# define ENABLE_RGB_MATRIX_SPLASH +//# define ENABLE_RGB_MATRIX_MULTISPLASH +//# define ENABLE_RGB_MATRIX_SOLID_SPLASH +//# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH + + +/* 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 \ No newline at end of file diff --git a/keyboards/1upkeyboards/pi60/info.json b/keyboards/1upkeyboards/pi60/info.json new file mode 100644 index 000000000000..bbc17d0e1704 --- /dev/null +++ b/keyboards/1upkeyboards/pi60/info.json @@ -0,0 +1,149 @@ +{ + "manufacturer": "1upkeyboards", + "keyboard_name": "pi60", + "maintainer": "ziptyze", + "processor": "RP2040", + "bootloader": "rp2040", + "board": "GENERIC_RP_RP2040", + "usb": { + "device_version": "1.0.0", + "pid": "0x5604", + "vid": "0x6F75" + }, + "debounce": 5, + "diode_direction": "COL2ROW", + "features": { + "audio": false, + "backlight": false, + "bootmagic": true, + "command": false, + "console": false, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": false, + "rgb_matrix": true, + "rgblight": false + }, + "matrix_pins": { + "cols": ["GP5", "GP8", "GP11", "GP6", "GP7", "GP0", "GP26", "GP10", "GP9", "GP1", "GP18", "GP20", "GP21", "GP27", "GP28", "GP19"], + "rows": ["GP12", "GP13", "GP16", "GP25", "GP29"] + }, + "encoder": { + "enabled": true, + "rotary": [ + { + "pin_a": "GP4", + "pin_b": "GP3" + }, + { + "pin_a": "GP22", + "pin_b": "GP2" + }, + { + "pin_a": "GP23", + "pin_b": "GP24" + } + ] + }, + "rgb_matrix": { + "driver": "WS2812", + "layout": [ + { "flags": 2, "x": 17, "y": 50 }, + { "flags": 2, "x": 37, "y": 50 }, + { "flags": 2, "x": 56, "y": 50 }, + { "flags": 2, "x": 77, "y": 50 }, + { "flags": 2, "x": 94, "y": 50 }, + { "flags": 2, "x": 114, "y": 50 }, + { "flags": 2, "x": 131, "y": 50 }, + { "flags": 2, "x": 148, "y": 50 }, + { "flags": 2, "x": 168, "y": 50 }, + { "flags": 2, "x": 188, "y": 50 }, + { "flags": 2, "x": 209, "y": 50 }, + { "flags": 2, "x": 209, "y": 13 }, + { "flags": 2, "x": 187, "y": 13 }, + { "flags": 2, "x": 166, "y": 13 }, + { "flags": 2, "x": 145, "y": 13 }, + { "flags": 2, "x": 126, "y": 13 }, + { "flags": 2, "x": 109, "y": 13 }, + { "flags": 2, "x": 90, "y": 13 }, + { "flags": 2, "x": 71, "y": 13 }, + { "flags": 2, "x": 54, "y": 13 }, + { "flags": 2, "x": 20, "y": 13 } + ] + }, + "layouts": { + "LAYOUT_60_ansi": { + "layout": [ + { "label": "Esc", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, + { "label": "1", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, + { "label": "2", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, + { "label": "3", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, + { "label": "4", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 }, + { "label": "5", "matrix": [0, 5], "w": 1, "x": 5, "y": 0 }, + { "label": "6", "matrix": [0, 6], "w": 1, "x": 6, "y": 0 }, + { "label": "7", "matrix": [0, 7], "w": 1, "x": 7, "y": 0 }, + { "label": "8", "matrix": [0, 8], "w": 1, "x": 8, "y": 0 }, + { "label": "9", "matrix": [0, 9], "w": 1, "x": 9, "y": 0 }, + { "label": "0", "matrix": [0, 10], "w": 1, "x": 10, "y": 0 }, + { "label": "-", "matrix": [0, 11], "w": 1, "x": 11, "y": 0 }, + { "label": "=", "matrix": [0, 12], "w": 1, "x": 12, "y": 0 }, + { "label": "BS", "matrix": [0, 13], "w": 1, "x": 13, "y": 0 }, + { "label": "~", "matrix": [0, 14], "w": 1, "x": 14, "y": 0 }, + { "label": "Tab", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "Q", "matrix": [1, 1], "w": 1, "x": 1.5, "y": 1 }, + { "label": "W", "matrix": [1, 2], "w": 1, "x": 2.5, "y": 1 }, + { "label": "E", "matrix": [1, 3], "w": 1, "x": 3.5, "y": 1 }, + { "label": "R", "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1 }, + { "label": "T", "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1 }, + { "label": "Y", "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1 }, + { "label": "U", "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1 }, + { "label": "I", "matrix": [1, 8], "w": 1, "x": 8.5, "y": 1 }, + { "label": "O", "matrix": [1, 9], "w": 1, "x": 9.5, "y": 1 }, + { "label": "P", "matrix": [1, 10], "w": 1, "x": 10.5, "y": 1 }, + { "label": "[", "matrix": [1, 11], "w": 1, "x": 11.5, "y": 1 }, + { "label": "]", "matrix": [1, 12], "w": 1, "x": 12.5, "y": 1 }, + { "label": "|", "matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1 }, + { "label": "Caps", "matrix": [2, 15], "w": 1.75, "x": 0, "y": 2 }, + { "label": "A", "matrix": [2, 1], "w": 1, "x": 1.75, "y": 2 }, + { "label": "S", "matrix": [2, 2], "w": 1, "x": 2.75, "y": 2 }, + { "label": "D", "matrix": [2, 3], "w": 1, "x": 3.75, "y": 2 }, + { "label": "F", "matrix": [2, 4], "w": 1, "x": 4.75, "y": 2 }, + { "label": "G", "matrix": [2, 5], "w": 1, "x": 5.75, "y": 2 }, + { "label": "H", "matrix": [2, 6], "w": 1, "x": 6.75, "y": 2 }, + { "label": "J", "matrix": [2, 7], "w": 1, "x": 7.75, "y": 2 }, + { "label": "K", "matrix": [2, 8], "w": 1, "x": 8.75, "y": 2 }, + { "label": "L", "matrix": [2, 9], "w": 1, "x": 9.75, "y": 2 }, + { "label": ";", "matrix": [2, 10], "w": 1, "x": 10.75, "y": 2 }, + { "label": "'", "matrix": [2, 11], "w": 1, "x": 11.75, "y": 2 }, + { "label": "ISO'", "matrix": [2, 12], "w": 1, "x": 12.75, "y": 2 }, + { "label": "Enter", "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 2 }, + { "label": "LShift", "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, + { "label": "ISO<>", "matrix": [3, 1], "w": 1, "x": 1.25, "y": 3 }, + { "label": "Z", "matrix": [3, 2], "w": 1, "x": 2.25, "y": 3 }, + { "label": "X", "matrix": [3, 3], "w": 1, "x": 3.25, "y": 3 }, + { "label": "C", "matrix": [3, 4], "w": 1, "x": 4.25, "y": 3 }, + { "label": "V", "matrix": [3, 5], "w": 1, "x": 5.25, "y": 3 }, + { "label": "B", "matrix": [3, 6], "w": 1, "x": 6.25, "y": 3 }, + { "label": "N", "matrix": [3, 7], "w": 1, "x": 7.25, "y": 3 }, + { "label": "M", "matrix": [3, 8], "w": 1, "x": 8.25, "y": 3 }, + { "label": ",", "matrix": [3, 9], "w": 1, "x": 9.25, "y": 3 }, + { "label": ".", "matrix": [3, 10], "w": 1, "x": 10.25, "y": 3 }, + { "label": "/", "matrix": [3, 11], "w": 1.75, "x": 11.25, "y": 3 }, + { "label": "RShift", "matrix": [3, 12], "w": 1, "x": 13, "y": 3 }, + { "label": "FN", "matrix": [3, 14], "w": 1, "x": 14, "y": 3 }, + { "label": "LCtrl", "matrix": [4, 15], "w": 1.25, "x": 0, "y": 4 }, + { "label": "LGui", "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "label": "LAlt", "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "label": "LSpace", "matrix": [4, 4], "w": 2.75, "x": 3.75, "y": 4 }, + { "label": "CSpace", "matrix": [4, 6], "w": 1.25, "x": 6.5, "y": 4 }, + { "label": "RSpace", "matrix": [4, 8], "w": 2.25, "x": 7.75, "y": 4 }, + { "label": "RAlt", "matrix": [4, 10], "w": 1, "x": 10, "y": 4 }, + { "label": "FN", "matrix": [4, 11], "w": 1, "x": 11, "y": 4 }, + { "label": "Mid1U", "matrix": [4, 12], "w": 1, "x": 12, "y": 4 }, + { "label": "Menu", "matrix": [4, 13], "w": 1, "x": 13, "y": 4 }, + { "label": "RCtrl", "matrix": [4, 14], "w": 1, "x": 14, "y": 4 } + ] + } + } +} \ No newline at end of file diff --git a/keyboards/1upkeyboards/pi60/keymaps/default/keymap.c b/keyboards/1upkeyboards/pi60/keymaps/default/keymap.c new file mode 100644 index 000000000000..fb11a271d7f2 --- /dev/null +++ b/keyboards/1upkeyboards/pi60/keymaps/default/keymap.c @@ -0,0 +1,61 @@ +/* Copyright 2022 ziptyze + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_60_ansi( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_TRNS, KC_ENT, + KC_LSFT, KC_TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, KC_UP, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_TRNS, KC_APP, KC_RCTL + ), + + [1] = LAYOUT_60_ansi( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TRNS, + KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [2] = LAYOUT_60_ansi( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, RGB_M_SN,RGB_M_K, RGB_M_X, RGB_M_G, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [3] = LAYOUT_60_ansi( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } +}; +#endif diff --git a/keyboards/1upkeyboards/pi60/keymaps/default/rules.mk b/keyboards/1upkeyboards/pi60/keymaps/default/rules.mk new file mode 100644 index 000000000000..a40474b4d5c7 --- /dev/null +++ b/keyboards/1upkeyboards/pi60/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/1upkeyboards/pi60/keymaps/via/keymap.c b/keyboards/1upkeyboards/pi60/keymaps/via/keymap.c new file mode 100644 index 000000000000..70739d2e9e55 --- /dev/null +++ b/keyboards/1upkeyboards/pi60/keymaps/via/keymap.c @@ -0,0 +1,115 @@ +/* Copyright 2022 ziptyze + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_60_ansi( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_TRNS, KC_ENT, + KC_LSFT, KC_TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, KC_UP, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_TRNS, KC_APP, KC_RCTL + ), + + [1] = LAYOUT_60_ansi( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TRNS, + KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [2] = LAYOUT_60_ansi( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, RGB_M_SN,RGB_M_K, RGB_M_X, RGB_M_G, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [3] = LAYOUT_60_ansi( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [4] = LAYOUT_60_ansi( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [5] = LAYOUT_60_ansi( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [6] = LAYOUT_60_ansi( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [7] = LAYOUT_60_ansi( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [8] = LAYOUT_60_ansi( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [9] = LAYOUT_60_ansi( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [4] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [5] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [6] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [7] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [8] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [9] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, +}; +#endif diff --git a/keyboards/1upkeyboards/pi60/keymaps/via/rules.mk b/keyboards/1upkeyboards/pi60/keymaps/via/rules.mk new file mode 100644 index 000000000000..aaf0497be139 --- /dev/null +++ b/keyboards/1upkeyboards/pi60/keymaps/via/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes +ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/1upkeyboards/pi60/readme.md b/keyboards/1upkeyboards/pi60/readme.md new file mode 100644 index 000000000000..f8444b04a6ea --- /dev/null +++ b/keyboards/1upkeyboards/pi60/readme.md @@ -0,0 +1,22 @@ +# pi60_rgb + +The pi60 is a solderable 60% pcb supporting millions of configuration options including standard options like ansi, iso, and tsangan as well as various split-shift and split-space configurations with three possible encoder positions. The board has RGB underglow with 21 leds and is compatible with many o-ring mount cases. The pcb is available with USB and an external i2c connector, or daughterboard connector. + +* Keyboard Maintainer: [ziptyze](https://github.com/ziptyze) + +Make example for this keyboard (after setting up your build environment): + + make 1upkeyboards/pi60:default + +Flashing example for this keyboard: + + make 1upkeyboards/pi60:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 2 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Bootloader button**: Hold the button on the back of the PCB and plug in the keyboard diff --git a/keyboards/1upkeyboards/pi60/rules.mk b/keyboards/1upkeyboards/pi60/rules.mk new file mode 100644 index 000000000000..8e853e0af70b --- /dev/null +++ b/keyboards/1upkeyboards/pi60/rules.mk @@ -0,0 +1 @@ +WS2812_DRIVER = vendor \ No newline at end of file From eeadbd217661c07852b8906ce038415f36961f4e Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Fri, 3 Feb 2023 07:14:26 +1100 Subject: [PATCH 122/139] Politely ask people not to submit issues to add support for unknown keyboards. (#19737) --- .github/ISSUE_TEMPLATE/feature_request.yml | 5 ++++- .github/ISSUE_TEMPLATE/other_issues.yml | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index 585bcf2e6f8c..fdb32f098d58 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -7,6 +7,9 @@ body: attributes: value: | Provide a general summary of the changes you want in the title above. + + Please refrain from asking maintainers to add support for specific keyboards -- it is unlikely they will have hardware available, and will not be able to help. + Your best bet is to take the initiative, add support, then submit a PR yourself. - type: checkboxes attributes: label: Feature Request Type @@ -18,4 +21,4 @@ body: - type: textarea attributes: label: Description - description: A few sentences describing what it is that you'd like to see in QMK. Additional information (such as links to spec sheets, licensing info, other related issues or PRs, etc) would be helpful. \ No newline at end of file + description: A few sentences describing what it is that you'd like to see in QMK. Additional information (such as links to spec sheets, licensing info, other related issues or PRs, etc) would be helpful. diff --git a/.github/ISSUE_TEMPLATE/other_issues.yml b/.github/ISSUE_TEMPLATE/other_issues.yml index 7c4fbeb23cc2..d3a890e45d19 100644 --- a/.github/ISSUE_TEMPLATE/other_issues.yml +++ b/.github/ISSUE_TEMPLATE/other_issues.yml @@ -10,7 +10,10 @@ body: attributes: value: | Please check [https://docs.qmk.fm/#/support](https://docs.qmk.fm/#/support) for additional resources first. If that doesn't answer your question, choose the bug report template instead, as that may be more appropriate. + + Please refrain from asking maintainers to add support for specific keyboards -- it is unlikely they will have hardware available, and will not be able to help. + Your best bet is to take the initiative, add support, then submit a PR yourself. - type: textarea attributes: label: Issue Description - description: Describe your issue in as much detail as possible. \ No newline at end of file + description: Describe your issue in as much detail as possible. From 3115cdf6639909cedabaaccabad959653359f359 Mon Sep 17 00:00:00 2001 From: Andrew Kannan Date: Thu, 2 Feb 2023 16:32:22 -0500 Subject: [PATCH 123/139] [Keyboard] Add Crin (#18065) Co-authored-by: Joel Challis Co-authored-by: Nick Brassel --- keyboards/cannonkeys/crin/crin.c | 30 +++++++++++++-------------- keyboards/cannonkeys/crin/crin.h | 32 ++++++++++++++--------------- keyboards/cannonkeys/crin/halconf.h | 4 ---- keyboards/cannonkeys/crin/info.json | 5 ++++- keyboards/cannonkeys/crin/mcuconf.h | 7 ------- 5 files changed, 35 insertions(+), 43 deletions(-) diff --git a/keyboards/cannonkeys/crin/crin.c b/keyboards/cannonkeys/crin/crin.c index 4299c2885749..9f6039ff0949 100644 --- a/keyboards/cannonkeys/crin/crin.c +++ b/keyboards/cannonkeys/crin/crin.c @@ -1,17 +1,17 @@ - /* Copyright 2022 Andrew Kannan - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ +/* Copyright 2022 Andrew Kannan + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ #include "crin.h" diff --git a/keyboards/cannonkeys/crin/crin.h b/keyboards/cannonkeys/crin/crin.h index 630af0c14deb..4865b315b309 100644 --- a/keyboards/cannonkeys/crin/crin.h +++ b/keyboards/cannonkeys/crin/crin.h @@ -1,24 +1,24 @@ - /* Copyright 2022 Andrew Kannan - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ +/* Copyright 2022 Andrew Kannan + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ #pragma once #include "quantum.h" #define ____ KC_NO -#define LAYOUT_all( \ +#define LAYOUT( \ K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, K018, \ K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K115, K116, K117, K118, \ K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K215, \ diff --git a/keyboards/cannonkeys/crin/halconf.h b/keyboards/cannonkeys/crin/halconf.h index aaffce9934d6..2c4bd08d1541 100644 --- a/keyboards/cannonkeys/crin/halconf.h +++ b/keyboards/cannonkeys/crin/halconf.h @@ -21,11 +21,7 @@ #pragma once -#define HAL_USE_I2C TRUE - #define HAL_USE_PWM TRUE -#define HAL_USE_SPI TRUE - #include_next diff --git a/keyboards/cannonkeys/crin/info.json b/keyboards/cannonkeys/crin/info.json index 8c8b956257af..e3b70c34bc01 100644 --- a/keyboards/cannonkeys/crin/info.json +++ b/keyboards/cannonkeys/crin/info.json @@ -8,8 +8,11 @@ "pid": "0x0012", "device_version": "0.0.1" }, + "layout_aliases": { + "LAYOUT_all": "LAYOUT" + }, "layouts": { - "LAYOUT_all": { + "LAYOUT": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Bksp", "x":13, "y":0}, {"label":"~", "x":14, "y":0}, {"label":"Insert", "x":15.25, "y":0}, {"label":"Home", "x":16.25, "y":0}, {"label":"PgUp", "x":17.25, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Delete", "x":15.25, "y":1}, {"label":"End", "x":16.25, "y":1}, {"label":"PgDn", "x":17.25, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"|", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"\u2191", "x":16.25, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Fn", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}, {"label":"\u2190", "x":15.25, "y":4}, {"label":"\u2193", "x":16.25, "y":4}, {"label":"\u2192", "x":17.25, "y":4}] } } diff --git a/keyboards/cannonkeys/crin/mcuconf.h b/keyboards/cannonkeys/crin/mcuconf.h index 3494eb511c15..6dd8a8170e2f 100644 --- a/keyboards/cannonkeys/crin/mcuconf.h +++ b/keyboards/cannonkeys/crin/mcuconf.h @@ -23,12 +23,5 @@ #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 - From d3b00d959421c183acb4ebc5c1a8882d39264b17 Mon Sep 17 00:00:00 2001 From: TommyZ <60314626+tommyamoszhao@users.noreply.github.com> Date: Fri, 3 Feb 2023 05:33:31 +0800 Subject: [PATCH 124/139] [Keyboard] Add Quarkeys Z67 with solder and hotswap versions (#19465) Co-authored-by: Joel Challis Co-authored-by: jack <0x6a73@protonmail.com> Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/quarkeys/z67/hotswap/config.h | 45 +++++++++ keyboards/quarkeys/z67/hotswap/hotswap.c | 15 +++ keyboards/quarkeys/z67/hotswap/hotswap.h | 32 +++++++ keyboards/quarkeys/z67/hotswap/info.json | 90 ++++++++++++++++++ .../z67/hotswap/keymaps/default/keymap.c | 85 +++++++++++++++++ .../quarkeys/z67/hotswap/keymaps/via/keymap.c | 59 ++++++++++++ .../quarkeys/z67/hotswap/keymaps/via/rules.mk | 2 + keyboards/quarkeys/z67/hotswap/rules.mk | 12 +++ keyboards/quarkeys/z67/readme.md | 19 ++++ keyboards/quarkeys/z67/solder/config.h | 44 +++++++++ keyboards/quarkeys/z67/solder/info.json | 94 +++++++++++++++++++ .../z67/solder/keymaps/default/keymap.c | 57 +++++++++++ .../quarkeys/z67/solder/keymaps/via/keymap.c | 31 ++++++ .../quarkeys/z67/solder/keymaps/via/rules.mk | 1 + keyboards/quarkeys/z67/solder/rules.mk | 12 +++ keyboards/quarkeys/z67/solder/solder.c | 15 +++ keyboards/quarkeys/z67/solder/solder.h | 31 ++++++ 17 files changed, 644 insertions(+) create mode 100644 keyboards/quarkeys/z67/hotswap/config.h create mode 100644 keyboards/quarkeys/z67/hotswap/hotswap.c create mode 100644 keyboards/quarkeys/z67/hotswap/hotswap.h create mode 100644 keyboards/quarkeys/z67/hotswap/info.json create mode 100644 keyboards/quarkeys/z67/hotswap/keymaps/default/keymap.c create mode 100644 keyboards/quarkeys/z67/hotswap/keymaps/via/keymap.c create mode 100644 keyboards/quarkeys/z67/hotswap/keymaps/via/rules.mk create mode 100644 keyboards/quarkeys/z67/hotswap/rules.mk create mode 100644 keyboards/quarkeys/z67/readme.md create mode 100644 keyboards/quarkeys/z67/solder/config.h create mode 100644 keyboards/quarkeys/z67/solder/info.json create mode 100644 keyboards/quarkeys/z67/solder/keymaps/default/keymap.c create mode 100644 keyboards/quarkeys/z67/solder/keymaps/via/keymap.c create mode 100644 keyboards/quarkeys/z67/solder/keymaps/via/rules.mk create mode 100644 keyboards/quarkeys/z67/solder/rules.mk create mode 100644 keyboards/quarkeys/z67/solder/solder.c create mode 100644 keyboards/quarkeys/z67/solder/solder.h diff --git a/keyboards/quarkeys/z67/hotswap/config.h b/keyboards/quarkeys/z67/hotswap/config.h new file mode 100644 index 000000000000..c6edde3abf71 --- /dev/null +++ b/keyboards/quarkeys/z67/hotswap/config.h @@ -0,0 +1,45 @@ +/* +/ Copyright 2022 quarkeys +/ This program is free software: you can redistribute it and/or modify +/ it under the terms of the GNU General Public License as published by +/ the Free Software Foundation, either version 2 of the License, or +/ (at your option) any later version. +/ This program is distributed in the hope that it will be useful, +/ but WITHOUT ANY WARRANTY; without even the implied warranty of +/ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/ GNU General Public License for more details. +/ You should have received a copy of the GNU General Public License +/ along with this program. If not, see . +*/ + +#pragma once +#include "config_common.h" + +#define DIODE_DIRECTION COL2ROW + +#define MATRIX_ROW_PINS { B0, B1, B2, B3, F7 } +#define MATRIX_COL_PINS { C7, F6, F5, F4, F1, B7, D5, D1, D2, D3, D4, D0, D6, D7, B4 } + +#define DEBOUNCE 5 + +#define RGB_DI_PIN F0 +#define RGBLED_NUM 77 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#define RGBLIGHT_LIMIT_VAL 180 + +#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_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) + +#define RGBLIGHT_LAYERS +#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF +#define RGBLIGHT_SLEEP diff --git a/keyboards/quarkeys/z67/hotswap/hotswap.c b/keyboards/quarkeys/z67/hotswap/hotswap.c new file mode 100644 index 000000000000..b45286e8ba72 --- /dev/null +++ b/keyboards/quarkeys/z67/hotswap/hotswap.c @@ -0,0 +1,15 @@ +/* +/ Copyright 2022 quarkeys +/ This program is free software: you can redistribute it and/or modify +/ it under the terms of the GNU General Public License as published by +/ the Free Software Foundation, either version 2 of the License, or +/ (at your option) any later version. +/ This program is distributed in the hope that it will be useful, +/ but WITHOUT ANY WARRANTY; without even the implied warranty of +/ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/ GNU General Public License for more details. +/ You should have received a copy of the GNU General Public License +/ along with this program. If not, see . +*/ + +#include "hotswap.h" diff --git a/keyboards/quarkeys/z67/hotswap/hotswap.h b/keyboards/quarkeys/z67/hotswap/hotswap.h new file mode 100644 index 000000000000..ed5758dc37d9 --- /dev/null +++ b/keyboards/quarkeys/z67/hotswap/hotswap.h @@ -0,0 +1,32 @@ +/* +/ Copyright 2022 quarkeys +/ This program is free software: you can redistribute it and/or modify +/ it under the terms of the GNU General Public License as published by +/ the Free Software Foundation, either version 2 of the License, or +/ (at your option) any later version. +/ This program is distributed in the hope that it will be useful, +/ but WITHOUT ANY WARRANTY; without even the implied warranty of +/ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/ GNU General Public License for more details. +/ You should have received a copy of the GNU General Public License +/ along with this program. If not, see . +*/ + +#pragma once +#include "quantum.h" +#define XXXX KC_NO + +#define LAYOUT( \ + 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, K213, K214, \ + K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, \ + K400, K401, K403, K406, K410, K411, K412, K413, K414 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, KC_NO, K213, K214 }, \ + { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314 }, \ + { K400, K401, KC_NO, K403, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, K410, K411, K412, K413, K414 } \ +} + diff --git a/keyboards/quarkeys/z67/hotswap/info.json b/keyboards/quarkeys/z67/hotswap/info.json new file mode 100644 index 000000000000..c31a37325d57 --- /dev/null +++ b/keyboards/quarkeys/z67/hotswap/info.json @@ -0,0 +1,90 @@ +{ + "keyboard_name": "Z67 Hotswap", + "manufacturer": "Quarkeys Stuidio", + "url": "www.quarkeys.com", + "maintainer": "TommyZ", + "usb": { + "vid": "0x8490", + "pid": "0x4102", + "device_version": "0.0.1" + }, + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "layouts": { + "LAYOUT": { + "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":"Delete", "x":15, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"{", "x":11.5, "y":1}, + {"label":"}", "x":12.5, "y":1}, + {"label":"|", "x":13.5, "y":1, "w":1.5}, + {"label":"PgUp", "x":15, "y":1}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":":", "x":10.75, "y":2}, + {"label":"\"", "x":11.75, "y":2}, + {"label":"Enter", "x":12.75, "y":2, "w":2.25}, + {"label":"PgDn", "x":15, "y":2}, + + {"label":"Shift", "x":0, "y":3, "w":2.25}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":"<", "x":9.25, "y":3}, + {"label":">", "x":10.25, "y":3}, + {"label":"?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"\u2191", "x":14, "y":3}, + {"label":"Fn", "x":15, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"label":"Win", "x":1.25, "y":4, "w":1.25}, + {"label":"Alt", "x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"label":"Alt", "x":10, "y":4, "w":1.25}, + {"label":"Ctrl", "x":11.25, "y":4, "w":1.25}, + {"label":"\u2190", "x":13, "y":4}, + {"label":"\u2193", "x":14, "y":4}, + {"label":"\u2192", "x":15, "y":4} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/quarkeys/z67/hotswap/keymaps/default/keymap.c b/keyboards/quarkeys/z67/hotswap/keymaps/default/keymap.c new file mode 100644 index 000000000000..7427419403a2 --- /dev/null +++ b/keyboards/quarkeys/z67/hotswap/keymaps/default/keymap.c @@ -0,0 +1,85 @@ +/* +/ Copyright 2022 quarkeys +/ This program is free software: you can redistribute it and/or modify +/ it under the terms of the GNU General Public License as published by +/ the Free Software Foundation, either version 2 of the License, or +/ (at your option) any later version. +/ This program is distributed in the hope that it will be useful, +/ but WITHOUT ANY WARRANTY; without even the implied warranty of +/ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/ GNU General Public License for more 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] + * ,---------------------------------------------------------------------------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | + | Backspace | Del | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | { | } | \ | PgUp | + * |---------+------+------+------+------+------+------+------+------+------+------+------+------+----------+------| + * | Capslock | A | S | D | F | G | H | J | K | L | ; | " | Enter | PgDn | + * |------------+------+------+------+------+------|------+------+------+------+------+------+------+-------+------| + * | SHIFT | Z | X | C | V | B | N | M | , | . | / | Shift | Up | L1 | + * |--------+------+------+------+------+------+------+------+------+------+------+------+-----------+------+------| + * | Ctrl | Win | ALT | SPACE | L2 | L3 | Left | Down | Rght | + * `--------+--------+--------+------------------------------------------+------+------+------+------+------+------' + */ + [0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(2), MO(3), KC_LEFT, KC_DOWN, KC_RGHT), + + /* [1] + * ,---------------------------------------------------------------------------------------------------------------. + * |Reset | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+-------------+------| + * | | PgUp | Home | Up | End | Del | \ | 7 | 8 | 9 | RTOG | RMOD | RVAI | | | + * |---------+------+------+------+------+------+------+------+------+------+------+------+------+----------+------| + * | | PgDn | Left | Down | Rght | + | - | 4 | 5 | 6 | RSAD | RVAD | | | + * |------------+------+------+------+------+------|------+------+------+------+------+------+--------------+------| + * | | Play | Mute | VolD | VolU | * | / | 1 | 2 | 3 | . | | | | + * |---------------+------+------+------+------+------+------+------+------+------+------+-----------+------+------| + * | Ctrl | Win | ALT | 0 | | | | | | + * `--------+--------+--------+-------------------------------------------+---------+---------+------+------+------' + */ + [1] = LAYOUT( + QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, + KC_TRNS, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_DEL, KC_BSLS, KC_7, KC_8, KC_9, RGB_TOG, RGB_MOD, RGB_VAI, KC_TRNS, KC_TRNS, + KC_TRNS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_PLUS, KC_MINS, KC_4, KC_5, KC_6, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, + KC_TRNS, KC_MPLY, KC_MUTE, KC_VOLD, KC_VOLU, KC_ASTR, KC_SLSH, KC_1, KC_2, KC_3, KC_DOT, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; + +const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS({36, 1, HSV_RED}); +const rgblight_segment_t PROGMEM my_ar_numpad_layer[] = RGBLIGHT_LAYER_SEGMENTS({45, 2, HSV_WHITE}); +const rgblight_segment_t PROGMEM my_symbol_layer[] = RGBLIGHT_LAYER_SEGMENTS({30, 2, HSV_WHITE}); +const rgblight_segment_t PROGMEM my_other_layer[] = RGBLIGHT_LAYER_SEGMENTS({16, 2, HSV_WHITE}); + +const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( + my_capslock_layer, // Caplock indicator + my_ar_numpad_layer, // Arrow keys & Numpad, Operator keys, reset key, RGB control and media control + my_symbol_layer, // F1-F12 keys & Symbols + my_other_layer // Self-Defined +); +void keyboard_post_init_user(void) { + rgblight_layers = my_rgb_layers; +} + +bool led_update_user(led_t led_state) { + rgblight_set_layer_state(0, led_state.caps_lock); + return true; +} + +layer_state_t layer_state_set_user(layer_state_t state) { + rgblight_set_layer_state(1, layer_state_cmp(state, 1)); + rgblight_set_layer_state(2, layer_state_cmp(state, 2)); + rgblight_set_layer_state(3, layer_state_cmp(state, 3)); + return state; +} + diff --git a/keyboards/quarkeys/z67/hotswap/keymaps/via/keymap.c b/keyboards/quarkeys/z67/hotswap/keymaps/via/keymap.c new file mode 100644 index 000000000000..9adb5341ef31 --- /dev/null +++ b/keyboards/quarkeys/z67/hotswap/keymaps/via/keymap.c @@ -0,0 +1,59 @@ +/* +/ Copyright 2022 quarkeys +/ This program is free software: you can redistribute it and/or modify +/ it under the terms of the GNU General Public License as published by +/ the Free Software Foundation, either version 2 of the License, or +/ (at your option) any later version. +/ This program is distributed in the hope that it will be useful, +/ but WITHOUT ANY WARRANTY; without even the implied warranty of +/ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/ GNU General Public License for more details. +/ You should have received a copy of the GNU General Public License +/ along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(2), MO(3), KC_LEFT, KC_DOWN, KC_RGHT), + + [1] = LAYOUT( + QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, + KC_TRNS, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_DEL, KC_BSLS, KC_7, KC_8, KC_9, RGB_TOG, RGB_MOD, RGB_VAI, KC_TRNS, KC_TRNS, + KC_TRNS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_PLUS, KC_MINS, KC_4, KC_5, KC_6, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, + KC_TRNS, KC_MPLY, KC_MUTE, KC_VOLD, KC_VOLU, KC_ASTR, KC_SLSH, KC_1, KC_2, KC_3, KC_DOT, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; + +const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS({36, 1, HSV_RED}); +const rgblight_segment_t PROGMEM my_ar_numpad_layer[] = RGBLIGHT_LAYER_SEGMENTS({45, 2, HSV_WHITE}); +const rgblight_segment_t PROGMEM my_symbol_layer[] = RGBLIGHT_LAYER_SEGMENTS({30, 2, HSV_WHITE}); +const rgblight_segment_t PROGMEM my_other_layer[] = RGBLIGHT_LAYER_SEGMENTS({16, 2, HSV_WHITE}); + +const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( + my_capslock_layer, // Caplock indicator + my_ar_numpad_layer, // Arrow keys & Numpad, Operator keys, reset key, RGB control and media control + my_symbol_layer, // F1-F12 keys & Symbols + my_other_layer // Self-Defined +); +void keyboard_post_init_user(void) { + rgblight_layers = my_rgb_layers; +} + +bool led_update_user(led_t led_state) { + rgblight_set_layer_state(0, led_state.caps_lock); + return true; +} + +layer_state_t layer_state_set_user(layer_state_t state) { + rgblight_set_layer_state(1, layer_state_cmp(state, 1)); + rgblight_set_layer_state(2, layer_state_cmp(state, 2)); + rgblight_set_layer_state(3, layer_state_cmp(state, 3)); + return state; +} + diff --git a/keyboards/quarkeys/z67/hotswap/keymaps/via/rules.mk b/keyboards/quarkeys/z67/hotswap/keymaps/via/rules.mk new file mode 100644 index 000000000000..36b7ba9cbc98 --- /dev/null +++ b/keyboards/quarkeys/z67/hotswap/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/quarkeys/z67/hotswap/rules.mk b/keyboards/quarkeys/z67/hotswap/rules.mk new file mode 100644 index 000000000000..b851d0ab392d --- /dev/null +++ b/keyboards/quarkeys/z67/hotswap/rules.mk @@ -0,0 +1,12 @@ +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/quarkeys/z67/readme.md b/keyboards/quarkeys/z67/readme.md new file mode 100644 index 000000000000..35273e52fb7e --- /dev/null +++ b/keyboards/quarkeys/z67/readme.md @@ -0,0 +1,19 @@ +# Quarkeys Z67 Keyboard + +A 65% Gasket keyboard made by Quarkeys Studio, third of our projects. + +* Keyboard Maintainer: [Quarkeys Studio](www.quarkeys.com) +* Hardware Supported: Z67-YUN +* Hardware Specs: Solder version with throught hole for LEDs, hotswap version with per-key RGBs, layer & Capslock indicators + +Make example for this keyboard solder version keymap(after setting up your build environment): + + make quarkeys/z67/solder:default + +Flashing example for this keyboard: + + make quarkeys/z67/solder:default:flash + +**Bootloader:** Press the `QK_BOOT` keycode at ESC position of layer 1. + +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/quarkeys/z67/solder/config.h b/keyboards/quarkeys/z67/solder/config.h new file mode 100644 index 000000000000..55815364fc9a --- /dev/null +++ b/keyboards/quarkeys/z67/solder/config.h @@ -0,0 +1,44 @@ +/* +/ Copyright 2022 quarkeys +/ This program is free software: you can redistribute it and/or modify +/ it under the terms of the GNU General Public License as published by +/ the Free Software Foundation, either version 2 of the License, or +/ (at your option) any later version. +/ This program is distributed in the hope that it will be useful, +/ but WITHOUT ANY WARRANTY; without even the implied warranty of +/ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/ GNU General Public License for more details. +/ You should have received a copy of the GNU General Public License +/ along with this program. If not, see . +*/ + +#pragma once +#include "config_common.h" + +#define DIODE_DIRECTION COL2ROW + +#define MATRIX_ROW_PINS { B0, B1, B2, B3, F7 } +#define MATRIX_COL_PINS { C7, F6, F5, F4, F1, E6, D0, D1, D2, D3, D4, D5, D6, D7, B5, B4 } + +#define DEBOUNCE 5 + +#define RGB_DI_PIN F0 +#define RGBLED_NUM 18 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#define RGBLIGHT_LIMIT_VAL 180 + +#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_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) + +#define RGBLIGHT_LAYERS +#define RGBLIGHT_SLEEP diff --git a/keyboards/quarkeys/z67/solder/info.json b/keyboards/quarkeys/z67/solder/info.json new file mode 100644 index 000000000000..af8c81f9d2c5 --- /dev/null +++ b/keyboards/quarkeys/z67/solder/info.json @@ -0,0 +1,94 @@ +{ + "keyboard_name": "Z67 Solder", + "manufacturer": "Quarkeys Stuidio", + "url": "www.quarkeys.com", + "maintainer": "TommyZ", + "usb": { + "vid": "0x8490", + "pid": "0x4101", + "device_version": "0.0.1" + }, + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "layouts": { + "LAYOUT": { + "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":"Back", "x":13, "y":0}, + {"label":"~", "x":14, "y":0}, + {"label":"Delete", "x":15, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"{", "x":11.5, "y":1}, + {"label":"}", "x":12.5, "y":1}, + {"label":"|", "x":13.5, "y":1, "w":1.5}, + {"label":"PgUp", "x":15, "y":1}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":":", "x":10.75, "y":2}, + {"label":"\"", "x":11.75, "y":2}, + {"label":"~", "x":12.75, "y":2}, + {"label":"Enter", "x":13.75, "y":2, "w":1.25}, + {"label":"PgDn", "x":15, "y":2}, + + {"label":"Shift", "x":0, "y":3, "w":1.25}, + {"label":"|", "x":1.25, "y":3}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":"<", "x":9.25, "y":3}, + {"label":">", "x":10.25, "y":3}, + {"label":"?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"\u2191", "x":14, "y":3}, + {"label":"Fn", "x":15, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"label":"Win", "x":1.25, "y":4, "w":1.25}, + {"label":"Alt", "x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"label":"Alt", "x":10, "y":4}, + {"label":"Win", "x":11, "y":4}, + {"label":"Ctrl", "x":12, "y":4}, + {"label":"\u2190", "x":13, "y":4}, + {"label":"\u2193", "x":14, "y":4}, + {"label":"\u2192", "x":15, "y":4} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/quarkeys/z67/solder/keymaps/default/keymap.c b/keyboards/quarkeys/z67/solder/keymaps/default/keymap.c new file mode 100644 index 000000000000..e2c1fbb9fc15 --- /dev/null +++ b/keyboards/quarkeys/z67/solder/keymaps/default/keymap.c @@ -0,0 +1,57 @@ +/* +/ Copyright 2022 quarkeys +/ This program is free software: you can redistribute it and/or modify +/ it under the terms of the GNU General Public License as published by +/ the Free Software Foundation, either version 2 of the License, or +/ (at your option) any later version. +/ This program is distributed in the hope that it will be useful, +/ but WITHOUT ANY WARRANTY; without even the implied warranty of +/ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/ GNU General Public License for more 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] + * ,---------------------------------------------------------------------------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | + | Back | ~ | Del | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | { | } | \ | PgUp | + * |---------+------+------+------+------+------+------+------+------+------+------+------+------+----------+------| + * | Capslock | A | S | D | F | G | H | J | K | L | ; | " | ~ | Enter | PgDn | + * |------------+------+------+------+------+------|------+------+------+------+------+------+------+-------+------| + * | SHIFT | \ | Z | X | C | V | B | N | M | , | . | / | Shift | Fn | Up | + * |--------+------+------+------+------+------+------+------+------+------+------+------+-----------+------+------| + * | Ctrl | Win | ALT | SPACE | ALT | Win | Ctrl | Left | Down | Rght | + * `--------+--------+--------+------------------------------------------+------+------+------+------+------+------' + */ + [0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_TILD, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_GRV, KC_ENT, KC_PGDN, + KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(2), MO(3), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + /* [1] + * ,---------------------------------------------------------------------------------------------------------------. + * |Reset | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Back | | | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | PgUp | Home | Up | End | Del | \ | 7 | 8 | 9 | RTOG | RMOD | RVAI | | | + * |---------+------+------+------+------+------+------+------+------+------+------+------+------+----------+------| + * | | PgDn | Left | Down | Rght | + | - | 4 | 5 | 6 | RSAD | RVAD | | | | + * |------------+------+------+------+------+------|------+------+------+------+------+------+------+-------+------| + * | | | Play | Mute | VolD | VolU | * | / | 1 | 2 | 3 | . | | | | + * |--------+------+------+------+------+------+------+------+------+------+------+------+-----------+------+------| + * | | | | 0 | | | | | | | + * `--------+--------+--------+------------------------------------------+------+------+------+------+------+------' + */ + [1] = LAYOUT( + QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSPC, KC_TRNS, KC_TRNS, + KC_TRNS, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_DEL, KC_BSLS, KC_7, KC_8, KC_9, RGB_TOG, RGB_MOD, RGB_VAI, KC_TRNS, KC_TRNS, + KC_TRNS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_PLUS, KC_MINS, KC_4, KC_5, KC_6, RGB_SAD, RGB_SAD, RGB_VAD, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MPLY, KC_MUTE, KC_VOLD, KC_VOLU, KC_ASTR, KC_SLSH, KC_1, KC_2, KC_3, KC_DOT, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; diff --git a/keyboards/quarkeys/z67/solder/keymaps/via/keymap.c b/keyboards/quarkeys/z67/solder/keymaps/via/keymap.c new file mode 100644 index 000000000000..b10070ecd9b6 --- /dev/null +++ b/keyboards/quarkeys/z67/solder/keymaps/via/keymap.c @@ -0,0 +1,31 @@ +/* +/ Copyright 2022 quarkeys +/ This program is free software: you can redistribute it and/or modify +/ it under the terms of the GNU General Public License as published by +/ the Free Software Foundation, either version 2 of the License, or +/ (at your option) any later version. +/ This program is distributed in the hope that it will be useful, +/ but WITHOUT ANY WARRANTY; without even the implied warranty of +/ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/ GNU General Public License for more details. +/ You should have received a copy of the GNU General Public License +/ along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_TILD, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_GRV, KC_ENT, KC_PGDN, + KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(2), MO(3), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [1] = LAYOUT( + QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSPC, KC_TRNS, KC_TRNS, + KC_TRNS, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_DEL, KC_BSLS, KC_7, KC_8, KC_9, RGB_TOG, RGB_MOD, RGB_VAI, KC_TRNS, KC_TRNS, + KC_TRNS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_PLUS, KC_MINS, KC_4, KC_5, KC_6, RGB_SAD, RGB_SAD, RGB_VAD, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MPLY, KC_MUTE, KC_VOLD, KC_VOLU, KC_ASTR, KC_SLSH, KC_1, KC_2, KC_3, KC_DOT, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; diff --git a/keyboards/quarkeys/z67/solder/keymaps/via/rules.mk b/keyboards/quarkeys/z67/solder/keymaps/via/rules.mk new file mode 100644 index 000000000000..036bd6d1c3ec --- /dev/null +++ b/keyboards/quarkeys/z67/solder/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/quarkeys/z67/solder/rules.mk b/keyboards/quarkeys/z67/solder/rules.mk new file mode 100644 index 000000000000..f4e87458b0d9 --- /dev/null +++ b/keyboards/quarkeys/z67/solder/rules.mk @@ -0,0 +1,12 @@ +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/quarkeys/z67/solder/solder.c b/keyboards/quarkeys/z67/solder/solder.c new file mode 100644 index 000000000000..1aacc5168eb2 --- /dev/null +++ b/keyboards/quarkeys/z67/solder/solder.c @@ -0,0 +1,15 @@ +/* +/ Copyright 2022 quarkeys +/ This program is free software: you can redistribute it and/or modify +/ it under the terms of the GNU General Public License as published by +/ the Free Software Foundation, either version 2 of the License, or +/ (at your option) any later version. +/ This program is distributed in the hope that it will be useful, +/ but WITHOUT ANY WARRANTY; without even the implied warranty of +/ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/ GNU General Public License for more details. +/ You should have received a copy of the GNU General Public License +/ along with this program. If not, see . +*/ + +#include "solder.h" diff --git a/keyboards/quarkeys/z67/solder/solder.h b/keyboards/quarkeys/z67/solder/solder.h new file mode 100644 index 000000000000..2a72b547c102 --- /dev/null +++ b/keyboards/quarkeys/z67/solder/solder.h @@ -0,0 +1,31 @@ +/* +/ Copyright 2022 quarkeys +/ This program is free software: you can redistribute it and/or modify +/ it under the terms of the GNU General Public License as published by +/ the Free Software Foundation, either version 2 of the License, or +/ (at your option) any later version. +/ This program is distributed in the hope that it will be useful, +/ but WITHOUT ANY WARRANTY; without even the implied warranty of +/ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/ GNU General Public License for more details. +/ You should have received a copy of the GNU General Public License +/ along with this program. If not, see . +*/ + +#pragma once +#include "quantum.h" +#define XXXX KC_NO + +#define LAYOUT( \ + 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, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K215, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K314, K315, \ + K400, K401, K402, K407, K408, K409, K411, K412, K413, K415 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, XXXX, K114, K115 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, XXXX, K215 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, XXXX, K314, K315 }, \ + { K400, K401, K402, XXXX, XXXX, XXXX, XXXX, K407, K408, K409, XXXX, K411, K412, K413, XXXX, K415 } \ +} From a76e70cffff69d5ba30a39f844df490fcddd93c7 Mon Sep 17 00:00:00 2001 From: lalalademaxiya1 <66767061+lalalademaxiya1@users.noreply.github.com> Date: Fri, 3 Feb 2023 05:33:56 +0800 Subject: [PATCH 125/139] [Keyboard] Add rev_0131 for Keychron Q0 (#19547) Co-authored-by: Ryan --- keyboards/keychron/q0/config.h | 44 +++------ keyboards/keychron/q0/q0.c | 2 +- keyboards/keychron/q0/q0.h | 23 ----- keyboards/keychron/q0/rev_0130/config.h | 10 ++ keyboards/keychron/q0/rev_0130/info.json | 44 ++++----- .../q0/rev_0130/keymaps/keychron/keymap.c | 65 +++++++++++++ .../q0/rev_0130/keymaps/keychron/rules.mk | 5 + keyboards/keychron/q0/rev_0130/rev_0130.h | 38 -------- keyboards/keychron/q0/rev_0131/config.h | 45 +++++++++ keyboards/keychron/q0/rev_0131/info.json | 51 ++++++++++ .../q0/rev_0131/keymaps/default/keymap.c | 49 ++++++++++ .../q0/rev_0131/keymaps/default/rules.mk | 1 + .../q0/rev_0131/keymaps/keychron/keymap.c | 83 ++++++++++++++++ .../q0/rev_0131/keymaps/keychron/rules.mk | 5 + .../keychron/q0/rev_0131/keymaps/via/keymap.c | 69 ++++++++++++++ .../keychron/q0/rev_0131/keymaps/via/rules.mk | 2 + keyboards/keychron/q0/rev_0131/readme.md | 6 ++ keyboards/keychron/q0/rev_0131/rev_0131.c | 95 +++++++++++++++++++ keyboards/keychron/q0/rev_0131/rules.mk | 21 ++++ 19 files changed, 545 insertions(+), 113 deletions(-) delete mode 100644 keyboards/keychron/q0/q0.h create mode 100644 keyboards/keychron/q0/rev_0130/keymaps/keychron/keymap.c create mode 100644 keyboards/keychron/q0/rev_0130/keymaps/keychron/rules.mk delete mode 100644 keyboards/keychron/q0/rev_0130/rev_0130.h create mode 100644 keyboards/keychron/q0/rev_0131/config.h create mode 100644 keyboards/keychron/q0/rev_0131/info.json create mode 100644 keyboards/keychron/q0/rev_0131/keymaps/default/keymap.c create mode 100644 keyboards/keychron/q0/rev_0131/keymaps/default/rules.mk create mode 100644 keyboards/keychron/q0/rev_0131/keymaps/keychron/keymap.c create mode 100644 keyboards/keychron/q0/rev_0131/keymaps/keychron/rules.mk create mode 100644 keyboards/keychron/q0/rev_0131/keymaps/via/keymap.c create mode 100644 keyboards/keychron/q0/rev_0131/keymaps/via/rules.mk create mode 100644 keyboards/keychron/q0/rev_0131/readme.md create mode 100644 keyboards/keychron/q0/rev_0131/rev_0131.c create mode 100644 keyboards/keychron/q0/rev_0131/rules.mk diff --git a/keyboards/keychron/q0/config.h b/keyboards/keychron/q0/config.h index a04d31d3a29b..252d2d6cce90 100644 --- a/keyboards/keychron/q0/config.h +++ b/keyboards/keychron/q0/config.h @@ -16,29 +16,13 @@ #pragma once -/* key matrix size */ -#define MATRIX_ROWS 6 -#define MATRIX_COLS 4 - -/* key matrix pins */ -#define MATRIX_ROW_PINS { B5, B4, B3, A15, A14, A13 } -#define MATRIX_COL_PINS { A5, A6, A7, B0 } - /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION ROW2COL /* Set 0 if debouncing isn't needed */ #define DEBOUNCE 5 -/* RGB Matrix Driver Configuration */ -#define DRIVER_COUNT 1 -#define DRIVER_ADDR_1 0b1110100 - -#define CKLED2001_CURRENT_TUNE \ - { 0xFF, 0xFF, 0x70, 0xFF, 0xFF, 0x70, 0xFF, 0xFF, 0x70, 0xFF, 0xFF, 0x70 } - -#define RGB_MATRIX_CENTER \ - { 56, 16 } +#define CKLED2001_CURRENT_TUNE { 0xFF, 0xFF, 0x70, 0xFF, 0xFF, 0x70, 0xFF, 0xFF, 0x70, 0xFF, 0xFF, 0x70 } /* NKRO */ #define FORCE_NKRO @@ -62,7 +46,7 @@ // #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_BAND_SPIRAL_VAL #define ENABLE_RGB_MATRIX_CYCLE_ALL #define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT #define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN @@ -74,12 +58,12 @@ #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_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_RAIN // #define ENABLE_RGB_MATRIX_PIXEL_FLOW // #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL // enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined @@ -87,15 +71,17 @@ #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 +// #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_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_MULTISPLASH #define ENABLE_RGB_MATRIX_SOLID_SPLASH -#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -// #define RGB_MATRIX_KEYPRESSES +// #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH + +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/keychron/q0/q0.c b/keyboards/keychron/q0/q0.c index 554476ad8ce3..cfe26a583a1a 100644 --- a/keyboards/keychron/q0/q0.c +++ b/keyboards/keychron/q0/q0.c @@ -14,7 +14,7 @@ * along with this program. If not, see . */ -#include "q0.h" +#include "quantum.h" #if defined(RGB_MATRIX_ENABLE) && defined(NUM_LOCK_LED_INDEX) diff --git a/keyboards/keychron/q0/q0.h b/keyboards/keychron/q0/q0.h deleted file mode 100644 index 6eaa41e87cc9..000000000000 --- a/keyboards/keychron/q0/q0.h +++ /dev/null @@ -1,23 +0,0 @@ -/* Copyright 2022 @ Keychron (https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include "quantum.h" - -#if defined(KEYBOARD_keychron_q0_rev_0130) -# include "rev_0130.h" -#endif diff --git a/keyboards/keychron/q0/rev_0130/config.h b/keyboards/keychron/q0/rev_0130/config.h index 126d63658960..80a2e150aff3 100644 --- a/keyboards/keychron/q0/rev_0130/config.h +++ b/keyboards/keychron/q0/rev_0130/config.h @@ -16,9 +16,19 @@ #pragma once +/* key matrix pins */ +#define MATRIX_ROW_PINS { B5, B4, B3, A15, A14, A13 } +#define MATRIX_COL_PINS { A5, A6, A7, B0 } + +/* RGB Matrix Driver Configuration */ +#define DRIVER_COUNT 1 +#define DRIVER_ADDR_1 0b1110100 + /* RGB Matrix Configuration */ #define DRIVER_1_LED_TOTAL 21 #define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL +#define RGB_MATRIX_CENTER { 56, 16 } + /* Enable num-lock LED */ #define NUM_LOCK_LED_INDEX 4 diff --git a/keyboards/keychron/q0/rev_0130/info.json b/keyboards/keychron/q0/rev_0130/info.json index d42a43ef6687..e5f25f62ac8d 100644 --- a/keyboards/keychron/q0/rev_0130/info.json +++ b/keyboards/keychron/q0/rev_0130/info.json @@ -11,33 +11,33 @@ "layouts": { "LAYOUT_numpad_6x4": { "layout": [ - {"label":"Fn", "x":0, "y":0}, - {"label":"Esc", "x":1, "y":0}, - {"label":"Backspace", "x":2, "y":0}, - {"label":"Tab", "x":3, "y":0}, + {"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}, - {"label":"Num Lock", "x":0, "y":1}, - {"label":"/", "x":1, "y":1}, - {"label":"*", "x":2, "y":1}, - {"label":"-", "x":3, "y":1}, + {"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}, - {"label":"7", "x":0, "y":2}, - {"label":"8", "x":1, "y":2}, - {"label":"9", "x":2, "y":2}, + {"matrix":[2,0], "x":0, "y":2}, + {"matrix":[2,1], "x":1, "y":2}, + {"matrix":[2,2], "x":2, "y":2}, - {"label":"4", "x":0, "y":3}, - {"label":"5", "x":1, "y":3}, - {"label":"6", "x":2, "y":3}, - {"label":"+", "x":3, "y":2, "h":2}, + {"matrix":[3,0], "x":0, "y":3}, + {"matrix":[3,1], "x":1, "y":3}, + {"matrix":[3,2], "x":2, "y":3}, + {"matrix":[2,3], "x":3, "y":2, "h":2}, - {"label":"1", "x":0, "y":4}, - {"label":"2", "x":1, "y":4}, - {"label":"3", "x":2, "y":4}, + {"matrix":[4,0], "x":0, "y":4}, + {"matrix":[4,1], "x":1, "y":4}, + {"matrix":[4,2], "x":2, "y":4}, - {"label":"0", "x":0, "y":5, "w":2}, - {"label":".", "x":2, "y":5}, - {"label":"Enter", "x":3, "y":4, "h":2} + {"matrix":[5,0], "x":0, "y":5, "w":2}, + {"matrix":[5,2], "x":2, "y":5}, + {"matrix":[4,3], "x":3, "y":4, "h":2} ] } } -} \ No newline at end of file +} diff --git a/keyboards/keychron/q0/rev_0130/keymaps/keychron/keymap.c b/keyboards/keychron/q0/rev_0130/keymaps/keychron/keymap.c new file mode 100644 index 000000000000..73826716fca6 --- /dev/null +++ b/keyboards/keychron/q0/rev_0130/keymaps/keychron/keymap.c @@ -0,0 +1,65 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H +#include "keychron_common.h" + +enum layers { _BASE, _FN1, _RESERVED1, _RESERVED2 }; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_numpad_6x4( + MO(_FN1), KC_ESC, KC_BSPC, KC_TAB, + KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_P7, KC_P8, KC_P9, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, + KC_P0, KC_PDOT, KC_PENT), + + [_FN1] = LAYOUT_numpad_6x4( + _______, KC_MUTE, KC_VOLD, KC_VOLU, + RGB_MOD, RGB_VAI, RGB_HUI, KC_DEL, + RGB_RMOD, RGB_VAD, RGB_HUD, + RGB_SAI, RGB_SPI, KC_MPRV, _______, + RGB_SAD, RGB_SPD, KC_MPLY, + RGB_TOG, KC_MNXT, _______), + + [_RESERVED1] = LAYOUT_numpad_6x4( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, + _______, _______, _______), + + [_RESERVED2] = LAYOUT_numpad_6x4( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, + _______, _______, _______) +}; + +void housekeeping_task_user(void) { + housekeeping_task_keychron(); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (!process_record_keychron(keycode, record)) { + return false; + } + return true; +} diff --git a/keyboards/keychron/q0/rev_0130/keymaps/keychron/rules.mk b/keyboards/keychron/q0/rev_0130/keymaps/keychron/rules.mk new file mode 100644 index 000000000000..9cf1a9b56cba --- /dev/null +++ b/keyboards/keychron/q0/rev_0130/keymaps/keychron/rules.mk @@ -0,0 +1,5 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes + +VPATH += keyboards/keychron/common +SRC += keychron_common.c diff --git a/keyboards/keychron/q0/rev_0130/rev_0130.h b/keyboards/keychron/q0/rev_0130/rev_0130.h deleted file mode 100644 index d66c880aa970..000000000000 --- a/keyboards/keychron/q0/rev_0130/rev_0130.h +++ /dev/null @@ -1,38 +0,0 @@ -/* Copyright 2022 @ Keychron (https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include "quantum.h" - -#define XXX KC_NO - -#define LAYOUT_numpad_6x4( \ - K00, K01, K02, K03, \ - K10, K11, K12, K13, \ - K20, K21, K22, \ - K30, K31, K32, K23, \ - K40, K41, K42, \ - K50, K52, K43 \ -) \ -{ \ - { K00, K01, K02, K03 }, \ - { K10, K11, K12, K13 }, \ - { K20, K21, K22, K23 }, \ - { K30, K31, K32, XXX }, \ - { K40, K41, K42, K43 }, \ - { K50, XXX, K52, XXX }, \ -} diff --git a/keyboards/keychron/q0/rev_0131/config.h b/keyboards/keychron/q0/rev_0131/config.h new file mode 100644 index 000000000000..4ed6f0e4e7ee --- /dev/null +++ b/keyboards/keychron/q0/rev_0131/config.h @@ -0,0 +1,45 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* key matrix pins */ +#define MATRIX_ROW_PINS { B5, B4, B3, A15, A14, A13 } +#define MATRIX_COL_PINS { C14, C15, A0, A1, A2 } + +/* RGB Matrix Driver Configuration */ +#define DRIVER_COUNT 1 +#define DRIVER_ADDR_1 0b1110111 + +/* RGB Matrix Configuration */ +#define DRIVER_1_LED_TOTAL 26 +#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL + +/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in CKLED2001.h) */ +#define PHASE_CHANNEL MSKPHASE_9CHANNEL + +/* Enable num-lock LED */ +#define NUM_LOCK_LED_INDEX 5 + +/* Encoder Configuration */ +#define ENCODERS_PAD_A { A3 } +#define ENCODERS_PAD_B { A4 } +#define ENCODER_RESOLUTION 4 +#define ENCODER_DEFAULT_POS 0x3 + +/* Specify (0,1) which programmed as "Fn" key on this keyboard as bootmagic key */ +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 1 diff --git a/keyboards/keychron/q0/rev_0131/info.json b/keyboards/keychron/q0/rev_0131/info.json new file mode 100644 index 000000000000..9fbbe7d206ba --- /dev/null +++ b/keyboards/keychron/q0/rev_0131/info.json @@ -0,0 +1,51 @@ +{ + "keyboard_name": "Keychron Q0 Plus", + "manufacturer": "Keychron", + "url": "https://github.com/Keychron", + "maintainer": "lalalademaxiya1", + "usb": { + "vid": "0x3434", + "pid": "0x0131", + "device_version": "1.0.0" + }, + "processor": "STM32L432", + "bootloader": "stm32-dfu", + "layouts": { + "LAYOUT_numpad_6x5": { + "layout": [ + {"matrix":[0,0], "x":0, "y":0}, + {"matrix":[0,1], "x":1.25, "y":0}, + {"matrix":[0,2], "x":2.25, "y":0}, + {"matrix":[0,3], "x":3.25, "y":0}, + {"matrix":[0,4], "x":4.25, "y":0}, + + {"matrix":[1,0], "x":0, "y":1.25}, + {"matrix":[1,1], "x":1.25, "y":1.25}, + {"matrix":[1,2], "x":2.25, "y":1.25}, + {"matrix":[1,3], "x":3.25, "y":1.25}, + {"matrix":[1,4], "x":4.25, "y":1.25}, + + {"matrix":[2,0], "x":0, "y":2.25}, + {"matrix":[2,1], "x":1.25, "y":2.25}, + {"matrix":[2,2], "x":2.25, "y":2.25}, + {"matrix":[2,3], "x":3.25, "y":2.25}, + {"matrix":[2,4], "x":4.25, "y":2.25, "h":2}, + + {"matrix":[3,0], "x":0, "y":3.25}, + {"matrix":[3,1], "x":1.25, "y":3.25}, + {"matrix":[3,2], "x":2.25, "y":3.25}, + {"matrix":[3,3], "x":3.25, "y":3.25}, + + {"matrix":[4,0], "x":0, "y":4.25}, + {"matrix":[4,1], "x":1.25, "y":4.25}, + {"matrix":[4,2], "x":2.25, "y":4.25}, + {"matrix":[4,3], "x":3.25, "y":4.25}, + {"matrix":[4,4], "x":4.25, "y":4.25, "h":2}, + + {"matrix":[5,0], "x":0, "y":5.25}, + {"matrix":[5,1], "x":1.25, "y":5.25, "w":2}, + {"matrix":[5,3], "x":3.25, "y":5.25} + ] + } + } +} diff --git a/keyboards/keychron/q0/rev_0131/keymaps/default/keymap.c b/keyboards/keychron/q0/rev_0131/keymaps/default/keymap.c new file mode 100644 index 000000000000..f92d6b8362b9 --- /dev/null +++ b/keyboards/keychron/q0/rev_0131/keymaps/default/keymap.c @@ -0,0 +1,49 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// clang-format off + +enum layers { + BASE, + FUNC +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [BASE] = LAYOUT_numpad_6x5( + KC_MUTE, MO(FUNC), KC_ESC, KC_BSPC, KC_TAB, + _______, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + _______, KC_P7, KC_P8, KC_P9, KC_PPLS, + _______, KC_P4, KC_P5, KC_P6, + _______, KC_P1, KC_P2, KC_P3, KC_PENT, + _______, KC_P0, KC_PDOT), + + [FUNC] = LAYOUT_numpad_6x5( + RGB_TOG, _______, KC_MUTE, KC_VOLD, KC_VOLU, + _______, RGB_MOD, RGB_VAI, RGB_HUI, KC_DEL, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, _______, + _______, RGB_SAI, RGB_SPI, KC_MPRV, + _______, RGB_SAD, RGB_SPD, KC_MPLY, _______, + _______, RGB_TOG, KC_MNXT), +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [FUNC] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, +}; +#endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/q0/rev_0131/keymaps/default/rules.mk b/keyboards/keychron/q0/rev_0131/keymaps/default/rules.mk new file mode 100644 index 000000000000..ee325681483f --- /dev/null +++ b/keyboards/keychron/q0/rev_0131/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/keychron/q0/rev_0131/keymaps/keychron/keymap.c b/keyboards/keychron/q0/rev_0131/keymaps/keychron/keymap.c new file mode 100644 index 000000000000..5d73b5733f99 --- /dev/null +++ b/keyboards/keychron/q0/rev_0131/keymaps/keychron/keymap.c @@ -0,0 +1,83 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H +#include "keychron_common.h" + +// clang-format off + +enum layers { + BASE, + FUNC, + L2, + L3 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [BASE] = LAYOUT_numpad_6x5( + KC_MUTE, MO(FUNC), KC_ESC, KC_BSPC, KC_TAB, + MACRO01, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + MACRO02, KC_P7, KC_P8, KC_P9, KC_PPLS, + MACRO03, KC_P4, KC_P5, KC_P6, + MACRO04, KC_P1, KC_P2, KC_P3, KC_PENT, + MACRO05, KC_P0, KC_PDOT), + + [FUNC] = LAYOUT_numpad_6x5( + RGB_TOG, _______, KC_MUTE, KC_VOLD, KC_VOLU, + MACRO01, RGB_MOD, RGB_VAI, RGB_HUI, KC_DEL, + MACRO02, RGB_RMOD, RGB_VAD, RGB_HUD, _______, + MACRO03, RGB_SAI, RGB_SPI, KC_MPRV, + MACRO04, RGB_SAD, RGB_SPD, KC_MPLY, _______, + MACRO05, RGB_TOG, KC_MNXT), + + [L2] = LAYOUT_numpad_6x5( + _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, _______, + _______, _______, _______), + + [L3] = LAYOUT_numpad_6x5( + _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, _______, + _______, _______, _______) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [FUNC] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, + [L2] = { ENCODER_CCW_CW(_______, _______) }, + [L3] = { ENCODER_CCW_CW(_______, _______) } +}; +#endif // ENCODER_MAP_ENABLE + +// clang-format on + +void housekeeping_task_user(void) { + housekeeping_task_keychron(); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (!process_record_keychron(keycode, record)) { + return false; + } + return true; +} diff --git a/keyboards/keychron/q0/rev_0131/keymaps/keychron/rules.mk b/keyboards/keychron/q0/rev_0131/keymaps/keychron/rules.mk new file mode 100644 index 000000000000..9cf1a9b56cba --- /dev/null +++ b/keyboards/keychron/q0/rev_0131/keymaps/keychron/rules.mk @@ -0,0 +1,5 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes + +VPATH += keyboards/keychron/common +SRC += keychron_common.c diff --git a/keyboards/keychron/q0/rev_0131/keymaps/via/keymap.c b/keyboards/keychron/q0/rev_0131/keymaps/via/keymap.c new file mode 100644 index 000000000000..58070ecd27f8 --- /dev/null +++ b/keyboards/keychron/q0/rev_0131/keymaps/via/keymap.c @@ -0,0 +1,69 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + + // clang-format off + +enum layers { + BASE, + FUNC, + L2, + L3 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [BASE] = LAYOUT_numpad_6x5( + KC_MUTE, MO(FUNC), KC_ESC, KC_BSPC, KC_TAB, + MACRO01, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + MACRO02, KC_P7, KC_P8, KC_P9, KC_PPLS, + MACRO03, KC_P4, KC_P5, KC_P6, + MACRO04, KC_P1, KC_P2, KC_P3, KC_PENT, + MACRO05, KC_P0, KC_PDOT), + + [FUNC] = LAYOUT_numpad_6x5( + RGB_TOG, _______, KC_MUTE, KC_VOLD, KC_VOLU, + MACRO01, RGB_MOD, RGB_VAI, RGB_HUI, KC_DEL, + MACRO02, RGB_RMOD, RGB_VAD, RGB_HUD, _______, + MACRO03, RGB_SAI, RGB_SPI, KC_MPRV, + MACRO04, RGB_SAD, RGB_SPD, KC_MPLY, _______, + MACRO05, RGB_TOG, KC_MNXT), + + [L2] = LAYOUT_numpad_6x5( + _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, _______, + _______, _______, _______), + + [L3] = LAYOUT_numpad_6x5( + _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, _______, + _______, _______, _______) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [FUNC] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, + [L2] = { ENCODER_CCW_CW(_______, _______) }, + [L3] = { ENCODER_CCW_CW(_______, _______) } +}; +#endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/q0/rev_0131/keymaps/via/rules.mk b/keyboards/keychron/q0/rev_0131/keymaps/via/rules.mk new file mode 100644 index 000000000000..f1adcab005e8 --- /dev/null +++ b/keyboards/keychron/q0/rev_0131/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/keychron/q0/rev_0131/readme.md b/keyboards/keychron/q0/rev_0131/readme.md new file mode 100644 index 000000000000..df07c40e49ae --- /dev/null +++ b/keyboards/keychron/q0/rev_0131/readme.md @@ -0,0 +1,6 @@ +# The enhanced version with encoder of the Keychron Q0 + +- The name of this keyboard is "Q0 Plus" +- Enable EC11 rotary encoder +- Turn clockwise to increase volume and turn anti-clockwise to decrease volume +- Press the knob button to mute diff --git a/keyboards/keychron/q0/rev_0131/rev_0131.c b/keyboards/keychron/q0/rev_0131/rev_0131.c new file mode 100644 index 000000000000..c67a4605578c --- /dev/null +++ b/keyboards/keychron/q0/rev_0131/rev_0131.c @@ -0,0 +1,95 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +#ifdef RGB_MATRIX_ENABLE + +// clang-format off + +const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to CKLED manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, I_2, G_2, H_2}, + {0, I_3, G_3, H_3}, + {0, I_4, G_4, H_4}, + {0, I_5, G_5, H_5}, + + {0, C_1, A_1, B_1}, + {0, C_2, A_2, B_2}, + {0, C_3, A_3, B_3}, + {0, C_4, A_4, B_4}, + {0, C_5, A_5, B_5}, + + {0, F_1, D_1, E_1}, + {0, F_2, D_2, E_2}, + {0, F_3, D_3, E_3}, + {0, F_4, D_4, E_4}, + {0, F_5, D_5, E_5}, + + {0, I_6, G_6, H_6}, + {0, I_7, G_7, H_7}, + {0, I_8, G_8, H_8}, + {0, I_9, G_9, H_9}, + + {0, C_6, A_6, B_6}, + {0, C_7, A_7, B_7}, + {0, C_8, A_8, B_8}, + {0, C_9, A_9, B_9}, + {0, C_10, A_10, B_10}, + + {0, F_6, D_6, E_6}, + {0, F_7, D_7, E_7}, + {0, F_9, D_9, E_9}, +}; + +#define __ NO_LED + +led_config_t g_led_config = { + { + // Key Matrix to LED Index + { __, 0, 1, 2, 3 }, + { 4, 5, 6, 7, 8 }, + { 9, 10, 11, 12, 13 }, + { 14, 15, 16, 17, __ }, + { 18, 19, 20, 21, 22 }, + { 23, 24, __, 25, __ }, + }, + { + // LED Index to Physical Position + {56,0}, {112,0}, {168,0}, {224,0}, + {0,15}, {56,15}, {112,15}, {168,15}, {224,15}, + {0,27}, {56,27}, {112,27}, {168,27}, {224,34}, + {0,40}, {56,40}, {112,40}, {168,40}, + {0,52}, {56,52}, {112,52}, {168,52}, {224,58}, + {0,64}, {84,64}, {168,64}, + }, + { + // LED Index to Flag + 1, 1, 1, 1, + 4, 8, 4, 4, 4, + 4, 4, 4, 4, 4, + 4, 4, 4, 4, + 4, 4, 4, 4, 4, + 4, 4, 1, + } +}; + +#endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/q0/rev_0131/rules.mk b/keyboards/keychron/q0/rev_0131/rules.mk new file mode 100644 index 000000000000..d5f04c34d29c --- /dev/null +++ b/keyboards/keychron/q0/rev_0131/rules.mk @@ -0,0 +1,21 @@ +# 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 USB 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 # Enable encoder +DIP_SWITCH_ENABLE = no +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = CKLED2001 +EEPROM_DRIVER = wear_leveling +WEAR_LEVELING_DRIVER = embedded_flash + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE From 10c3b9737f27b67b3a5ddabb7411a840f7cd6ee7 Mon Sep 17 00:00:00 2001 From: lalalademaxiya1 <66767061+lalalademaxiya1@users.noreply.github.com> Date: Fri, 3 Feb 2023 05:34:18 +0800 Subject: [PATCH 126/139] [Keyboard] Add Keychron V10 (#19504) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- .../keychron/v10/ansi_encoder/ansi_encoder.c | 157 +++++++++++++ keyboards/keychron/v10/ansi_encoder/config.h | 31 +++ keyboards/keychron/v10/ansi_encoder/info.json | 113 +++++++++ .../v10/ansi_encoder/keymaps/default/keymap.c | 72 ++++++ .../v10/ansi_encoder/keymaps/default/rules.mk | 1 + .../ansi_encoder/keymaps/keychron/keymap.c | 83 +++++++ .../ansi_encoder/keymaps/keychron/rules.mk | 5 + .../v10/ansi_encoder/keymaps/via/keymap.c | 72 ++++++ .../v10/ansi_encoder/keymaps/via/rules.mk | 2 + keyboards/keychron/v10/ansi_encoder/rules.mk | 26 +++ keyboards/keychron/v10/config.h | 119 ++++++++++ keyboards/keychron/v10/halconf.h | 22 ++ keyboards/keychron/v10/iso_encoder/config.h | 31 +++ keyboards/keychron/v10/iso_encoder/info.json | 114 ++++++++++ .../keychron/v10/iso_encoder/iso_encoder.c | 158 +++++++++++++ .../v10/iso_encoder/keymaps/default/keymap.c | 72 ++++++ .../v10/iso_encoder/keymaps/default/rules.mk | 1 + .../v10/iso_encoder/keymaps/keychron/keymap.c | 83 +++++++ .../v10/iso_encoder/keymaps/keychron/rules.mk | 5 + .../v10/iso_encoder/keymaps/via/keymap.c | 72 ++++++ .../v10/iso_encoder/keymaps/via/rules.mk | 2 + keyboards/keychron/v10/iso_encoder/rules.mk | 26 +++ keyboards/keychron/v10/matrix.c | 215 ++++++++++++++++++ keyboards/keychron/v10/mcuconf.h | 22 ++ keyboards/keychron/v10/readme.md | 21 ++ keyboards/keychron/v10/v10.c | 100 ++++++++ 26 files changed, 1625 insertions(+) create mode 100644 keyboards/keychron/v10/ansi_encoder/ansi_encoder.c create mode 100644 keyboards/keychron/v10/ansi_encoder/config.h create mode 100644 keyboards/keychron/v10/ansi_encoder/info.json create mode 100644 keyboards/keychron/v10/ansi_encoder/keymaps/default/keymap.c create mode 100644 keyboards/keychron/v10/ansi_encoder/keymaps/default/rules.mk create mode 100644 keyboards/keychron/v10/ansi_encoder/keymaps/keychron/keymap.c create mode 100644 keyboards/keychron/v10/ansi_encoder/keymaps/keychron/rules.mk create mode 100644 keyboards/keychron/v10/ansi_encoder/keymaps/via/keymap.c create mode 100644 keyboards/keychron/v10/ansi_encoder/keymaps/via/rules.mk create mode 100644 keyboards/keychron/v10/ansi_encoder/rules.mk create mode 100644 keyboards/keychron/v10/config.h create mode 100644 keyboards/keychron/v10/halconf.h create mode 100644 keyboards/keychron/v10/iso_encoder/config.h create mode 100644 keyboards/keychron/v10/iso_encoder/info.json create mode 100644 keyboards/keychron/v10/iso_encoder/iso_encoder.c create mode 100644 keyboards/keychron/v10/iso_encoder/keymaps/default/keymap.c create mode 100644 keyboards/keychron/v10/iso_encoder/keymaps/default/rules.mk create mode 100644 keyboards/keychron/v10/iso_encoder/keymaps/keychron/keymap.c create mode 100644 keyboards/keychron/v10/iso_encoder/keymaps/keychron/rules.mk create mode 100644 keyboards/keychron/v10/iso_encoder/keymaps/via/keymap.c create mode 100644 keyboards/keychron/v10/iso_encoder/keymaps/via/rules.mk create mode 100644 keyboards/keychron/v10/iso_encoder/rules.mk create mode 100644 keyboards/keychron/v10/matrix.c create mode 100644 keyboards/keychron/v10/mcuconf.h create mode 100644 keyboards/keychron/v10/readme.md create mode 100644 keyboards/keychron/v10/v10.c diff --git a/keyboards/keychron/v10/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v10/ansi_encoder/ansi_encoder.c new file mode 100644 index 000000000000..bada8af6e98f --- /dev/null +++ b/keyboards/keychron/v10/ansi_encoder/ansi_encoder.c @@ -0,0 +1,157 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +#ifdef RGB_MATRIX_ENABLE + +// clang-format off + +const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, C_2, A_2, B_2}, // ESC + {0, C_3, A_3, B_3}, // F1 + {0, C_4, A_4, B_4}, // F2 + {0, C_5, A_5, B_5}, // F3 + {0, C_6, A_6, B_6}, // F4 + {0, C_7, A_7, B_7}, // F5 + {0, C_8, A_8, B_8}, // F6 + {0, C_9, A_9, B_9}, // F7 + {0, C_10, A_10, B_10}, // F8 + {0, C_11, A_11, B_11}, // F9 + {0, C_12, A_12, B_12}, // F10 + {0, C_13, A_13, B_13}, // F11 + {0, C_14, A_14, B_14}, // F12 + {0, C_15, A_15, B_15}, // INS + {0, C_16, A_16, B_16}, // DEL + + {0, I_1, G_1, H_1}, // M1 + {0, I_2, G_2, H_2}, // `~ + {0, I_3, G_3, H_3}, // 1! + {0, I_4, G_4, H_4}, // 2@ + {0, I_5, G_5, H_5}, // 3# + {0, I_6, G_6, H_6}, // 4$ + {0, I_7, G_7, H_7}, // 5% + {0, I_8, G_8, H_8}, // 6^ + {0, I_9, G_9, H_9}, // 7& + {0, I_10, G_10, H_10}, // 8* + {0, I_11, G_11, H_11}, // 9( + {0, I_12, G_12, H_12}, // 0) + {0, I_13, G_13, H_13}, // -_ + {0, I_14, G_14, H_14}, // =+ + {0, I_15, G_15, H_15}, // BackSpace + {0, I_16, G_16, H_16}, // PgUp + + {0, F_1, D_1, E_1}, // M2 + {0, F_2, D_2, E_2}, // TAB + {0, F_3, D_3, E_3}, // Q + {0, F_4, D_4, E_4}, // W + {0, F_5, D_5, E_5}, // E + {0, F_6, D_6, E_6}, // R + {0, F_7, D_7, E_7}, // T + {0, F_8, D_8, E_8}, // Y + {0, F_9, D_9, E_9}, // U + {0, F_10, D_10, E_10}, // I + {0, F_11, D_11, E_11}, // O + {0, F_12, D_12, E_12}, // P + {0, F_13, D_13, E_13}, // [ + {0, F_14, D_14, E_14}, // ] + {0, F_15, D_15, E_15}, // | + {0, F_16, D_16, E_16}, // PgDn + + {1, C_16, A_16, B_16}, // M3 + {1, C_15, A_15, B_15}, // CapsLock + {1, C_14, A_14, B_14}, // A + {1, C_13, A_13, B_13}, // S + {1, C_12, A_12, B_12}, // D + {1, C_11, A_11, B_11}, // F + {1, C_10, A_10, B_10}, // G + {1, C_8, A_8, B_8}, // H + {1, C_7, A_7, B_7}, // J + {1, C_6, A_6, B_6}, // K + {1, C_5, A_5, B_5}, // L + {1, C_4, A_4, B_4}, // ; + {1, C_3, A_3, B_3}, // ' + {1, C_2, A_2, B_2}, // Enter + {1, C_1, A_1, B_1}, // Home + + {1, I_16, G_16, H_16}, // M4 + {1, I_15, G_15, H_15}, // Shift_L + {1, I_13, G_13, H_13}, // Z + {1, I_12, G_12, H_12}, // X + {1, I_11, G_11, H_11}, // C + {1, I_10, G_10, H_10}, // V + {1, I_9, G_9, H_9}, // B + {1, I_8, G_8, H_8}, // B + {1, I_7, G_7, H_7}, // N + {1, I_6, G_6, H_6}, // M + {1, I_5, G_5, H_5}, // , + {1, I_4, G_4, H_4}, // . + {1, I_3, G_3, H_3}, // ? + {1, I_2, G_2, H_2}, // Shift_R + {1, I_1, G_1, H_1}, // Up + + {1, F_16, D_16, E_16}, // M5 + {1, F_15, D_15, E_15}, // Ctrl_L + {1, F_14, D_14, E_14}, // Win_L + {1, F_13, D_13, E_13}, // Alt_L + {1, F_12, D_12, E_12}, // Space + {1, F_9, D_9, E_9}, // Fn + {1, F_8, D_8, E_8}, // Space + {1, F_7, D_7, E_7}, // Alt_R + {1, F_3, D_3, E_3}, // Left + {1, F_2, D_2, E_2}, // Down + {1, F_1, D_1, E_1}, // Right +}; + +#define __ NO_LED + +led_config_t g_led_config = { + { + // Key Matrix to LED Index + { __, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, + { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 }, + { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46 }, + { 47, 48, 49, 50, 51, 52, 53, __, 54, 55, 56, 57, 58, 59, 60, 61 }, + { 62, 63, __, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76 }, + { 77, 78, 79, 80, 81, __, __, 82, 83, 84, __, __, __, 85, 86, 87 }, + }, + { + // LED Index to Physical Position + {19,0}, {34,0}, {46,0}, {60,1}, {72,3}, {87,6}, {99,8}, {120,8}, {132,6}, {147,3}, {159,1}, {173,0}, {185,0}, {201,1}, {219,1}, + {5,14}, {24,14}, {36,14}, {48,13}, {62,15}, {74,17}, {86,20}, {98,22}, {115,22}, {127,20}, {139,17}, {151,15}, {165,13}, {177,14}, {195,14}, {220,13}, + {4,24}, {24,24}, {40,24}, {53,24}, {65,27}, {77,29}, {89,31}, {112,33}, {124,31}, {136,29}, {148,27}, {160,24}, {174,24}, {186,24}, {201,24}, {222,25}, + {2,34}, {23,34}, {40,34}, {54,35}, {66,37}, {78,39}, {90,42}, {118,43}, {130,40}, {142,38}, {154,36}, {167,35}, {179,35}, {199,35}, {224,36}, + {0,45}, {24,45}, {44,45}, {57,46}, {69,48}, {81,51}, {93,53}, {111,54}, {123,52}, {135,50}, {147,48}, {159,46}, {173,45}, {190,45}, {210,47}, + {0,55}, {18,55}, {33,55}, {56,57}, {77,61}, {97,64}, {124,63}, {147,59}, {198,58}, {210,58}, {222,58}, + }, + { + // RGB LED Index to Flag + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 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, 4, 4, 1, + 1, 8, 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, 1, 1, 1, 4, 1, 4, 1, 1, 1, 1, + } +}; + +#endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v10/ansi_encoder/config.h b/keyboards/keychron/v10/ansi_encoder/config.h new file mode 100644 index 000000000000..4f6891254129 --- /dev/null +++ b/keyboards/keychron/v10/ansi_encoder/config.h @@ -0,0 +1,31 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* RGB Matrix Configuration */ +#define DRIVER_1_LED_TOTAL 47 +#define DRIVER_2_LED_TOTAL 41 +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) + +/* Encoder Configuration */ +#define ENCODERS_PAD_A { A10 } +#define ENCODERS_PAD_B { A8 } +#define ENCODER_RESOLUTION 4 +#define ENCODER_DEFAULT_POS 0x3 + +/* Enable caps-lock LED */ +#define CAPS_LOCK_LED_INDEX 48 diff --git a/keyboards/keychron/v10/ansi_encoder/info.json b/keyboards/keychron/v10/ansi_encoder/info.json new file mode 100644 index 000000000000..5f08fa007280 --- /dev/null +++ b/keyboards/keychron/v10/ansi_encoder/info.json @@ -0,0 +1,113 @@ +{ + "keyboard_name": "Keychron V10", + "manufacturer": "Keychron", + "url": "https://github.com/Keychron", + "maintainer": "lalalademaxiya1", + "usb": { + "vid": "0x3434", + "pid": "0x01A1", + "device_version": "1.0.0" + }, + "processor": "STM32L432", + "bootloader": "stm32-dfu", + "layouts": { + "LAYOUT_ansi_89": { + "layout": [ + {"matrix":[0, 0], "x":0.25, "y":0}, + {"matrix":[0, 1], "x":1.75, "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":6, "y":0}, + {"matrix":[0, 6], "x":7.25, "y":0}, + {"matrix":[0, 7], "x":8.25, "y":0}, + {"matrix":[0, 8], "x":11, "y":0}, + {"matrix":[0, 9], "x":12, "y":0}, + {"matrix":[0,10], "x":13.25, "y":0}, + {"matrix":[0,11], "x":14.25, "y":0}, + {"matrix":[0,12], "x":15.25, "y":0}, + {"matrix":[0,13], "x":16.25, "y":0}, + {"matrix":[0,14], "x":17.5, "y":0}, + {"matrix":[0,15], "x":18.75, "y":0}, + + {"matrix":[1, 0], "x":0.75, "y":1.25}, + {"matrix":[1, 1], "x":2.25, "y":1.25}, + {"matrix":[1, 2], "x":3.25, "y":1.25}, + {"matrix":[1, 3], "x":4.25, "y":1.25}, + {"matrix":[1, 4], "x":5.25, "y":1.25}, + {"matrix":[1, 5], "x":6.25, "y":1.25}, + {"matrix":[1, 6], "x":7.25, "y":1.25}, + {"matrix":[1, 7], "x":8.25, "y":1.25}, + {"matrix":[1, 8], "x":10.5, "y":1.25}, + {"matrix":[1, 9], "x":11.5, "y":1.25}, + {"matrix":[1,10], "x":12.5, "y":1.25}, + {"matrix":[1,11], "x":13.5, "y":1.25}, + {"matrix":[1,12], "x":14.5, "y":1.25}, + {"matrix":[1,13], "x":15.5, "y":1.25}, + {"matrix":[1,14], "x":16.5, "y":1.25, "w":2}, + {"matrix":[1,15], "x":19, "y":1.25}, + + {"matrix":[2, 0], "x":0.5, "y":2.25}, + {"matrix":[2, 1], "x":1.75, "y":2.25, "w":1.5}, + {"matrix":[2, 2], "x":3.25, "y":2.25}, + {"matrix":[2, 3], "x":4.5, "y":2.25}, + {"matrix":[2, 4], "x":5.5, "y":2.25}, + {"matrix":[2, 5], "x":6.5, "y":2.25}, + {"matrix":[2, 6], "x":7.5, "y":2.25}, + {"matrix":[2, 7], "x":10, "y":2.25}, + {"matrix":[2, 8], "x":11, "y":2.25}, + {"matrix":[2, 9], "x":12, "y":2.25}, + {"matrix":[2,10], "x":13, "y":2.25}, + {"matrix":[2,11], "x":14, "y":2.25}, + {"matrix":[2,12], "x":15.25, "y":2.25}, + {"matrix":[2,13], "x":16.25, "y":2.25}, + {"matrix":[2,14], "x":17.25, "y":2.25, "w":1.5}, + {"matrix":[2,15], "x":19.25, "y":2.25}, + + {"matrix":[3, 0], "x":0.25, "y":3.25}, + {"matrix":[3, 1], "x":1.5, "y":3.25, "w":1.75}, + {"matrix":[3, 2], "x":3.25, "y":3.25}, + {"matrix":[3, 3], "x":4.5, "y":3.25}, + {"matrix":[3, 4], "x":5.5, "y":3.25}, + {"matrix":[3, 5], "x":6.5, "y":3.25}, + {"matrix":[3, 6], "x":7.5, "y":3.25}, + {"matrix":[3, 8], "x":10.25, "y":3.25}, + {"matrix":[3, 9], "x":11.25, "y":3.25}, + {"matrix":[3,10], "x":12.25, "y":3.25}, + {"matrix":[3,11], "x":13.25, "y":3.25}, + {"matrix":[3,12], "x":14.75, "y":3.25}, + {"matrix":[3,13], "x":15.75, "y":3.25}, + {"matrix":[3,14], "x":16.75, "y":3.25, "w":2.25}, + {"matrix":[3,15], "x":19.5, "y":3.25}, + + {"matrix":[4, 0], "x":0, "y":4.25}, + {"matrix":[4, 1], "x":1.5, "y":4.25, "w":2.25}, + {"matrix":[4, 3], "x":3.5, "y":4.25}, + {"matrix":[4, 4], "x":4.75, "y":4.25}, + {"matrix":[4, 5], "x":5.75, "y":4.25}, + {"matrix":[4, 6], "x":6.75, "y":4.25}, + {"matrix":[4, 7], "x":7.75, "y":4.25}, + {"matrix":[4, 8], "x":9.5, "y":4.25}, + {"matrix":[4, 9], "x":10.5, "y":4.25}, + {"matrix":[4,10], "x":11.5, "y":4.25}, + {"matrix":[4,11], "x":12.5, "y":4.25}, + {"matrix":[4,12], "x":13.5, "y":4.25}, + {"matrix":[4,13], "x":15.25, "y":4.25}, + {"matrix":[4,14], "x":16.25, "y":4.25, "w":1.75}, + {"matrix":[4,15], "x":18.25, "y":4.5}, + + {"matrix":[5, 0], "x":0, "y":5.25}, + {"matrix":[5, 1], "x":1.25, "y":5.25, "w":1.25}, + {"matrix":[5, 2], "x":2.5, "y":5.25, "w":1.25}, + {"matrix":[5, 3], "x":4.75, "y":5.25, "w":1.25}, + {"matrix":[5, 4], "x":6, "y":5.25, "w":2.25}, + {"matrix":[5, 7], "x":8.25, "y":5.25}, + {"matrix":[5, 8], "x":9.5, "y":5.25, "w":2.75}, + {"matrix":[5, 9], "x":12.25, "y":5.25}, + {"matrix":[5,13], "x":17.25, "y":5.5}, + {"matrix":[5,14], "x":18.25, "y":5.5}, + {"matrix":[5,15], "x":19.25, "y":5.5} + ] + } + } +} diff --git a/keyboards/keychron/v10/ansi_encoder/keymaps/default/keymap.c b/keyboards/keychron/v10/ansi_encoder/keymaps/default/keymap.c new file mode 100644 index 000000000000..122e55978cc1 --- /dev/null +++ b/keyboards/keychron/v10/ansi_encoder/keymaps/default/keymap.c @@ -0,0 +1,72 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// clang-format off + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_ansi_89( + KC_MUTE, KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_INS, KC_DEL, + _______, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, + _______, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, + _______, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME, + _______, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + _______, KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, MO(MAC_FN), KC_SPC, KC_RCMD, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_FN] = LAYOUT_ansi_89( + 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_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [WIN_BASE] = LAYOUT_ansi_89( + KC_MUTE, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, + _______, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, + _______, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, + _______, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME, + _______, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + _______, KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, MO(WIN_FN), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_FN] = LAYOUT_ansi_89( + RGB_TOG, _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +}; + +#if defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][1][2] = { + [MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [MAC_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, + [WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [WIN_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) } +}; +#endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/v10/ansi_encoder/keymaps/default/rules.mk b/keyboards/keychron/v10/ansi_encoder/keymaps/default/rules.mk new file mode 100644 index 000000000000..ee325681483f --- /dev/null +++ b/keyboards/keychron/v10/ansi_encoder/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/keychron/v10/ansi_encoder/keymaps/keychron/keymap.c b/keyboards/keychron/v10/ansi_encoder/keymaps/keychron/keymap.c new file mode 100644 index 000000000000..a7b1f3e3ffad --- /dev/null +++ b/keyboards/keychron/v10/ansi_encoder/keymaps/keychron/keymap.c @@ -0,0 +1,83 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H +#include "keychron_common.h" + +// clang-format off + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_ansi_89( + KC_MUTE, KC_ESC, 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_INS, KC_DEL, + MACRO01, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, + MACRO02, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, + MACRO03, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME, + MACRO04, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + MACRO05, KC_LCTL, KC_LOPTN, KC_LCMMD, KC_SPC, MO(MAC_FN), KC_SPC, KC_RCMMD, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_FN] = LAYOUT_ansi_89( + 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_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [WIN_BASE] = LAYOUT_ansi_89( + KC_MUTE, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, + MACRO01, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, + MACRO02, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, + MACRO03, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME, + MACRO04, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + MACRO05, KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, MO(WIN_FN), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_FN] = LAYOUT_ansi_89( + RGB_TOG, _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +}; + +#if defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][1][2] = { + [MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [MAC_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, + [WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [WIN_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) } +}; +#endif // ENCODER_MAP_ENABLE + +// clang-format on + +void housekeeping_task_user(void) { + housekeeping_task_keychron(); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (!process_record_keychron(keycode, record)) { + return false; + } + return true; +} diff --git a/keyboards/keychron/v10/ansi_encoder/keymaps/keychron/rules.mk b/keyboards/keychron/v10/ansi_encoder/keymaps/keychron/rules.mk new file mode 100644 index 000000000000..9cf1a9b56cba --- /dev/null +++ b/keyboards/keychron/v10/ansi_encoder/keymaps/keychron/rules.mk @@ -0,0 +1,5 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes + +VPATH += keyboards/keychron/common +SRC += keychron_common.c diff --git a/keyboards/keychron/v10/ansi_encoder/keymaps/via/keymap.c b/keyboards/keychron/v10/ansi_encoder/keymaps/via/keymap.c new file mode 100644 index 000000000000..9e765c657e52 --- /dev/null +++ b/keyboards/keychron/v10/ansi_encoder/keymaps/via/keymap.c @@ -0,0 +1,72 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// clang-format off + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_ansi_89( + KC_MUTE, KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_INS, KC_DEL, + MACRO01, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, + MACRO02, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, + MACRO03, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME, + MACRO04, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + MACRO05, KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, MO(MAC_FN), KC_SPC, KC_RCMD, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_FN] = LAYOUT_ansi_89( + 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_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [WIN_BASE] = LAYOUT_ansi_89( + KC_MUTE, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, + MACRO01, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, + MACRO02, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, + MACRO03, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME, + MACRO04, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + MACRO05, KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, MO(WIN_FN), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_FN] = LAYOUT_ansi_89( + RGB_TOG, _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +}; + +#if defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][1][2] = { + [MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [MAC_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, + [WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [WIN_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) } +}; +#endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/v10/ansi_encoder/keymaps/via/rules.mk b/keyboards/keychron/v10/ansi_encoder/keymaps/via/rules.mk new file mode 100644 index 000000000000..f1adcab005e8 --- /dev/null +++ b/keyboards/keychron/v10/ansi_encoder/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/keychron/v10/ansi_encoder/rules.mk b/keyboards/keychron/v10/ansi_encoder/rules.mk new file mode 100644 index 000000000000..ef55047753b7 --- /dev/null +++ b/keyboards/keychron/v10/ansi_encoder/rules.mk @@ -0,0 +1,26 @@ +# 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 USB 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 # Enable Encoder +DIP_SWITCH_ENABLE = yes +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = CKLED2001 +EEPROM_DRIVER = wear_leveling +WEAR_LEVELING_DRIVER = embedded_flash + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE + +# custom matrix setup +CUSTOM_MATRIX = lite + +SRC += matrix.c diff --git a/keyboards/keychron/v10/config.h b/keyboards/keychron/v10/config.h new file mode 100644 index 000000000000..05ac02c4d84f --- /dev/null +++ b/keyboards/keychron/v10/config.h @@ -0,0 +1,119 @@ +/* Copyright 2023 @ Keychron(https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* key matrix pins */ +#define MATRIX_ROW_PINS { B5, B4, B3, A15, A14, A13 } +#define MATRIX_COL_PINS { C14, C15, A0, A1, A2, A3, A4, A5, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN } + +/* Pin connected to DS of 74HC595 */ +#define DATA_PIN_74HC595 A7 +/* Pin connected to SH_CP of 74HC595 */ +#define CLOCK_PIN_74HC595 B1 +/* Pin connected to ST_CP of 74HC595 */ +#define LATCH_PIN_74HC595 B0 + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION ROW2COL + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* RGB Matrix Driver Configuration */ +#define DRIVER_COUNT 2 +#define DRIVER_ADDR_1 0b1110111 +#define DRIVER_ADDR_2 0b1110100 + +/* Increase I2C speed to 1000 KHz */ +#define I2C1_TIMINGR_PRESC 0U +#define I2C1_TIMINGR_SCLDEL 3U +#define I2C1_TIMINGR_SDADEL 0U +#define I2C1_TIMINGR_SCLH 15U +#define I2C1_TIMINGR_SCLL 51U + +/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in CKLED2001.h) */ +#define PHASE_CHANNEL MSKPHASE_9CHANNEL +#define CKLED2001_CURRENT_TUNE { 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A } + +/* DIP switch */ +#define DIP_SWITCH_MATRIX_GRID { {5,5} } + +/* Disable DIP switch in matrix data */ +#define MATRIX_MASKED + +/* Disable RGB lighting when PC is in suspend */ +#define RGB_DISABLE_WHEN_USB_SUSPENDED + +/* EEPROM Driver Configuration */ +#define WEAR_LEVELING_LOGICAL_SIZE 2048 +#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2) + +/* Specify (0,1) which programmed as "ESC" key on this keyboard as bootmagic key */ +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 1 + +// RGB Matrix Animation modes. Explicitly enabled +// For full list of effects, see: +// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects +// #define ENABLE_RGB_MATRIX_ALPHAS_MODS +// #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN +// #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_BREATHING +// #define ENABLE_RGB_MATRIX_BAND_SAT +// #define ENABLE_RGB_MATRIX_BAND_VAL +// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT +#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL +#define ENABLE_RGB_MATRIX_CYCLE_ALL +#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN +#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN +#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL +#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL +#define ENABLE_RGB_MATRIX_DUAL_BEACON +#define ENABLE_RGB_MATRIX_RAINBOW_BEACON +// #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS +// #define ENABLE_RGB_MATRIX_RAINDROPS +#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +// #define ENABLE_RGB_MATRIX_HUE_BREATHING +// #define ENABLE_RGB_MATRIX_HUE_PENDULUM +// #define ENABLE_RGB_MATRIX_HUE_WAVE +#define ENABLE_RGB_MATRIX_PIXEL_RAIN +// #define ENABLE_RGB_MATRIX_PIXEL_FLOW +// #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL +// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined +#define ENABLE_RGB_MATRIX_TYPING_HEATMAP +#define ENABLE_RGB_MATRIX_DIGITAL_RAIN +// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +#define ENABLE_RGB_MATRIX_SPLASH +// #define ENABLE_RGB_MATRIX_MULTISPLASH +#define ENABLE_RGB_MATRIX_SOLID_SPLASH +// #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH + +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/keychron/v10/halconf.h b/keyboards/keychron/v10/halconf.h new file mode 100644 index 000000000000..e490b49e005a --- /dev/null +++ b/keyboards/keychron/v10/halconf.h @@ -0,0 +1,22 @@ +/* Copyright 2020 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_I2C TRUE +#define PAL_USE_CALLBACKS TRUE + +#include_next diff --git a/keyboards/keychron/v10/iso_encoder/config.h b/keyboards/keychron/v10/iso_encoder/config.h new file mode 100644 index 000000000000..b064f10a604e --- /dev/null +++ b/keyboards/keychron/v10/iso_encoder/config.h @@ -0,0 +1,31 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* RGB Matrix Configuration */ +#define DRIVER_1_LED_TOTAL 47 +#define DRIVER_2_LED_TOTAL 42 +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) + +/* Encoder Configuration */ +#define ENCODERS_PAD_A { A10 } +#define ENCODERS_PAD_B { A8 } +#define ENCODER_RESOLUTION 4 +#define ENCODER_DEFAULT_POS 0x3 + +/* Enable caps-lock LED */ +#define CAPS_LOCK_LED_INDEX 47 diff --git a/keyboards/keychron/v10/iso_encoder/info.json b/keyboards/keychron/v10/iso_encoder/info.json new file mode 100644 index 000000000000..5eb5c53789e6 --- /dev/null +++ b/keyboards/keychron/v10/iso_encoder/info.json @@ -0,0 +1,114 @@ +{ + "keyboard_name": "Keychron V10", + "manufacturer": "Keychron", + "url": "https://github.com/Keychron", + "maintainer": "lalalademaxiya1", + "usb": { + "vid": "0x3434", + "pid": "0x03A3", + "device_version": "1.0.0" + }, + "processor": "STM32L432", + "bootloader": "stm32-dfu", + "layouts": { + "LAYOUT_iso_90": { + "layout": [ + {"matrix":[0, 0], "x":0.25, "y":0}, + {"matrix":[0, 1], "x":1.75, "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":6, "y":0}, + {"matrix":[0, 6], "x":7.25, "y":0}, + {"matrix":[0, 7], "x":8.25, "y":0}, + {"matrix":[0, 8], "x":11, "y":0}, + {"matrix":[0, 9], "x":12, "y":0}, + {"matrix":[0,10], "x":13.25, "y":0}, + {"matrix":[0,11], "x":14.25, "y":0}, + {"matrix":[0,12], "x":15.25, "y":0}, + {"matrix":[0,13], "x":16.25, "y":0}, + {"matrix":[0,14], "x":17.5, "y":0}, + {"matrix":[0,15], "x":18.75, "y":0}, + + {"matrix":[1, 0], "x":0.75, "y":1.25}, + {"matrix":[1, 1], "x":2.25, "y":1.25}, + {"matrix":[1, 2], "x":3.25, "y":1.25}, + {"matrix":[1, 3], "x":4.25, "y":1.25}, + {"matrix":[1, 4], "x":5.25, "y":1.25}, + {"matrix":[1, 5], "x":6.25, "y":1.25}, + {"matrix":[1, 6], "x":7.25, "y":1.25}, + {"matrix":[1, 7], "x":8.25, "y":1.25}, + {"matrix":[1, 8], "x":10.5, "y":1.25}, + {"matrix":[1, 9], "x":11.5, "y":1.25}, + {"matrix":[1,10], "x":12.5, "y":1.25}, + {"matrix":[1,11], "x":13.5, "y":1.25}, + {"matrix":[1,12], "x":14.5, "y":1.25}, + {"matrix":[1,13], "x":15.5, "y":1.25}, + {"matrix":[1,14], "x":16.5, "y":1.25, "w":2}, + {"matrix":[1,15], "x":19, "y":1.25}, + + {"matrix":[2, 0], "x":0.5, "y":2.25}, + {"matrix":[2, 1], "x":1.75, "y":2.25, "w":1.5}, + {"matrix":[2, 2], "x":3.25, "y":2.25}, + {"matrix":[2, 3], "x":4.5, "y":2.25}, + {"matrix":[2, 4], "x":5.5, "y":2.25}, + {"matrix":[2, 5], "x":6.5, "y":2.25}, + {"matrix":[2, 6], "x":7.5, "y":2.25}, + {"matrix":[2, 7], "x":10, "y":2.25}, + {"matrix":[2, 8], "x":11, "y":2.25}, + {"matrix":[2, 9], "x":12, "y":2.25}, + {"matrix":[2,10], "x":13, "y":2.25}, + {"matrix":[2,11], "x":14, "y":2.25}, + {"matrix":[2,12], "x":15.25, "y":2.25}, + {"matrix":[2,13], "x":16.25, "y":2.25}, + {"matrix":[2,15], "x":19.25, "y":2.25}, + + {"matrix":[3, 0], "x":0.25, "y":3.25}, + {"matrix":[3, 1], "x":1.5, "y":3.25, "w":1.75}, + {"matrix":[3, 2], "x":3.25, "y":3.25}, + {"matrix":[3, 3], "x":4.5, "y":3.25}, + {"matrix":[3, 4], "x":5.5, "y":3.25}, + {"matrix":[3, 5], "x":6.5, "y":3.25}, + {"matrix":[3, 6], "x":7.5, "y":3.25}, + {"matrix":[3, 8], "x":10.25, "y":3.25}, + {"matrix":[3, 9], "x":11.25, "y":3.25}, + {"matrix":[3,10], "x":12.25, "y":3.25}, + {"matrix":[3,11], "x":13.25, "y":3.25}, + {"matrix":[3,12], "x":14.75, "y":3.25}, + {"matrix":[3,13], "x":15.75, "y":3.25}, + {"matrix":[3,14], "x":16.75, "y":3.25}, + {"matrix":[2,14], "x":17.75, "y":3.25, "w":1.25, "h":2}, + {"matrix":[3,15], "x":19.5, "y":3.25}, + + {"matrix":[4, 0], "x":0, "y":4.25}, + {"matrix":[4, 1], "x":1.5, "y":4.25}, + {"matrix":[4, 2], "x":2.5, "y":4.25}, + {"matrix":[4, 3], "x":3.5, "y":4.25}, + {"matrix":[4, 4], "x":4.75, "y":4.25}, + {"matrix":[4, 5], "x":5.75, "y":4.25}, + {"matrix":[4, 6], "x":6.75, "y":4.25}, + {"matrix":[4, 7], "x":7.75, "y":4.25}, + {"matrix":[4, 8], "x":9.5, "y":4.25}, + {"matrix":[4, 9], "x":10.5, "y":4.25}, + {"matrix":[4,10], "x":11.5, "y":4.25}, + {"matrix":[4,11], "x":12.5, "y":4.25}, + {"matrix":[4,12], "x":13.5, "y":4.25}, + {"matrix":[4,13], "x":15.25, "y":4.25}, + {"matrix":[4,14], "x":16.25, "y":4.25, "w":1.75}, + {"matrix":[4,15], "x":18.25, "y":4.5}, + + {"matrix":[5, 0], "x":0, "y":5.25}, + {"matrix":[5, 1], "x":1.25, "y":5.25, "w":1.25}, + {"matrix":[5, 2], "x":2.5, "y":5.25, "w":1.25}, + {"matrix":[5, 3], "x":4.75, "y":5.25, "w":1.25}, + {"matrix":[5, 4], "x":6, "y":5.25, "w":2.25}, + {"matrix":[5, 7], "x":8.25, "y":5.25}, + {"matrix":[5, 8], "x":9.5, "y":5.25, "w":2.75}, + {"matrix":[5, 9], "x":12.25, "y":5.25}, + {"matrix":[5,13], "x":17.25, "y":5.5}, + {"matrix":[5,14], "x":18.25, "y":5.5}, + {"matrix":[5,15], "x":19.25, "y":5.5} + ] + } + } +} diff --git a/keyboards/keychron/v10/iso_encoder/iso_encoder.c b/keyboards/keychron/v10/iso_encoder/iso_encoder.c new file mode 100644 index 000000000000..070a01a8a828 --- /dev/null +++ b/keyboards/keychron/v10/iso_encoder/iso_encoder.c @@ -0,0 +1,158 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +#ifdef RGB_MATRIX_ENABLE + +// clang-format off + +const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, C_2, A_2, B_2}, // ESC + {0, C_3, A_3, B_3}, // F1 + {0, C_4, A_4, B_4}, // F2 + {0, C_5, A_5, B_5}, // F3 + {0, C_6, A_6, B_6}, // F4 + {0, C_7, A_7, B_7}, // F5 + {0, C_8, A_8, B_8}, // F6 + {0, C_9, A_9, B_9}, // F7 + {0, C_10, A_10, B_10}, // F8 + {0, C_11, A_11, B_11}, // F9 + {0, C_12, A_12, B_12}, // F10 + {0, C_13, A_13, B_13}, // F11 + {0, C_14, A_14, B_14}, // F12 + {0, C_15, A_15, B_15}, // INS + {0, C_16, A_16, B_16}, // DEL + + {0, I_1, G_1, H_1}, // M1 + {0, I_2, G_2, H_2}, // `~ + {0, I_3, G_3, H_3}, // 1! + {0, I_4, G_4, H_4}, // 2@ + {0, I_5, G_5, H_5}, // 3# + {0, I_6, G_6, H_6}, // 4$ + {0, I_7, G_7, H_7}, // 5% + {0, I_8, G_8, H_8}, // 6^ + {0, I_9, G_9, H_9}, // 7& + {0, I_10, G_10, H_10}, // 8* + {0, I_11, G_11, H_11}, // 9( + {0, I_12, G_12, H_12}, // 0) + {0, I_13, G_13, H_13}, // -_ + {0, I_14, G_14, H_14}, // =+ + {0, I_15, G_15, H_15}, // BackSpace + {0, I_16, G_16, H_16}, // PgUp + + {0, F_1, D_1, E_1}, // M2 + {0, F_2, D_2, E_2}, // TAB + {0, F_3, D_3, E_3}, // Q + {0, F_4, D_4, E_4}, // W + {0, F_5, D_5, E_5}, // E + {0, F_6, D_6, E_6}, // R + {0, F_7, D_7, E_7}, // T + {0, F_8, D_8, E_8}, // Y + {0, F_9, D_9, E_9}, // U + {0, F_10, D_10, E_10}, // I + {0, F_11, D_11, E_11}, // O + {0, F_12, D_12, E_12}, // P + {0, F_13, D_13, E_13}, // [ + {0, F_14, D_14, E_14}, // ] + {0, F_16, D_16, E_16}, // PgDn + + {1, C_16, A_16, B_16}, // M3 + {1, C_15, A_15, B_15}, // CapsLock + {1, C_14, A_14, B_14}, // A + {1, C_13, A_13, B_13}, // S + {1, C_12, A_12, B_12}, // D + {1, C_11, A_11, B_11}, // F + {1, C_10, A_10, B_10}, // G + {1, C_8, A_8, B_8}, // H + {1, C_7, A_7, B_7}, // J + {1, C_6, A_6, B_6}, // K + {1, C_5, A_5, B_5}, // L + {1, C_4, A_4, B_4}, // ; + {1, C_3, A_3, B_3}, // ' + {0, F_15, D_15, E_15}, // | + {1, C_2, A_2, B_2}, // Enter + {1, C_1, A_1, B_1}, // Home + + {1, I_16, G_16, H_16}, // M4 + {1, I_15, G_15, H_15}, // Shift_L + {1, I_14, G_14, H_14}, + {1, I_13, G_13, H_13}, // Z + {1, I_12, G_12, H_12}, // X + {1, I_11, G_11, H_11}, // C + {1, I_10, G_10, H_10}, // V + {1, I_9, G_9, H_9}, // B + {1, I_8, G_8, H_8}, // B + {1, I_7, G_7, H_7}, // N + {1, I_6, G_6, H_6}, // M + {1, I_5, G_5, H_5}, // , + {1, I_4, G_4, H_4}, // . + {1, I_3, G_3, H_3}, // ? + {1, I_2, G_2, H_2}, // Shift_R + {1, I_1, G_1, H_1}, // Up + + {1, F_16, D_16, E_16}, // M5 + {1, F_15, D_15, E_15}, // Ctrl_L + {1, F_14, D_14, E_14}, // Win_L + {1, F_13, D_13, E_13}, // Alt_L + {1, F_12, D_12, E_12}, // Space + {1, F_9, D_9, E_9}, // Fn + {1, F_8, D_8, E_8}, // Space + {1, F_7, D_7, E_7}, // Alt_R + {1, F_3, D_3, E_3}, // Left + {1, F_2, D_2, E_2}, // Down + {1, F_1, D_1, E_1}, // Right +}; + +#define __ NO_LED + +led_config_t g_led_config = { + { + // Key Matrix to LED Index + { __, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, + { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 }, + { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 59, 45 }, + { 46, 47, 48, 49, 50, 51, 52, __, 53, 54, 55, 56, 57, 58, 60, 61 }, + { 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77 }, + { 78, 79, 80, 81, 82, __, __, 83, 84, 85, __, __, __, 86, 87, 88 }, + }, + { + // LED Index to Physical Position + {0,0}, {19,0}, {34,0}, {60,1}, {72,3}, {87,6}, {99,8}, {120,8}, {132,6}, {147,3}, {159,1}, {173,0}, {185,0}, {201,1}, {219,1}, + {5,14}, {24,14}, {36,14}, {48,13}, {62,15}, {74,17}, {86,20}, {98,22}, {115,22}, {127,20}, {139,17}, {151,15}, {165,13}, {177,14}, {195,14}, {220,15}, + {4,24}, {24,24}, {40,24}, {53,24}, {65,27}, {77,29}, {89,31}, {112,33}, {124,31}, {136,29}, {148,27}, {160,24}, {176,24}, {189,24}, {222,25}, + {2,34}, {23,34}, {40,34}, {54,35}, {66,37}, {78,39}, {90,42}, {118,43}, {130,40}, {142,38}, {154,36}, {167,35}, {179,35}, {192,35}, {208,31}, {224,36}, + {0,45}, {18,45}, {31,45}, {44,45}, {57,46}, {69,48}, {81,51}, {93,53}, {111,54}, {123,52}, {135,50}, {147,48}, {159,46}, {173,45}, {190,45}, {210,47}, + {0,55}, {18,55}, {33,55}, {56,57}, {77,61}, {97,64}, {124,63}, {147,59}, {198,58}, {210,58}, {222,58}, + }, + { + // RGB LED Index to Flag + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 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, 4, 1, + 1, 8, 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, 4, 1, 1, + 1, 1, 1, 1, 4, 1, 4, 1, 1, 1, 1, + } +}; + +#endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v10/iso_encoder/keymaps/default/keymap.c b/keyboards/keychron/v10/iso_encoder/keymaps/default/keymap.c new file mode 100644 index 000000000000..e5dd06d1bc0a --- /dev/null +++ b/keyboards/keychron/v10/iso_encoder/keymaps/default/keymap.c @@ -0,0 +1,72 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// clang-format off + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_iso_90( + KC_MUTE, KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_INS, KC_DEL, + _______, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, + _______, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_PGDN, + _______, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_HOME, + _______, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + _______, KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, MO(MAC_FN), KC_SPC, KC_RCMD, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_FN] = LAYOUT_iso_90( + 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_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [WIN_BASE] = LAYOUT_iso_90( + KC_MUTE, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, + _______, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, + _______, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_PGDN, + _______, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_HOME, + _______, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + _______, KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, MO(WIN_FN), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_FN] = LAYOUT_iso_90( + RGB_TOG, _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +}; + +#if defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][1][2] = { + [MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [MAC_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, + [WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [WIN_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) } +}; +#endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/v10/iso_encoder/keymaps/default/rules.mk b/keyboards/keychron/v10/iso_encoder/keymaps/default/rules.mk new file mode 100644 index 000000000000..ee325681483f --- /dev/null +++ b/keyboards/keychron/v10/iso_encoder/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/keychron/v10/iso_encoder/keymaps/keychron/keymap.c b/keyboards/keychron/v10/iso_encoder/keymaps/keychron/keymap.c new file mode 100644 index 000000000000..ee38d5294aeb --- /dev/null +++ b/keyboards/keychron/v10/iso_encoder/keymaps/keychron/keymap.c @@ -0,0 +1,83 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H +#include "keychron_common.h" + +// clang-format off + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_iso_90( + KC_MUTE, KC_ESC, 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_INS, KC_DEL, + MACRO01, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, + MACRO02, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_PGDN, + MACRO03, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_HOME, + MACRO04, 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, KC_UP, + MACRO05, KC_LCTL, KC_LOPTN, KC_LCMMD, KC_SPC, MO(MAC_FN), KC_SPC, KC_RCMMD, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_FN] = LAYOUT_iso_90( + 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_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [WIN_BASE] = LAYOUT_iso_90( + KC_MUTE, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, + MACRO01, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, + MACRO02, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_PGDN, + MACRO03, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_HOME, + MACRO04, 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, KC_UP, + MACRO05, KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, MO(WIN_FN), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_FN] = LAYOUT_iso_90( + RGB_TOG, _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +}; + +#if defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][1][2] = { + [MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [MAC_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, + [WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [WIN_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) } +}; +#endif // ENCODER_MAP_ENABLE + +// clang-format on + +void housekeeping_task_user(void) { + housekeeping_task_keychron(); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (!process_record_keychron(keycode, record)) { + return false; + } + return true; +} diff --git a/keyboards/keychron/v10/iso_encoder/keymaps/keychron/rules.mk b/keyboards/keychron/v10/iso_encoder/keymaps/keychron/rules.mk new file mode 100644 index 000000000000..9cf1a9b56cba --- /dev/null +++ b/keyboards/keychron/v10/iso_encoder/keymaps/keychron/rules.mk @@ -0,0 +1,5 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes + +VPATH += keyboards/keychron/common +SRC += keychron_common.c diff --git a/keyboards/keychron/v10/iso_encoder/keymaps/via/keymap.c b/keyboards/keychron/v10/iso_encoder/keymaps/via/keymap.c new file mode 100644 index 000000000000..3765e8bb4f83 --- /dev/null +++ b/keyboards/keychron/v10/iso_encoder/keymaps/via/keymap.c @@ -0,0 +1,72 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// clang-format off + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_iso_90( + KC_MUTE, KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_INS, KC_DEL, + MACRO01, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, + MACRO02, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_PGDN, + MACRO03, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_HOME, + MACRO04, 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, KC_UP, + MACRO05, KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, MO(MAC_FN), KC_SPC, KC_RCMD, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_FN] = LAYOUT_iso_90( + 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_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [WIN_BASE] = LAYOUT_iso_90( + KC_MUTE, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, + MACRO01, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, + MACRO02, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_PGDN, + MACRO03, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_HOME, + MACRO04, 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, KC_UP, + MACRO05, KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, MO(WIN_FN), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_FN] = LAYOUT_iso_90( + RGB_TOG, _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +}; + +#if defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][1][2] = { + [MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [MAC_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, + [WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [WIN_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) } +}; +#endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/v10/iso_encoder/keymaps/via/rules.mk b/keyboards/keychron/v10/iso_encoder/keymaps/via/rules.mk new file mode 100644 index 000000000000..f1adcab005e8 --- /dev/null +++ b/keyboards/keychron/v10/iso_encoder/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/keychron/v10/iso_encoder/rules.mk b/keyboards/keychron/v10/iso_encoder/rules.mk new file mode 100644 index 000000000000..ef55047753b7 --- /dev/null +++ b/keyboards/keychron/v10/iso_encoder/rules.mk @@ -0,0 +1,26 @@ +# 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 USB 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 # Enable Encoder +DIP_SWITCH_ENABLE = yes +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = CKLED2001 +EEPROM_DRIVER = wear_leveling +WEAR_LEVELING_DRIVER = embedded_flash + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE + +# custom matrix setup +CUSTOM_MATRIX = lite + +SRC += matrix.c diff --git a/keyboards/keychron/v10/matrix.c b/keyboards/keychron/v10/matrix.c new file mode 100644 index 000000000000..9269fed8d669 --- /dev/null +++ b/keyboards/keychron/v10/matrix.c @@ -0,0 +1,215 @@ +/* Copyright 2022 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "matrix.h" +#include "quantum.h" + +#ifndef PIN_USED_74HC595 +# define PIN_USED_74HC595 8 +#endif +#ifndef PIN_START_74HC595 +# define PIN_START_74HC595 8 +#endif + +#ifdef MATRIX_ROW_PINS +static pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; +#endif // MATRIX_ROW_PINS +#ifdef MATRIX_COL_PINS +static pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; +#endif // MATRIX_COL_PINS + +#define ROWS_PER_HAND (MATRIX_ROWS) + +static inline void setPinOutput_writeLow(pin_t pin) { + ATOMIC_BLOCK_FORCEON { + setPinOutput(pin); + writePinLow(pin); + } +} + +static inline void setPinOutput_writeHigh(pin_t pin) { + ATOMIC_BLOCK_FORCEON { + setPinOutput(pin); + writePinHigh(pin); + } +} + +static inline void setPinInputHigh_atomic(pin_t pin) { + ATOMIC_BLOCK_FORCEON { + setPinInputHigh(pin); + } +} + +static inline uint8_t readMatrixPin(pin_t pin) { + if (pin != NO_PIN) { + return readPin(pin); + } else { + return 1; + } +} + +void small_delay(volatile uint8_t timeout) { + while (timeout--); +} + +static void shiftOut(uint16_t dataOut) { + ATOMIC_BLOCK_FORCEON { + for (uint8_t i = 0; i < PIN_USED_74HC595; i++) { + if (dataOut & 0x1) { + writePinHigh(DATA_PIN_74HC595); + } else { + writePinLow(DATA_PIN_74HC595); + } + dataOut = dataOut >> 1; + writePinHigh(CLOCK_PIN_74HC595); + small_delay(2); + writePinLow(CLOCK_PIN_74HC595); + } + writePinHigh(LATCH_PIN_74HC595); + small_delay(2); + writePinLow(LATCH_PIN_74HC595); + } +} + +static void shiftOut_single(uint8_t data) { + ATOMIC_BLOCK_FORCEON { + if (data & 0x1) { + writePinHigh(DATA_PIN_74HC595); + } else { + writePinLow(DATA_PIN_74HC595); + } + writePinHigh(CLOCK_PIN_74HC595); + small_delay(2); + writePinLow(CLOCK_PIN_74HC595); + writePinHigh(LATCH_PIN_74HC595); + small_delay(2); + writePinLow(LATCH_PIN_74HC595); + } +} + +static bool select_col(uint8_t col) { + pin_t pin = col_pins[col]; + + if (pin != NO_PIN) { + setPinOutput_writeLow(pin); + return true; + } else { + if (col == PIN_START_74HC595) { + shiftOut_single(0x00); + } + return true; + } + return false; +} + +static void unselect_col(uint8_t col) { + pin_t pin = col_pins[col]; + + if (pin != NO_PIN) { +#ifdef MATRIX_UNSELECT_DRIVE_HIGH + setPinOutput_writeHigh(pin); +#else + setPinInputHigh_atomic(pin); +#endif + } else { + shiftOut_single(0x01); + } +} + +static void unselect_cols(void) { + // unselect column pins + for (uint8_t x = 0; x < MATRIX_COLS; x++) { + pin_t pin = col_pins[x]; + + if (pin != NO_PIN) { +#ifdef MATRIX_UNSELECT_DRIVE_HIGH + setPinOutput_writeHigh(pin); +#else + setPinInputHigh_atomic(pin); +#endif + } + if (x == PIN_START_74HC595) + // unselect Shift Register + shiftOut(0xFFFF); + } +} + +static void matrix_init_pins(void) { + setPinOutput(DATA_PIN_74HC595); + setPinOutput(CLOCK_PIN_74HC595); + setPinOutput(LATCH_PIN_74HC595); +#ifdef MATRIX_UNSELECT_DRIVE_HIGH + for (uint8_t x = 0; x < MATRIX_COLS; x++) { + if (col_pins[x] != NO_PIN) { + setPinOutput(col_pins[x]); + } + } +#endif + unselect_cols(); + for (uint8_t x = 0; x < MATRIX_ROWS; x++) { + if (row_pins[x] != NO_PIN) { + setPinInputHigh_atomic(row_pins[x]); + } + } +} + +static void matrix_read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col, matrix_row_t row_shifter) { + bool key_pressed = false; + + // Select col + if (!select_col(current_col)) { // select col + return; // skip NO_PIN col + } + + matrix_output_select_delay(); + + // For each row... + for (uint8_t row_index = 0; row_index < ROWS_PER_HAND; row_index++) { + // Check row pin state + if (readMatrixPin(row_pins[row_index]) == 0) { + // Pin LO, set col bit + current_matrix[row_index] |= row_shifter; + key_pressed = true; + } else { + // Pin HI, clear col bit + current_matrix[row_index] &= ~row_shifter; + } + } + + // Unselect col + unselect_col(current_col); + matrix_output_unselect_delay(current_col, key_pressed); // wait for all Row signals to go HIGH +} + +void matrix_init_custom(void) { + // initialize key pins + matrix_init_pins(); +} + +bool matrix_scan_custom(matrix_row_t current_matrix[]) { + matrix_row_t curr_matrix[MATRIX_ROWS] = {0}; + + // Set col, read rows + matrix_row_t row_shifter = MATRIX_ROW_SHIFTER; + for (uint8_t current_col = 0; current_col < MATRIX_COLS; current_col++, row_shifter <<= 1) { + matrix_read_rows_on_col(curr_matrix, current_col, row_shifter); + } + + bool changed = memcmp(current_matrix, curr_matrix, sizeof(curr_matrix)) != 0; + if (changed) memcpy(current_matrix, curr_matrix, sizeof(curr_matrix)); + + return changed; +} diff --git a/keyboards/keychron/v10/mcuconf.h b/keyboards/keychron/v10/mcuconf.h new file mode 100644 index 000000000000..0ca8c64850f4 --- /dev/null +++ b/keyboards/keychron/v10/mcuconf.h @@ -0,0 +1,22 @@ +/* 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_next + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/keychron/v10/readme.md b/keyboards/keychron/v10/readme.md new file mode 100644 index 000000000000..248ec375210f --- /dev/null +++ b/keyboards/keychron/v10/readme.md @@ -0,0 +1,21 @@ +# Keychron V10 + +A customizable 75% ergonomic keyboard. + +* Keyboard Maintainer: [Keychron](https://github.com/keychron) +* Hardware Supported: Keychron V10 +* Hardware Availability: [Keychron](https://www.keychron.com) + +Make example for this keyboard (after setting up your build environment): + + make keychron/v10/ansi_encoder:default + make keychron/v10/iso_encoder:default + +Flashing example for this keyboard: + + make keychron/v10/ansi_encoder:default:flash + make keychron/v10/iso_encoder:default:flash + +**Reset Key**: Hold down the key located at *K01*, which programmed as *Esc* while plugging in the keyboard. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/keychron/v10/v10.c b/keyboards/keychron/v10/v10.c new file mode 100644 index 000000000000..091c2e9a4b22 --- /dev/null +++ b/keyboards/keychron/v10/v10.c @@ -0,0 +1,100 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +const matrix_row_t matrix_mask[] = { + 0b1111111111111111, + 0b1111111111111111, + 0b1111111111111111, + 0b1111111111111111, + 0b1111111111111111, + 0b1111111111011111, +}; + +#ifdef DIP_SWITCH_ENABLE + +bool dip_switch_update_kb(uint8_t index, bool active) { + if (!dip_switch_update_user(index, active)) { + return false; + } + if (index == 0) { + default_layer_set(1UL << (active ? 2 : 0)); + } + return true; +} + +#endif // DIP_SWITCH_ENABLE + +#if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX) + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (!process_record_user(keycode, record)) { + return false; + } + switch (keycode) { + case RGB_TOG: + if (record->event.pressed) { + switch (rgb_matrix_get_flags()) { + case LED_FLAG_ALL: { + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_set_color_all(0, 0, 0); + } break; + default: { + rgb_matrix_set_flags(LED_FLAG_ALL); + } break; + } + } + if (!rgb_matrix_is_enabled()) { + rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_enable(); + } + return false; + } + return true; +} + +bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { + if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) { + return false; + } + // RGB_MATRIX_INDICATOR_SET_COLOR(index, red, green, blue); + + if (host_keyboard_led_state().caps_lock) { + RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_LED_INDEX, 255, 255, 255); + } else { + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_LED_INDEX, 0, 0, 0); + } + } + return true; +} + +#endif // CAPS_LOCK_LED_INDEX + +#ifdef ENCODER_ENABLE +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + if (index == 0) { + if (clockwise) { + tap_code_delay(KC_VOLU, 10); + } else { + tap_code_delay(KC_VOLD, 10); + } + } + return true; +} +#endif From de6a6f963b5e459e8853d83723651bc01774501d Mon Sep 17 00:00:00 2001 From: lalalademaxiya1 <66767061+lalalademaxiya1@users.noreply.github.com> Date: Fri, 3 Feb 2023 05:34:39 +0800 Subject: [PATCH 127/139] [Keyboard] Add Keychron V6 (#19498) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/keychron/v6/ansi/ansi.c | 172 ++++++++++++++ keyboards/keychron/v6/ansi/config.h | 41 ++++ keyboards/keychron/v6/ansi/info.json | 132 +++++++++++ .../keychron/v6/ansi/keymaps/default/keymap.c | 61 +++++ .../v6/ansi/keymaps/keychron/keymap.c | 71 ++++++ .../v6/ansi/keymaps/keychron/rules.mk | 4 + .../keychron/v6/ansi/keymaps/via/keymap.c | 60 +++++ .../keychron/v6/ansi/keymaps/via/rules.mk | 1 + keyboards/keychron/v6/ansi/rules.mk | 25 ++ .../keychron/v6/ansi_encoder/ansi_encoder.c | 177 ++++++++++++++ keyboards/keychron/v6/ansi_encoder/config.h | 49 ++++ keyboards/keychron/v6/ansi_encoder/info.json | 133 +++++++++++ .../v6/ansi_encoder/keymaps/default/keymap.c | 67 ++++++ .../v6/ansi_encoder/keymaps/default/rules.mk | 1 + .../v6/ansi_encoder/keymaps/keychron/keymap.c | 80 +++++++ .../v6/ansi_encoder/keymaps/keychron/rules.mk | 5 + .../v6/ansi_encoder/keymaps/via/keymap.c | 67 ++++++ .../v6/ansi_encoder/keymaps/via/rules.mk | 2 + keyboards/keychron/v6/ansi_encoder/rules.mk | 26 +++ keyboards/keychron/v6/config.h | 104 +++++++++ keyboards/keychron/v6/halconf.h | 20 ++ keyboards/keychron/v6/iso/config.h | 41 ++++ keyboards/keychron/v6/iso/info.json | 133 +++++++++++ keyboards/keychron/v6/iso/iso.c | 178 +++++++++++++++ .../keychron/v6/iso/keymaps/default/keymap.c | 58 +++++ .../keychron/v6/iso/keymaps/keychron/keymap.c | 71 ++++++ .../keychron/v6/iso/keymaps/keychron/rules.mk | 4 + .../keychron/v6/iso/keymaps/via/keymap.c | 58 +++++ .../keychron/v6/iso/keymaps/via/rules.mk | 1 + keyboards/keychron/v6/iso/rules.mk | 25 ++ keyboards/keychron/v6/iso_encoder/config.h | 49 ++++ keyboards/keychron/v6/iso_encoder/info.json | 134 +++++++++++ .../keychron/v6/iso_encoder/iso_encoder.c | 178 +++++++++++++++ .../v6/iso_encoder/keymaps/default/keymap.c | 69 ++++++ .../v6/iso_encoder/keymaps/default/rules.mk | 1 + .../v6/iso_encoder/keymaps/keychron/keymap.c | 80 +++++++ .../v6/iso_encoder/keymaps/keychron/rules.mk | 5 + .../v6/iso_encoder/keymaps/via/keymap.c | 69 ++++++ .../v6/iso_encoder/keymaps/via/rules.mk | 2 + keyboards/keychron/v6/iso_encoder/rules.mk | 27 +++ keyboards/keychron/v6/matrix.c | 215 ++++++++++++++++++ keyboards/keychron/v6/mcuconf.h | 20 ++ keyboards/keychron/v6/readme.md | 19 ++ keyboards/keychron/v6/v6.c | 114 ++++++++++ 44 files changed, 2849 insertions(+) create mode 100644 keyboards/keychron/v6/ansi/ansi.c create mode 100644 keyboards/keychron/v6/ansi/config.h create mode 100644 keyboards/keychron/v6/ansi/info.json create mode 100644 keyboards/keychron/v6/ansi/keymaps/default/keymap.c create mode 100644 keyboards/keychron/v6/ansi/keymaps/keychron/keymap.c create mode 100644 keyboards/keychron/v6/ansi/keymaps/keychron/rules.mk create mode 100644 keyboards/keychron/v6/ansi/keymaps/via/keymap.c create mode 100644 keyboards/keychron/v6/ansi/keymaps/via/rules.mk create mode 100644 keyboards/keychron/v6/ansi/rules.mk create mode 100644 keyboards/keychron/v6/ansi_encoder/ansi_encoder.c create mode 100644 keyboards/keychron/v6/ansi_encoder/config.h create mode 100644 keyboards/keychron/v6/ansi_encoder/info.json create mode 100644 keyboards/keychron/v6/ansi_encoder/keymaps/default/keymap.c create mode 100644 keyboards/keychron/v6/ansi_encoder/keymaps/default/rules.mk create mode 100644 keyboards/keychron/v6/ansi_encoder/keymaps/keychron/keymap.c create mode 100644 keyboards/keychron/v6/ansi_encoder/keymaps/keychron/rules.mk create mode 100644 keyboards/keychron/v6/ansi_encoder/keymaps/via/keymap.c create mode 100644 keyboards/keychron/v6/ansi_encoder/keymaps/via/rules.mk create mode 100644 keyboards/keychron/v6/ansi_encoder/rules.mk create mode 100644 keyboards/keychron/v6/config.h create mode 100644 keyboards/keychron/v6/halconf.h create mode 100644 keyboards/keychron/v6/iso/config.h create mode 100644 keyboards/keychron/v6/iso/info.json create mode 100644 keyboards/keychron/v6/iso/iso.c create mode 100644 keyboards/keychron/v6/iso/keymaps/default/keymap.c create mode 100644 keyboards/keychron/v6/iso/keymaps/keychron/keymap.c create mode 100644 keyboards/keychron/v6/iso/keymaps/keychron/rules.mk create mode 100644 keyboards/keychron/v6/iso/keymaps/via/keymap.c create mode 100644 keyboards/keychron/v6/iso/keymaps/via/rules.mk create mode 100644 keyboards/keychron/v6/iso/rules.mk create mode 100644 keyboards/keychron/v6/iso_encoder/config.h create mode 100644 keyboards/keychron/v6/iso_encoder/info.json create mode 100644 keyboards/keychron/v6/iso_encoder/iso_encoder.c create mode 100644 keyboards/keychron/v6/iso_encoder/keymaps/default/keymap.c create mode 100644 keyboards/keychron/v6/iso_encoder/keymaps/default/rules.mk create mode 100644 keyboards/keychron/v6/iso_encoder/keymaps/keychron/keymap.c create mode 100644 keyboards/keychron/v6/iso_encoder/keymaps/keychron/rules.mk create mode 100644 keyboards/keychron/v6/iso_encoder/keymaps/via/keymap.c create mode 100644 keyboards/keychron/v6/iso_encoder/keymaps/via/rules.mk create mode 100644 keyboards/keychron/v6/iso_encoder/rules.mk create mode 100644 keyboards/keychron/v6/matrix.c create mode 100644 keyboards/keychron/v6/mcuconf.h create mode 100644 keyboards/keychron/v6/readme.md create mode 100644 keyboards/keychron/v6/v6.c diff --git a/keyboards/keychron/v6/ansi/ansi.c b/keyboards/keychron/v6/ansi/ansi.c new file mode 100644 index 000000000000..40115298831e --- /dev/null +++ b/keyboards/keychron/v6/ansi/ansi.c @@ -0,0 +1,172 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +#ifdef RGB_MATRIX_ENABLE + +const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, I_1, G_1, H_1}, + {0, I_2, G_2, H_2}, + {0, I_3, G_3, H_3}, + {0, I_4, G_4, H_4}, + {0, I_5, G_5, H_5}, + {0, I_6, G_6, H_6}, + {0, I_7, G_7, H_7}, + {0, I_8, G_8, H_8}, + {0, I_9, G_9, H_9}, + {0, I_10, G_10, H_10}, + {0, I_11, G_11, H_11}, + {0, I_12, G_12, H_12}, + {0, I_13, G_13, H_13}, + {0, I_15, G_15, H_15}, + {0, I_16, G_16, H_16}, + {0, L_5, J_5, K_5}, + {0, L_6, J_6, K_6}, + {0, L_7, J_7, K_7}, + {0, L_8, J_8, K_8}, + {0, L_4, J_4, K_4}, + + {0, C_1, A_1, B_1}, + {0, C_2, A_2, B_2}, + {0, C_3, A_3, B_3}, + {0, C_4, A_4, B_4}, + {0, C_5, A_5, B_5}, + {0, C_6, A_6, B_6}, + {0, C_7, A_7, B_7}, + {0, C_8, A_8, B_8}, + {0, C_9, A_9, B_9}, + {0, C_10, A_10, B_10}, + {0, C_11, A_11, B_11}, + {0, C_12, A_12, B_12}, + {0, C_13, A_13, B_13}, + {0, C_14, A_14, B_14}, + {0, C_15, A_15, B_15}, + {0, C_16, A_16, B_16}, + {0, L_9, J_9, K_9}, + {0, L_10, J_10, K_10}, + {0, L_11, J_11, K_11}, + {0, L_12, J_12, K_12}, + {0, L_13, J_13, K_13}, + + {0, F_1, D_1, E_1}, + {0, F_2, D_2, E_2}, + {0, F_3, D_3, E_3}, + {0, F_4, D_4, E_4}, + {0, F_5, D_5, E_5}, + {0, F_6, D_6, E_6}, + {0, F_7, D_7, E_7}, + {0, F_8, D_8, E_8}, + {0, F_9, D_9, E_9}, + {0, F_10, D_10, E_10}, + {0, F_11, D_11, E_11}, + {0, F_12, D_12, E_12}, + {0, F_13, D_13, E_13}, + {0, F_14, D_14, E_14}, + {0, F_15, D_15, E_15}, + {0, F_16, D_16, E_16}, + {0, L_14, J_14, K_14}, + {0, L_15, J_15, K_15}, + {0, L_16, J_16, K_16}, + {1, L_1, J_1, K_1}, + + {1, C_16, A_16, B_16}, + {1, C_15, A_15, B_15}, + {1, C_14, A_14, B_14}, + {1, C_13, A_13, B_13}, + {1, C_12, A_12, B_12}, + {1, C_11, A_11, B_11}, + {1, C_10, A_10, B_10}, + {1, C_9, A_9, B_9}, + {1, C_8, A_8, B_8}, + {1, C_7, A_7, B_7}, + {1, C_6, A_6, B_6}, + {1, C_5, A_5, B_5}, + {1, C_3, A_3, B_3}, + {1, L_3, J_3, K_3}, + {1, L_4, J_4, K_4}, + {1, L_5, J_5, K_5}, + {1, L_2, J_2, K_2}, + + {1, I_16, G_16, H_16}, + {1, I_14, G_14, H_14}, + {1, I_13, G_13, H_13}, + {1, I_12, G_12, H_12}, + {1, I_11, G_11, H_11}, + {1, I_10, G_10, H_10}, + {1, I_9, G_9, H_9}, + {1, I_8, G_8, H_8}, + {1, I_7, G_7, H_7}, + {1, I_6, G_6, H_6}, + {1, I_5, G_5, H_5}, + {1, I_3, G_3, H_3}, + {1, I_1, G_1, H_1}, + {1, L_6, J_6, K_6}, + {1, L_7, J_7, K_7}, + {1, L_8, J_8, K_8}, + + {1, F_16, D_16, E_16}, + {1, F_15, D_15, E_15}, + {1, F_14, D_14, E_14}, + {1, F_10, D_10, E_10}, + {1, F_6, D_6, E_6}, + {1, F_5, D_5, E_5}, + {1, F_4, D_4, E_4}, + {1, F_3, D_3, E_3}, + {1, F_2, D_2, E_2}, + {1, F_1, D_1, E_1}, + {1, L_10, J_10, K_10}, + {1, L_11, J_11, K_11}, + {1, L_12, J_12, K_12}, + {1, L_9, J_9, K_9}, +}; + +#define __ NO_LED + +led_config_t g_led_config = { + { + { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14, 15, 39, 40, 16 }, + { 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 17 }, + { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 18 }, + { 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, __, 73, 60, 77, 76, 74, 75, 19 }, + { 78, __, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, __, 89, 93, 90, 107, 91, 92, __ }, + { 94, 95, 96, __, __, __, 97, __, __, __, 98, 99, 100, 101, 102, 103, 104, 105, 106, __ }, + }, + { + {0,0}, {21,0}, {31,0}, {42,0}, {52,0}, {68,0}, {78,0}, {89,0}, {99,0}, {115,0}, {125,0}, {136,0}, {146,0}, {159,0}, {169,0}, {180,0}, {193,0}, {203,0}, {214,0}, {224,0}, + {0,15}, {10,15}, {21,15}, {31,15}, {42,15}, {52,15}, {63,15}, {73,15}, {83,15}, {94,15}, {104,15}, {115,15}, {125,15}, {141,15}, {159,15}, {169,15}, {180,15}, {193,15}, {203,15}, {214,15}, {224,15}, + {3,27}, {16,27}, {26,27}, {36,27}, {47,27}, {57,27}, {68,27}, {78,27}, {89,27}, {99,27}, {109,27}, {120,27}, {130,27}, {143,27}, {159,27}, {169,27}, {180,27}, {193,27}, {203,27}, {214,27}, + {4,40}, {18,40}, {29,40}, {39,40}, {50,40}, {60,40}, {70,40}, {81,40}, {91,40}, {102,40}, {112,40}, {123,40}, {139,40}, {193,40}, {203,40}, {214,40}, {224,34}, + {7,52}, {23,52}, {34,52}, {44,52}, {55,52}, {65,52}, {76,52}, {86,52}, {96,52}, {107,52}, {117,52}, {137,52}, {169,52}, {193,52}, {203,52}, {214,52}, + {1,64}, {14,64}, {27,64}, {66,64}, {105,64}, {118,64}, {131,64}, {145,64}, {159,64}, {169,64}, {180,64}, {198,64}, {214,64}, {224,58}, + }, + { + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 8, 4, 4, 4, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 4, 4, 4, + 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, + 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, + } +}; + +#endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v6/ansi/config.h b/keyboards/keychron/v6/ansi/config.h new file mode 100644 index 000000000000..fa9d7e48b314 --- /dev/null +++ b/keyboards/keychron/v6/ansi/config.h @@ -0,0 +1,41 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Key matrix pins */ +#define MATRIX_ROW_PINS { B5, B4, B3, A15, A14, A13 } +#define MATRIX_COL_PINS { A10, A9, A8, B1, B0, A7, A6, A5, A4, A3, A2, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, C14 } + +/* Pin connected to DS of 74HC595 */ +#define DATA_PIN_74HC595 C15 +/* Pin connected to SH_CP of 74HC595 */ +#define CLOCK_PIN_74HC595 A1 +/* Pin connected to ST_CP of 74HC595 */ +#define LATCH_PIN_74HC595 A0 +/* Pin used index start of 74HC595 */ +#define PIN_START_74HC595 11 + +/* RGB Matrix Configuration */ +#define DRIVER_1_LED_TOTAL 60 +#define DRIVER_2_LED_TOTAL 48 +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) + +/* Enable caps-lock LED*/ +#define CAPS_LOCK_LED_INDEX 61 + +/* Enable NUM_LOCK_LED_INDEX */ +// #define NUM_LOCK_LED_INDEX 37 diff --git a/keyboards/keychron/v6/ansi/info.json b/keyboards/keychron/v6/ansi/info.json new file mode 100644 index 000000000000..b694849f8844 --- /dev/null +++ b/keyboards/keychron/v6/ansi/info.json @@ -0,0 +1,132 @@ +{ + "keyboard_name": "Keychron V6", + "manufacturer": "Keychron", + "url": "https://github.com/Keychron", + "maintainer": "lalalademaxiya1", + "usb": { + "vid": "0x3434", + "pid": "0x0360", + "device_version": "1.0.0" + }, + "processor": "STM32L432", + "bootloader": "stm32-dfu", + "layouts": { + "LAYOUT_ansi_108": { + "layout": [ + {"matrix":[0, 0], "x":0, "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":6.5, "y":0}, + {"matrix":[0, 6], "x":7.5, "y":0}, + {"matrix":[0, 7], "x":8.5, "y":0}, + {"matrix":[0, 8], "x":9.5, "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":14, "y":0}, + {"matrix":[0,14], "x":15.25, "y":0}, + {"matrix":[0,15], "x":16.25, "y":0}, + {"matrix":[0,16], "x":17.25, "y":0}, + {"matrix":[0,19], "x":18.5, "y":0}, + {"matrix":[1,19], "x":19.5, "y":0}, + {"matrix":[2,19], "x":20.5, "y":0}, + {"matrix":[3,19], "x":21.5, "y":0}, + + {"matrix":[1, 0], "x":0, "y":1.25}, + {"matrix":[1, 1], "x":1, "y":1.25}, + {"matrix":[1, 2], "x":2, "y":1.25}, + {"matrix":[1, 3], "x":3, "y":1.25}, + {"matrix":[1, 4], "x":4, "y":1.25}, + {"matrix":[1, 5], "x":5, "y":1.25}, + {"matrix":[1, 6], "x":6, "y":1.25}, + {"matrix":[1, 7], "x":7, "y":1.25}, + {"matrix":[1, 8], "x":8, "y":1.25}, + {"matrix":[1, 9], "x":9, "y":1.25}, + {"matrix":[1,10], "x":10, "y":1.25}, + {"matrix":[1,11], "x":11, "y":1.25}, + {"matrix":[1,12], "x":12, "y":1.25}, + {"matrix":[1,13], "x":13, "y":1.25, "w":2}, + {"matrix":[1,14], "x":15.25, "y":1.25}, + {"matrix":[1,15], "x":16.25, "y":1.25}, + {"matrix":[1,16], "x":17.25, "y":1.25}, + {"matrix":[1,17], "x":18.5, "y":1.25}, + {"matrix":[1,18], "x":19.5, "y":1.25}, + {"matrix":[0,17], "x":20.5, "y":1.25}, + {"matrix":[0,18], "x":21.5, "y":1.25}, + + {"matrix":[2, 0], "x":0, "y":2.25, "w":1.5}, + {"matrix":[2, 1], "x":1.5, "y":2.25}, + {"matrix":[2, 2], "x":2.5, "y":2.25}, + {"matrix":[2, 3], "x":3.5, "y":2.25}, + {"matrix":[2, 4], "x":4.5, "y":2.25}, + {"matrix":[2, 5], "x":5.5, "y":2.25}, + {"matrix":[2, 6], "x":6.5, "y":2.25}, + {"matrix":[2, 7], "x":7.5, "y":2.25}, + {"matrix":[2, 8], "x":8.5, "y":2.25}, + {"matrix":[2, 9], "x":9.5, "y":2.25}, + {"matrix":[2,10], "x":10.5, "y":2.25}, + {"matrix":[2,11], "x":11.5, "y":2.25}, + {"matrix":[2,12], "x":12.5, "y":2.25}, + {"matrix":[2,13], "x":13.5, "y":2.25, "w":1.5}, + {"matrix":[2,14], "x":15.25, "y":2.25}, + {"matrix":[2,15], "x":16.25, "y":2.25}, + {"matrix":[2,16], "x":17.25, "y":2.25}, + {"matrix":[2,17], "x":18.5, "y":2.25}, + {"matrix":[2,18], "x":19.5, "y":2.25}, + {"matrix":[3,14], "x":20.5, "y":2.25}, + + {"matrix":[3, 0], "x":0, "y":3.25, "w":1.75}, + {"matrix":[3, 1], "x":1.75, "y":3.25}, + {"matrix":[3, 2], "x":2.75, "y":3.25}, + {"matrix":[3, 3], "x":3.75, "y":3.25}, + {"matrix":[3, 4], "x":4.75, "y":3.25}, + {"matrix":[3, 5], "x":5.75, "y":3.25}, + {"matrix":[3, 6], "x":6.75, "y":3.25}, + {"matrix":[3, 7], "x":7.75, "y":3.25}, + {"matrix":[3, 8], "x":8.75, "y":3.25}, + {"matrix":[3, 9], "x":9.75, "y":3.25}, + {"matrix":[3,10], "x":10.75, "y":3.25}, + {"matrix":[3,11], "x":11.75, "y":3.25}, + {"matrix":[3,13], "x":12.75, "y":3.25, "w":2.25}, + {"matrix":[3,17], "x":18.5, "y":3.25}, + {"matrix":[3,18], "x":19.5, "y":3.25}, + {"matrix":[3,16], "x":20.5, "y":3.25}, + {"matrix":[3,15], "x":21.5, "y":2.25, "h":2}, + + {"matrix":[4, 0], "x":0, "y":4.25, "w":2.25}, + {"matrix":[4, 2], "x":2.25, "y":4.25}, + {"matrix":[4, 3], "x":3.25, "y":4.25}, + {"matrix":[4, 4], "x":4.25, "y":4.25}, + {"matrix":[4, 5], "x":5.25, "y":4.25}, + {"matrix":[4, 6], "x":6.25, "y":4.25}, + {"matrix":[4, 7], "x":7.25, "y":4.25}, + {"matrix":[4, 8], "x":8.25, "y":4.25}, + {"matrix":[4, 9], "x":9.25, "y":4.25}, + {"matrix":[4,10], "x":10.25, "y":4.25}, + {"matrix":[4,11], "x":11.25, "y":4.25}, + {"matrix":[4,13], "x":12.25, "y":4.25, "w":2.75}, + {"matrix":[4,15], "x":16.25, "y":4.25}, + {"matrix":[4,17], "x":18.5, "y":4.25}, + {"matrix":[4,18], "x":19.5, "y":4.25}, + {"matrix":[4,14], "x":20.5, "y":4.25}, + + {"matrix":[5, 0], "x":0, "y":5.25, "w":1.25}, + {"matrix":[5, 1], "x":1.25, "y":5.25, "w":1.25}, + {"matrix":[5, 2], "x":2.5, "y":5.25, "w":1.25}, + {"matrix":[5, 6], "x":3.75, "y":5.25, "w":6.25}, + {"matrix":[5,10], "x":10, "y":5.25, "w":1.25}, + {"matrix":[5,11], "x":11.25, "y":5.25, "w":1.25}, + {"matrix":[5,12], "x":12.5, "y":5.25, "w":1.25}, + {"matrix":[5,13], "x":13.75, "y":5.25, "w":1.25}, + {"matrix":[5,14], "x":15.25, "y":5.25}, + {"matrix":[5,15], "x":16.25, "y":5.25}, + {"matrix":[5,16], "x":17.25, "y":5.25}, + {"matrix":[5,17], "x":18.5, "y":5.25, "w":2}, + {"matrix":[5,18], "x":20.5, "y":5.25}, + {"matrix":[4,16], "x":21.5, "y":4.25, "h":2} + ] + } + } +} diff --git a/keyboards/keychron/v6/ansi/keymaps/default/keymap.c b/keyboards/keychron/v6/ansi/keymaps/default/keymap.c new file mode 100644 index 000000000000..8eac2214bbff --- /dev/null +++ b/keyboards/keychron/v6/ansi/keymaps/default/keymap.c @@ -0,0 +1,61 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "keycode.h" +#include QMK_KEYBOARD_H + +// clang-format off + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_ansi_108( + KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, RGB_MOD, KC_F13, KC_F14, KC_F15, KC_F16, + 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_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, + KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), + [MAC_FN] = LAYOUT_ansi_108( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RGB_TOG, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + [WIN_BASE] = LAYOUT_ansi_108( + 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_NO, RGB_MOD, _______, _______, _______, _______, + 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_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), + [WIN_FN] = LAYOUT_ansi_108( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +}; diff --git a/keyboards/keychron/v6/ansi/keymaps/keychron/keymap.c b/keyboards/keychron/v6/ansi/keymaps/keychron/keymap.c new file mode 100644 index 000000000000..21ce25564306 --- /dev/null +++ b/keyboards/keychron/v6/ansi/keymaps/keychron/keymap.c @@ -0,0 +1,71 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H +#include "keychron_common.h" + +// clang-format off + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_ansi_108( + KC_ESC, 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_SNAP, KC_SIRI, RGB_MOD, KC_F13, KC_F14, KC_F15, KC_F16, + 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_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, + KC_LCTL, KC_LOPTN, KC_LCMMD, KC_SPC, KC_RCMMD, KC_ROPTN, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), + [MAC_FN] = LAYOUT_ansi_108( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RGB_TOG, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + [WIN_BASE] = LAYOUT_ansi_108( + 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_CRTA, RGB_MOD, _______, _______, _______, _______, + 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_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), + [WIN_FN] = LAYOUT_ansi_108( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +}; + +// clang-format on + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (!process_record_keychron(keycode, record)) { + return false; + } + return true; +} + +void housekeeping_task_user(void) { + housekeeping_task_keychron(); +} diff --git a/keyboards/keychron/v6/ansi/keymaps/keychron/rules.mk b/keyboards/keychron/v6/ansi/keymaps/keychron/rules.mk new file mode 100644 index 000000000000..495e8907b48c --- /dev/null +++ b/keyboards/keychron/v6/ansi/keymaps/keychron/rules.mk @@ -0,0 +1,4 @@ +VIA_ENABLE = yes + +VPATH += keyboards/keychron/common +SRC += keychron_common.c diff --git a/keyboards/keychron/v6/ansi/keymaps/via/keymap.c b/keyboards/keychron/v6/ansi/keymaps/via/keymap.c new file mode 100644 index 000000000000..bedb5b9ea1ce --- /dev/null +++ b/keyboards/keychron/v6/ansi/keymaps/via/keymap.c @@ -0,0 +1,60 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// clang-format off + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_ansi_108( + KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, RGB_MOD, KC_F13, KC_F14, KC_F15, KC_F16, + 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_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, + KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), + [MAC_FN] = LAYOUT_ansi_108( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RGB_TOG, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + [WIN_BASE] = LAYOUT_ansi_108( + 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_NO, RGB_MOD, _______, _______, _______, _______, + 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_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), + [WIN_FN] = LAYOUT_ansi_108( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +}; diff --git a/keyboards/keychron/v6/ansi/keymaps/via/rules.mk b/keyboards/keychron/v6/ansi/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/keychron/v6/ansi/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/keychron/v6/ansi/rules.mk b/keyboards/keychron/v6/ansi/rules.mk new file mode 100644 index 000000000000..ee83debd68cc --- /dev/null +++ b/keyboards/keychron/v6/ansi/rules.mk @@ -0,0 +1,25 @@ +# 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 USB N-key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +DIP_SWITCH_ENABLE = yes +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = CKLED2001 +EEPROM_DRIVER = wear_leveling +WEAR_LEVELING_DRIVER = embedded_flash + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE + +# custom matrix setup +CUSTOM_MATRIX = lite + +SRC += matrix.c diff --git a/keyboards/keychron/v6/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v6/ansi_encoder/ansi_encoder.c new file mode 100644 index 000000000000..91831bf3c161 --- /dev/null +++ b/keyboards/keychron/v6/ansi_encoder/ansi_encoder.c @@ -0,0 +1,177 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +// clang-format off + +#ifdef RGB_MATRIX_ENABLE + +const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, I_1, G_1, H_1}, + {0, I_2, G_2, H_2}, + {0, I_3, G_3, H_3}, + {0, I_4, G_4, H_4}, + {0, I_5, G_5, H_5}, + {0, I_6, G_6, H_6}, + {0, I_7, G_7, H_7}, + {0, I_8, G_8, H_8}, + {0, I_9, G_9, H_9}, + {0, I_10, G_10, H_10}, + {0, I_11, G_11, H_11}, + {0, I_12, G_12, H_12}, + {0, I_13, G_13, H_13}, + {0, I_15, G_15, H_15}, + {0, I_16, G_16, H_16}, + {0, L_5, J_5, K_5}, + {0, L_6, J_6, K_6}, + {0, L_7, J_7, K_7}, + {0, L_8, J_8, K_8}, + {0, L_4, J_4, K_4}, + + {0, C_1, A_1, B_1}, + {0, C_2, A_2, B_2}, + {0, C_3, A_3, B_3}, + {0, C_4, A_4, B_4}, + {0, C_5, A_5, B_5}, + {0, C_6, A_6, B_6}, + {0, C_7, A_7, B_7}, + {0, C_8, A_8, B_8}, + {0, C_9, A_9, B_9}, + {0, C_10, A_10, B_10}, + {0, C_11, A_11, B_11}, + {0, C_12, A_12, B_12}, + {0, C_13, A_13, B_13}, + {0, C_14, A_14, B_14}, + {0, C_15, A_15, B_15}, + {0, C_16, A_16, B_16}, + {0, L_9, J_9, K_9}, + {0, L_10, J_10, K_10}, + {0, L_11, J_11, K_11}, + {0, L_12, J_12, K_12}, + {0, L_13, J_13, K_13}, + + {0, F_1, D_1, E_1}, + {0, F_2, D_2, E_2}, + {0, F_3, D_3, E_3}, + {0, F_4, D_4, E_4}, + {0, F_5, D_5, E_5}, + {0, F_6, D_6, E_6}, + {0, F_7, D_7, E_7}, + {0, F_8, D_8, E_8}, + {0, F_9, D_9, E_9}, + {0, F_10, D_10, E_10}, + {0, F_11, D_11, E_11}, + {0, F_12, D_12, E_12}, + {0, F_13, D_13, E_13}, + {0, F_14, D_14, E_14}, + {0, F_15, D_15, E_15}, + {0, F_16, D_16, E_16}, + {0, L_14, J_14, K_14}, + {0, L_15, J_15, K_15}, + {0, L_16, J_16, K_16}, + {1, L_1, J_1, K_1}, + + {1, C_16, A_16, B_16}, + {1, C_15, A_15, B_15}, + {1, C_14, A_14, B_14}, + {1, C_13, A_13, B_13}, + {1, C_12, A_12, B_12}, + {1, C_11, A_11, B_11}, + {1, C_10, A_10, B_10}, + {1, C_9, A_9, B_9}, + {1, C_8, A_8, B_8}, + {1, C_7, A_7, B_7}, + {1, C_6, A_6, B_6}, + {1, C_5, A_5, B_5}, + {1, C_3, A_3, B_3}, + {1, L_3, J_3, K_3}, + {1, L_4, J_4, K_4}, + {1, L_5, J_5, K_5}, + {1, L_2, J_2, K_2}, + + {1, I_16, G_16, H_16}, + {1, I_14, G_14, H_14}, + {1, I_13, G_13, H_13}, + {1, I_12, G_12, H_12}, + {1, I_11, G_11, H_11}, + {1, I_10, G_10, H_10}, + {1, I_9, G_9, H_9}, + {1, I_8, G_8, H_8}, + {1, I_7, G_7, H_7}, + {1, I_6, G_6, H_6}, + {1, I_5, G_5, H_5}, + {1, I_3, G_3, H_3}, + {1, I_1, G_1, H_1}, + {1, L_6, J_6, K_6}, + {1, L_7, J_7, K_7}, + {1, L_8, J_8, K_8}, + + {1, F_16, D_16, E_16}, + {1, F_15, D_15, E_15}, + {1, F_14, D_14, E_14}, + {1, F_10, D_10, E_10}, + {1, F_6, D_6, E_6}, + {1, F_5, D_5, E_5}, + {1, F_4, D_4, E_4}, + {1, F_3, D_3, E_3}, + {1, F_2, D_2, E_2}, + {1, F_1, D_1, E_1}, + {1, L_10, J_10, K_10}, + {1, L_11, J_11, K_11}, + {1, L_12, J_12, K_12}, + {1, L_9, J_9, K_9}, +}; + +#define __ NO_LED + +led_config_t g_led_config = { + { + // Key Matrix to LED Index + { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14, 15, 39, 40, 16 }, + { 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 17 }, + { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 18 }, + { 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, __, 73, 60, 77, 76, 74, 75, 19 }, + { 78, __, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, __, 89, 93, 90, 107, 91, 92, __ }, + { 94, 95, 96, __, __, __, 97, __, __, __, 98, 99, 100, 101, 102, 103, 104, 105, 106, __ }, + }, + { + // LED Index to Physical Position + {0,0}, {13,0}, {24,0}, {34,0}, {45,0}, {57,0}, {68,0}, {78,0}, {89,0}, {102,0}, {112,0}, {123,0}, {133,0}, {159,0}, {169,0}, {180,0}, {193,0}, {203,0}, {214,0}, {224,0}, + {0,15}, {10,15}, {21,15}, {31,15}, {42,15}, {52,15}, {63,15}, {73,15}, {83,15}, {94,15}, {104,15}, {115,15}, {125,15}, {141,15}, {159,15}, {169,15}, {180,15}, {193,15}, {203,15}, {214,15}, {224,15}, + {3,27}, {16,27}, {26,27}, {36,27}, {47,27}, {57,27}, {68,27}, {78,27}, {89,27}, {99,27}, {109,27}, {120,27}, {130,27}, {143,27}, {159,27}, {169,27}, {180,27}, {193,27}, {203,27}, {214,27}, + {4,40}, {18,40}, {29,40}, {39,40}, {50,40}, {60,40}, {70,40}, {81,40}, {91,40}, {102,40}, {112,40}, {123,40}, {139,40}, {193,40}, {203,40}, {214,40}, {224,34}, + {7,52}, {23,52}, {34,52}, {44,52}, {55,52}, {65,52}, {76,52}, {86,52}, {96,52}, {107,52}, {117,52}, {137,52}, {169,52}, {193,52}, {203,52}, {214,52}, + {1,64}, {14,64}, {27,64}, {66,64}, {105,64}, {118,64}, {131,64}, {145,64}, {159,64}, {169,64}, {180,64}, {198,64}, {214,64}, {224,58}, + }, + { + // RGB LED Index to Flag + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 8, 4, 4, 4, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 4, 4, 4, + 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, + 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, + } +}; + +#endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v6/ansi_encoder/config.h b/keyboards/keychron/v6/ansi_encoder/config.h new file mode 100644 index 000000000000..c87df6a9bfd5 --- /dev/null +++ b/keyboards/keychron/v6/ansi_encoder/config.h @@ -0,0 +1,49 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Key matrix pins */ +#define MATRIX_ROW_PINS { B5, B4, B3, A15, A14, A13 } +#define MATRIX_COL_PINS { A10, A9, A8, B1, B0, A7, A6, A5, A4, A3, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN } + +/* Pin connected to DS of 74HC595 */ +#define DATA_PIN_74HC595 C15 +/* Pin connected to SH_CP of 74HC595 */ +#define CLOCK_PIN_74HC595 A1 +/* Pin connected to ST_CP of 74HC595 */ +#define LATCH_PIN_74HC595 A0 +/* Pin used number of 74HC595 */ +#define PIN_USED_74HC595 10 +/* Pin used index start of 74HC595 */ +#define PIN_START_74HC595 10 + +/* RGB Matrix Configuration */ +#define DRIVER_1_LED_TOTAL 60 +#define DRIVER_2_LED_TOTAL 48 +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) + +/* Encoder Configuration */ +#define ENCODERS_PAD_A { C14 } +#define ENCODERS_PAD_B { A2 } +#define ENCODER_RESOLUTION 4 +#define ENCODER_DEFAULT_POS 0x3 + +/* Enable caps-lock LED*/ +#define CAPS_LOCK_LED_INDEX 61 + +/* Enable NUM_LOCK_LED_INDEX */ +// #define NUM_LOCK_LED_INDEX 37 diff --git a/keyboards/keychron/v6/ansi_encoder/info.json b/keyboards/keychron/v6/ansi_encoder/info.json new file mode 100644 index 000000000000..1ac88337f32b --- /dev/null +++ b/keyboards/keychron/v6/ansi_encoder/info.json @@ -0,0 +1,133 @@ +{ + "keyboard_name": "Keychron V6", + "manufacturer": "Keychron", + "url": "https://github.com/Keychron", + "maintainer": "lalalademaxiya1", + "usb": { + "vid": "0x3434", + "pid": "0x0361", + "device_version": "1.0.0" + }, + "processor": "STM32L432", + "bootloader": "stm32-dfu", + "layouts": { + "LAYOUT_ansi_109": { + "layout": [ + {"matrix":[0, 0], "x":0, "y":0}, + {"matrix":[0, 1], "x":1.25, "y":0}, + {"matrix":[0, 2], "x":2.25, "y":0}, + {"matrix":[0, 3], "x":3.25, "y":0}, + {"matrix":[0, 4], "x":4.25, "y":0}, + {"matrix":[0, 5], "x":5.5, "y":0}, + {"matrix":[0, 6], "x":6.5, "y":0}, + {"matrix":[0, 7], "x":7.5, "y":0}, + {"matrix":[0, 8], "x":8.5, "y":0}, + {"matrix":[0, 9], "x":9.75, "y":0}, + {"matrix":[0,10], "x":10.75, "y":0}, + {"matrix":[0,11], "x":11.75, "y":0}, + {"matrix":[0,12], "x":12.75, "y":0}, + {"matrix":[4,19], "x":14, "y":0}, + {"matrix":[0,14], "x":15.25, "y":0}, + {"matrix":[0,15], "x":16.25, "y":0}, + {"matrix":[0,16], "x":17.25, "y":0}, + {"matrix":[0,19], "x":18.5, "y":0}, + {"matrix":[1,19], "x":19.5, "y":0}, + {"matrix":[2,19], "x":20.5, "y":0}, + {"matrix":[3,19], "x":21.5, "y":0}, + + {"matrix":[1, 0], "x":0, "y":1.25}, + {"matrix":[1, 1], "x":1, "y":1.25}, + {"matrix":[1, 2], "x":2, "y":1.25}, + {"matrix":[1, 3], "x":3, "y":1.25}, + {"matrix":[1, 4], "x":4, "y":1.25}, + {"matrix":[1, 5], "x":5, "y":1.25}, + {"matrix":[1, 6], "x":6, "y":1.25}, + {"matrix":[1, 7], "x":7, "y":1.25}, + {"matrix":[1, 8], "x":8, "y":1.25}, + {"matrix":[1, 9], "x":9, "y":1.25}, + {"matrix":[1,10], "x":10, "y":1.25}, + {"matrix":[1,11], "x":11, "y":1.25}, + {"matrix":[1,12], "x":12, "y":1.25}, + {"matrix":[1,13], "x":13, "y":1.25, "w":2}, + {"matrix":[1,14], "x":15.25, "y":1.25}, + {"matrix":[1,15], "x":16.25, "y":1.25}, + {"matrix":[1,16], "x":17.25, "y":1.25}, + {"matrix":[1,17], "x":18.5, "y":1.25}, + {"matrix":[1,18], "x":19.5, "y":1.25}, + {"matrix":[0,17], "x":20.5, "y":1.25}, + {"matrix":[0,18], "x":21.5, "y":1.25}, + + {"matrix":[2, 0], "x":0, "y":2.25, "w":1.5}, + {"matrix":[2, 1], "x":1.5, "y":2.25}, + {"matrix":[2, 2], "x":2.5, "y":2.25}, + {"matrix":[2, 3], "x":3.5, "y":2.25}, + {"matrix":[2, 4], "x":4.5, "y":2.25}, + {"matrix":[2, 5], "x":5.5, "y":2.25}, + {"matrix":[2, 6], "x":6.5, "y":2.25}, + {"matrix":[2, 7], "x":7.5, "y":2.25}, + {"matrix":[2, 8], "x":8.5, "y":2.25}, + {"matrix":[2, 9], "x":9.5, "y":2.25}, + {"matrix":[2,10], "x":10.5, "y":2.25}, + {"matrix":[2,11], "x":11.5, "y":2.25}, + {"matrix":[2,12], "x":12.5, "y":2.25}, + {"matrix":[2,13], "x":13.5, "y":2.25, "w":1.5}, + {"matrix":[2,14], "x":15.25, "y":2.25}, + {"matrix":[2,15], "x":16.25, "y":2.25}, + {"matrix":[2,16], "x":17.25, "y":2.25}, + {"matrix":[2,17], "x":18.5, "y":2.25}, + {"matrix":[2,18], "x":19.5, "y":2.25}, + {"matrix":[3,14], "x":20.5, "y":2.25}, + + {"matrix":[3, 0], "x":0, "y":3.25, "w":1.75}, + {"matrix":[3, 1], "x":1.75, "y":3.25}, + {"matrix":[3, 2], "x":2.75, "y":3.25}, + {"matrix":[3, 3], "x":3.75, "y":3.25}, + {"matrix":[3, 4], "x":4.75, "y":3.25}, + {"matrix":[3, 5], "x":5.75, "y":3.25}, + {"matrix":[3, 6], "x":6.75, "y":3.25}, + {"matrix":[3, 7], "x":7.75, "y":3.25}, + {"matrix":[3, 8], "x":8.75, "y":3.25}, + {"matrix":[3, 9], "x":9.75, "y":3.25}, + {"matrix":[3,10], "x":10.75, "y":3.25}, + {"matrix":[3,11], "x":11.75, "y":3.25}, + {"matrix":[3,13], "x":12.75, "y":3.25, "w":2.25}, + {"matrix":[3,17], "x":18.5, "y":3.25}, + {"matrix":[3,18], "x":19.5, "y":3.25}, + {"matrix":[3,16], "x":20.5, "y":3.25}, + {"matrix":[3,15], "x":21.5, "y":2.25, "h":2}, + + {"matrix":[4, 0], "x":0, "y":4.25, "w":2.25}, + {"matrix":[4, 2], "x":2.25, "y":4.25}, + {"matrix":[4, 3], "x":3.25, "y":4.25}, + {"matrix":[4, 4], "x":4.25, "y":4.25}, + {"matrix":[4, 5], "x":5.25, "y":4.25}, + {"matrix":[4, 6], "x":6.25, "y":4.25}, + {"matrix":[4, 7], "x":7.25, "y":4.25}, + {"matrix":[4, 8], "x":8.25, "y":4.25}, + {"matrix":[4, 9], "x":9.25, "y":4.25}, + {"matrix":[4,10], "x":10.25, "y":4.25}, + {"matrix":[4,11], "x":11.25, "y":4.25}, + {"matrix":[4,13], "x":12.25, "y":4.25, "w":2.75}, + {"matrix":[4,15], "x":16.25, "y":4.25}, + {"matrix":[4,17], "x":18.5, "y":4.25}, + {"matrix":[4,18], "x":19.5, "y":4.25}, + {"matrix":[4,14], "x":20.5, "y":4.25}, + + {"matrix":[5, 0], "x":0, "y":5.25, "w":1.25}, + {"matrix":[5, 1], "x":1.25, "y":5.25, "w":1.25}, + {"matrix":[5, 2], "x":2.5, "y":5.25, "w":1.25}, + {"matrix":[5, 6], "x":3.75, "y":5.25, "w":6.25}, + {"matrix":[5,10], "x":10, "y":5.25, "w":1.25}, + {"matrix":[5,11], "x":11.25, "y":5.25, "w":1.25}, + {"matrix":[5,12], "x":12.5, "y":5.25, "w":1.25}, + {"matrix":[5,13], "x":13.75, "y":5.25, "w":1.25}, + {"matrix":[5,14], "x":15.25, "y":5.25}, + {"matrix":[5,15], "x":16.25, "y":5.25}, + {"matrix":[5,16], "x":17.25, "y":5.25}, + {"matrix":[5,17], "x":18.5, "y":5.25, "w":2}, + {"matrix":[5,18], "x":20.5, "y":5.25}, + {"matrix":[4,16], "x":21.5, "y":4.25, "h":2} + ] + } + } +} diff --git a/keyboards/keychron/v6/ansi_encoder/keymaps/default/keymap.c b/keyboards/keychron/v6/ansi_encoder/keymaps/default/keymap.c new file mode 100644 index 000000000000..39ab68e67b4b --- /dev/null +++ b/keyboards/keychron/v6/ansi_encoder/keymaps/default/keymap.c @@ -0,0 +1,67 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_ansi_109( + KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MUTE, KC_NO, KC_NO, RGB_MOD, KC_F13, KC_F14, KC_F15, KC_F16, + 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_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, + KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), + [MAC_FN] = LAYOUT_ansi_109( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RGB_TOG, _______, _______, RGB_TOG, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + [WIN_BASE] = LAYOUT_ansi_109( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MUTE, KC_PSCR, KC_NO, RGB_MOD, _______, _______, _______, _______, + 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_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), + [WIN_FN] = LAYOUT_ansi_109( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_TOG, _______, _______, RGB_TOG, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][1][2] = { + [MAC_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [MAC_FN] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, + [WIN_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [WIN_FN] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI) } +}; +#endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/v6/ansi_encoder/keymaps/default/rules.mk b/keyboards/keychron/v6/ansi_encoder/keymaps/default/rules.mk new file mode 100644 index 000000000000..ee325681483f --- /dev/null +++ b/keyboards/keychron/v6/ansi_encoder/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/keychron/v6/ansi_encoder/keymaps/keychron/keymap.c b/keyboards/keychron/v6/ansi_encoder/keymaps/keychron/keymap.c new file mode 100644 index 000000000000..374f75fd3e83 --- /dev/null +++ b/keyboards/keychron/v6/ansi_encoder/keymaps/keychron/keymap.c @@ -0,0 +1,80 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H +#include "keychron_common.h" + +// clang-format off + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_ansi_109( + KC_ESC, 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_MUTE, KC_SNAP, KC_SIRI, RGB_MOD, KC_F13, KC_F14, KC_F15, KC_F16, + 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_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, + KC_LCTL, KC_LOPTN, KC_LCMMD, KC_SPC, KC_RCMMD, KC_ROPTN, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), + [MAC_FN] = LAYOUT_ansi_109( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RGB_TOG, _______, _______, RGB_TOG, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + [WIN_BASE] = LAYOUT_ansi_109( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MUTE, KC_PSCR, KC_CRTA, RGB_MOD, _______, _______, _______, _______, + 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_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), + [WIN_FN] = LAYOUT_ansi_109( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_TOG, _______, _______, RGB_TOG, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][1][2] = { + [MAC_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [MAC_FN] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, + [WIN_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [WIN_FN] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI) } +}; +#endif // ENCODER_MAP_ENABLE + +// clang-format on + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (!process_record_keychron(keycode, record)) { + return false; + } + return true; +} + +void housekeeping_task_user(void) { + housekeeping_task_keychron(); +} diff --git a/keyboards/keychron/v6/ansi_encoder/keymaps/keychron/rules.mk b/keyboards/keychron/v6/ansi_encoder/keymaps/keychron/rules.mk new file mode 100644 index 000000000000..9cf1a9b56cba --- /dev/null +++ b/keyboards/keychron/v6/ansi_encoder/keymaps/keychron/rules.mk @@ -0,0 +1,5 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes + +VPATH += keyboards/keychron/common +SRC += keychron_common.c diff --git a/keyboards/keychron/v6/ansi_encoder/keymaps/via/keymap.c b/keyboards/keychron/v6/ansi_encoder/keymaps/via/keymap.c new file mode 100644 index 000000000000..39ab68e67b4b --- /dev/null +++ b/keyboards/keychron/v6/ansi_encoder/keymaps/via/keymap.c @@ -0,0 +1,67 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_ansi_109( + KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MUTE, KC_NO, KC_NO, RGB_MOD, KC_F13, KC_F14, KC_F15, KC_F16, + 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_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, + KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), + [MAC_FN] = LAYOUT_ansi_109( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RGB_TOG, _______, _______, RGB_TOG, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + [WIN_BASE] = LAYOUT_ansi_109( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MUTE, KC_PSCR, KC_NO, RGB_MOD, _______, _______, _______, _______, + 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_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), + [WIN_FN] = LAYOUT_ansi_109( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_TOG, _______, _______, RGB_TOG, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][1][2] = { + [MAC_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [MAC_FN] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, + [WIN_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [WIN_FN] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI) } +}; +#endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/v6/ansi_encoder/keymaps/via/rules.mk b/keyboards/keychron/v6/ansi_encoder/keymaps/via/rules.mk new file mode 100644 index 000000000000..c09b2475769a --- /dev/null +++ b/keyboards/keychron/v6/ansi_encoder/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +EMCODER_MAP_ENABLE = yes diff --git a/keyboards/keychron/v6/ansi_encoder/rules.mk b/keyboards/keychron/v6/ansi_encoder/rules.mk new file mode 100644 index 000000000000..bf60bb7d7d54 --- /dev/null +++ b/keyboards/keychron/v6/ansi_encoder/rules.mk @@ -0,0 +1,26 @@ +# 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 USB 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 # Enable Encoder +DIP_SWITCH_ENABLE = yes +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = CKLED2001 +EEPROM_DRIVER = wear_leveling +WEAR_LEVELING_DRIVER = embedded_flash + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE + +# custom matrix setup +CUSTOM_MATRIX = lite + +SRC += matrix.c diff --git a/keyboards/keychron/v6/config.h b/keyboards/keychron/v6/config.h new file mode 100644 index 000000000000..af5e706bab30 --- /dev/null +++ b/keyboards/keychron/v6/config.h @@ -0,0 +1,104 @@ +/* Copyright 2023 @ Keychron(https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION ROW2COL + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* RGB Matrix Driver Configuration */ +#define DRIVER_COUNT 2 +#define DRIVER_ADDR_1 0b1110111 +#define DRIVER_ADDR_2 0b1110100 + +/* Increase I2C speed to 1000 KHz */ +#define I2C1_TIMINGR_PRESC 0U +#define I2C1_TIMINGR_SCLDEL 3U +#define I2C1_TIMINGR_SDADEL 0U +#define I2C1_TIMINGR_SCLH 15U +#define I2C1_TIMINGR_SCLL 51U + +/* Limit the maximum brigtness current of colour white to 500mA */ +#define CKLED2001_CURRENT_TUNE { 0xA8, 0xA8, 0x48, 0xA8, 0xA8, 0x48, 0xA8, 0xA8, 0x48, 0xA8, 0xA8, 0x48 } + +/* DIP switch */ +#define DIP_SWITCH_MATRIX_GRID { {5, 4} } +#define SCAN_COUNT_MAX 100 + +/* Disable DIP switch in matrix data */ +#define MATRIX_MASKED + +/* turn off effects when suspended */ +#define RGB_DISABLE_WHEN_USB_SUSPENDED + +/* EEPROM Driver Configuration */ +#define WEAR_LEVELING_LOGICAL_SIZE 2048 +#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2) + +// RGB Matrix Animation modes. Explicitly enabled +// For full list of effects, see: +// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects +// #define ENABLE_RGB_MATRIX_ALPHAS_MODS +// #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN +// #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_BREATHING +// #define ENABLE_RGB_MATRIX_BAND_SAT +// #define ENABLE_RGB_MATRIX_BAND_VAL +// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT +#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL +#define ENABLE_RGB_MATRIX_CYCLE_ALL +#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN +#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN +#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL +#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL +#define ENABLE_RGB_MATRIX_DUAL_BEACON +#define ENABLE_RGB_MATRIX_RAINBOW_BEACON +// #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS +// #define ENABLE_RGB_MATRIX_RAINDROPS +#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +// #define ENABLE_RGB_MATRIX_HUE_BREATHING +// #define ENABLE_RGB_MATRIX_HUE_PENDULUM +// #define ENABLE_RGB_MATRIX_HUE_WAVE +#define ENABLE_RGB_MATRIX_PIXEL_RAIN +// #define ENABLE_RGB_MATRIX_PIXEL_FLOW +// #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL +// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined +#define ENABLE_RGB_MATRIX_TYPING_HEATMAP +#define ENABLE_RGB_MATRIX_DIGITAL_RAIN +// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +#define ENABLE_RGB_MATRIX_SPLASH +// #define ENABLE_RGB_MATRIX_MULTISPLASH +#define ENABLE_RGB_MATRIX_SOLID_SPLASH +// #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH + +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/keychron/v6/halconf.h b/keyboards/keychron/v6/halconf.h new file mode 100644 index 000000000000..a7e5474b8cdd --- /dev/null +++ b/keyboards/keychron/v6/halconf.h @@ -0,0 +1,20 @@ +/* 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 . + */ + +#define HAL_USE_I2C TRUE +#define PAL_USE_CALLBACKS TRUE + +#include_next diff --git a/keyboards/keychron/v6/iso/config.h b/keyboards/keychron/v6/iso/config.h new file mode 100644 index 000000000000..0a9528d03be3 --- /dev/null +++ b/keyboards/keychron/v6/iso/config.h @@ -0,0 +1,41 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Key matrix pins */ +#define MATRIX_ROW_PINS { B5, B4, B3, A15, A14, A13 } +#define MATRIX_COL_PINS { A10, A9, A8, B1, B0, A7, A6, A5, A4, A3, A2, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, C14 } + +/* Pin connected to DS of 74HC595 */ +#define DATA_PIN_74HC595 C15 +/* Pin connected to SH_CP of 74HC595 */ +#define CLOCK_PIN_74HC595 A1 +/* Pin connected to ST_CP of 74HC595 */ +#define LATCH_PIN_74HC595 A0 +/* Pin used index start of 74HC595 */ +#define PIN_START_74HC595 11 + +/* RGB Matrix Configuration */ +#define DRIVER_1_LED_TOTAL 60 +#define DRIVER_2_LED_TOTAL 49 +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) + +/* Enable caps-lock LED*/ +#define CAPS_LOCK_LED_INDEX 60 + +/* Enable NUM_LOCK_LED_INDEX */ +// #define NUM_LOCK_LED_INDEX 37 diff --git a/keyboards/keychron/v6/iso/info.json b/keyboards/keychron/v6/iso/info.json new file mode 100644 index 000000000000..764a3d762264 --- /dev/null +++ b/keyboards/keychron/v6/iso/info.json @@ -0,0 +1,133 @@ +{ + "keyboard_name": "Keychron V6", + "manufacturer": "Keychron", + "url": "https://github.com/Keychron", + "maintainer": "lalalademaxiya1", + "usb": { + "vid": "0x3434", + "pid": "0x0362", + "device_version": "1.0.0" + }, + "processor": "STM32L432", + "bootloader": "stm32-dfu", + "layouts": { + "LAYOUT_iso_109": { + "layout": [ + {"matrix":[0, 0], "x":0, "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":6.5, "y":0}, + {"matrix":[0, 6], "x":7.5, "y":0}, + {"matrix":[0, 7], "x":8.5, "y":0}, + {"matrix":[0, 8], "x":9.5, "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":14, "y":0}, + {"matrix":[0,14], "x":15.25, "y":0}, + {"matrix":[0,15], "x":16.25, "y":0}, + {"matrix":[0,16], "x":17.25, "y":0}, + {"matrix":[0,19], "x":18.5, "y":0}, + {"matrix":[1,19], "x":19.5, "y":0}, + {"matrix":[2,19], "x":20.5, "y":0}, + {"matrix":[3,19], "x":21.5, "y":0}, + + {"matrix":[1, 0], "x":0, "y":1.25}, + {"matrix":[1, 1], "x":1, "y":1.25}, + {"matrix":[1, 2], "x":2, "y":1.25}, + {"matrix":[1, 3], "x":3, "y":1.25}, + {"matrix":[1, 4], "x":4, "y":1.25}, + {"matrix":[1, 5], "x":5, "y":1.25}, + {"matrix":[1, 6], "x":6, "y":1.25}, + {"matrix":[1, 7], "x":7, "y":1.25}, + {"matrix":[1, 8], "x":8, "y":1.25}, + {"matrix":[1, 9], "x":9, "y":1.25}, + {"matrix":[1,10], "x":10, "y":1.25}, + {"matrix":[1,11], "x":11, "y":1.25}, + {"matrix":[1,12], "x":12, "y":1.25}, + {"matrix":[1,13], "x":13, "y":1.25, "w":2}, + {"matrix":[1,14], "x":15.25, "y":1.25}, + {"matrix":[1,15], "x":16.25, "y":1.25}, + {"matrix":[1,16], "x":17.25, "y":1.25}, + {"matrix":[1,17], "x":18.5, "y":1.25}, + {"matrix":[1,18], "x":19.5, "y":1.25}, + {"matrix":[0,17], "x":20.5, "y":1.25}, + {"matrix":[0,18], "x":21.5, "y":1.25}, + + {"matrix":[2, 0], "x":0, "y":2.25, "w":1.5}, + {"matrix":[2, 1], "x":1.5, "y":2.25}, + {"matrix":[2, 2], "x":2.5, "y":2.25}, + {"matrix":[2, 3], "x":3.5, "y":2.25}, + {"matrix":[2, 4], "x":4.5, "y":2.25}, + {"matrix":[2, 5], "x":5.5, "y":2.25}, + {"matrix":[2, 6], "x":6.5, "y":2.25}, + {"matrix":[2, 7], "x":7.5, "y":2.25}, + {"matrix":[2, 8], "x":8.5, "y":2.25}, + {"matrix":[2, 9], "x":9.5, "y":2.25}, + {"matrix":[2,10], "x":10.5, "y":2.25}, + {"matrix":[2,11], "x":11.5, "y":2.25}, + {"matrix":[2,12], "x":12.5, "y":2.25}, + {"matrix":[2,14], "x":15.25, "y":2.25}, + {"matrix":[2,15], "x":16.25, "y":2.25}, + {"matrix":[2,16], "x":17.25, "y":2.25}, + {"matrix":[2,17], "x":18.5, "y":2.25}, + {"matrix":[2,18], "x":19.5, "y":2.25}, + {"matrix":[3,14], "x":20.5, "y":2.25}, + + {"matrix":[3, 0], "x":0, "y":3.25, "w":1.75}, + {"matrix":[3, 1], "x":1.75, "y":3.25}, + {"matrix":[3, 2], "x":2.75, "y":3.25}, + {"matrix":[3, 3], "x":3.75, "y":3.25}, + {"matrix":[3, 4], "x":4.75, "y":3.25}, + {"matrix":[3, 5], "x":5.75, "y":3.25}, + {"matrix":[3, 6], "x":6.75, "y":3.25}, + {"matrix":[3, 7], "x":7.75, "y":3.25}, + {"matrix":[3, 8], "x":8.75, "y":3.25}, + {"matrix":[3, 9], "x":9.75, "y":3.25}, + {"matrix":[3,10], "x":10.75, "y":3.25}, + {"matrix":[3,11], "x":11.75, "y":3.25}, + {"matrix":[3,13], "x":12.75, "y":3.25}, + {"matrix":[2,13], "x":13.75, "y":2.25, "w":1.25, "h":2}, + {"matrix":[3,17], "x":18.5, "y":3.25}, + {"matrix":[3,18], "x":19.5, "y":3.25}, + {"matrix":[3,16], "x":20.5, "y":3.25}, + {"matrix":[3,15], "x":21.5, "y":2.25, "h":2}, + + {"matrix":[4, 0], "x":0, "y":4.25, "w":1.25}, + {"matrix":[4, 1], "x":1.25, "y":4.25}, + {"matrix":[4, 2], "x":2.25, "y":4.25}, + {"matrix":[4, 3], "x":3.25, "y":4.25}, + {"matrix":[4, 4], "x":4.25, "y":4.25}, + {"matrix":[4, 5], "x":5.25, "y":4.25}, + {"matrix":[4, 6], "x":6.25, "y":4.25}, + {"matrix":[4, 7], "x":7.25, "y":4.25}, + {"matrix":[4, 8], "x":8.25, "y":4.25}, + {"matrix":[4, 9], "x":9.25, "y":4.25}, + {"matrix":[4,10], "x":10.25, "y":4.25}, + {"matrix":[4,11], "x":11.25, "y":4.25}, + {"matrix":[4,13], "x":12.25, "y":4.25, "w":2.75}, + {"matrix":[4,15], "x":16.25, "y":4.25}, + {"matrix":[4,17], "x":18.5, "y":4.25}, + {"matrix":[4,18], "x":19.5, "y":4.25}, + {"matrix":[4,14], "x":20.5, "y":4.25}, + + {"matrix":[5, 0], "x":0, "y":5.25, "w":1.25}, + {"matrix":[5, 1], "x":1.25, "y":5.25, "w":1.25}, + {"matrix":[5, 2], "x":2.5, "y":5.25, "w":1.25}, + {"matrix":[5, 6], "x":3.75, "y":5.25, "w":6.25}, + {"matrix":[5,10], "x":10, "y":5.25, "w":1.25}, + {"matrix":[5,11], "x":11.25, "y":5.25, "w":1.25}, + {"matrix":[5,12], "x":12.5, "y":5.25, "w":1.25}, + {"matrix":[5,13], "x":13.75, "y":5.25, "w":1.25}, + {"matrix":[5,14], "x":15.25, "y":5.25}, + {"matrix":[5,15], "x":16.25, "y":5.25}, + {"matrix":[5,16], "x":17.25, "y":5.25}, + {"matrix":[5,17], "x":18.5, "y":5.25, "w":2}, + {"matrix":[5,18], "x":20.5, "y":5.25}, + {"matrix":[4,16], "x":21.5, "y":4.25, "h":2} + ] + } + } +} diff --git a/keyboards/keychron/v6/iso/iso.c b/keyboards/keychron/v6/iso/iso.c new file mode 100644 index 000000000000..5c0e2fa39671 --- /dev/null +++ b/keyboards/keychron/v6/iso/iso.c @@ -0,0 +1,178 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +// clang-format off + +#ifdef RGB_MATRIX_ENABLE + +const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, I_1, G_1, H_1}, + {0, I_2, G_2, H_2}, + {0, I_3, G_3, H_3}, + {0, I_4, G_4, H_4}, + {0, I_5, G_5, H_5}, + {0, I_6, G_6, H_6}, + {0, I_7, G_7, H_7}, + {0, I_8, G_8, H_8}, + {0, I_9, G_9, H_9}, + {0, I_10, G_10, H_10}, + {0, I_11, G_11, H_11}, + {0, I_12, G_12, H_12}, + {0, I_13, G_13, H_13}, + {0, I_15, G_15, H_15}, + {0, I_16, G_16, H_16}, + {0, L_5, J_5, K_5}, + {0, L_6, J_6, K_6}, + {0, L_7, J_7, K_7}, + {0, L_8, J_8, K_8}, + {0, L_4, J_4, K_4}, + + {0, C_1, A_1, B_1}, + {0, C_2, A_2, B_2}, + {0, C_3, A_3, B_3}, + {0, C_4, A_4, B_4}, + {0, C_5, A_5, B_5}, + {0, C_6, A_6, B_6}, + {0, C_7, A_7, B_7}, + {0, C_8, A_8, B_8}, + {0, C_9, A_9, B_9}, + {0, C_10, A_10, B_10}, + {0, C_11, A_11, B_11}, + {0, C_12, A_12, B_12}, + {0, C_13, A_13, B_13}, + {0, C_14, A_14, B_14}, + {0, C_15, A_15, B_15}, + {0, C_16, A_16, B_16}, + {0, L_9, J_9, K_9}, + {0, L_10, J_10, K_10}, + {0, L_11, J_11, K_11}, + {0, L_12, J_12, K_12}, + {0, L_13, J_13, K_13}, + + {0, F_1, D_1, E_1}, + {0, F_2, D_2, E_2}, + {0, F_3, D_3, E_3}, + {0, F_4, D_4, E_4}, + {0, F_5, D_5, E_5}, + {0, F_6, D_6, E_6}, + {0, F_7, D_7, E_7}, + {0, F_8, D_8, E_8}, + {0, F_9, D_9, E_9}, + {0, F_10, D_10, E_10}, + {0, F_11, D_11, E_11}, + {0, F_12, D_12, E_12}, + {0, F_13, D_13, E_13}, + {0, F_15, D_15, E_15}, + {0, F_16, D_16, E_16}, + {0, L_14, J_14, K_14}, + {0, L_15, J_15, K_15}, + {0, L_16, J_16, K_16}, + {1, L_1, J_1, K_1}, + + {1, C_16, A_16, B_16}, + {1, C_15, A_15, B_15}, + {1, C_14, A_14, B_14}, + {1, C_13, A_13, B_13}, + {1, C_12, A_12, B_12}, + {1, C_11, A_11, B_11}, + {1, C_10, A_10, B_10}, + {1, C_9, A_9, B_9}, + {1, C_8, A_8, B_8}, + {1, C_7, A_7, B_7}, + {1, C_6, A_6, B_6}, + {1, C_5, A_5, B_5}, + {1, C_3, A_3, B_3}, + {0, F_14, D_14, E_14}, + {1, L_3, J_3, K_3}, + {1, L_4, J_4, K_4}, + {1, L_5, J_5, K_5}, + {1, L_2, J_2, K_2}, + + {1, I_16, G_16, H_16}, + {1, I_15, G_15, H_15}, + {1, I_14, G_14, H_14}, + {1, I_13, G_13, H_13}, + {1, I_12, G_12, H_12}, + {1, I_11, G_11, H_11}, + {1, I_10, G_10, H_10}, + {1, I_9, G_9, H_9}, + {1, I_8, G_8, H_8}, + {1, I_7, G_7, H_7}, + {1, I_6, G_6, H_6}, + {1, I_5, G_5, H_5}, + {1, I_3, G_3, H_3}, + {1, I_1, G_1, H_1}, + {1, L_6, J_6, K_6}, + {1, L_7, J_7, K_7}, + {1, L_8, J_8, K_8}, + + {1, F_16, D_16, E_16}, + {1, F_15, D_15, E_15}, + {1, F_14, D_14, E_14}, + {1, F_10, D_10, E_10}, + {1, F_6, D_6, E_6}, + {1, F_5, D_5, E_5}, + {1, F_4, D_4, E_4}, + {1, F_3, D_3, E_3}, + {1, F_2, D_2, E_2}, + {1, F_1, D_1, E_1}, + {1, L_10, J_10, K_10}, + {1, L_11, J_11, K_11}, + {1, L_12, J_12, K_12}, + {1, L_9, J_9, K_9}, +}; + +#define __ NO_LED + +led_config_t g_led_config = { + { + // Key Matrix to LED Index + { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14, 15, 39, 40, 16 }, + { 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 17 }, + { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 73, 54, 55, 56, 57, 58, 18 }, + { 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, __, 72, 59, 77, 76, 74, 75, 19 }, + { 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, __, 90, 94, 91, 108, 92, 93, __ }, + { 95, 96, 97, __, __, __, 98, __, __, __, 99, 100, 101, 102, 103, 104, 105, 106, 107, __ }, + }, + { + // LED Index to Physical Position + {0,0}, {21,0}, {31,0}, {42,0}, {52,0}, {68,0}, {78,0}, {89,0}, {99,0}, {115,0}, {125,0}, {136,0}, {146,0}, {159,0}, {169,0}, {180,0}, {193,0}, {203,0}, {214,0}, {224,0}, + {0,15}, {10,15}, {21,15}, {31,15}, {42,15}, {52,15}, {63,15}, {73,15}, {83,15}, {94,15}, {104,15}, {115,15}, {125,15}, {141,15}, {159,15}, {169,15}, {180,15}, {193,15}, {203,15}, {214,15}, {224,15}, + {3,27}, {16,27}, {26,27}, {36,27}, {47,27}, {57,27}, {68,27}, {78,27}, {89,27}, {99,27}, {109,27}, {120,27}, {130,27}, {159,27}, {169,27}, {180,27}, {193,27}, {203,27}, {214,27}, + {4,40}, {18,40}, {29,40}, {39,40}, {50,40}, {60,40}, {70,40}, {81,40}, {91,40}, {102,40}, {112,40}, {123,40}, {133,40}, {147,36}, {193,40}, {203,40}, {214,40}, {224,34}, + {1,52}, {13,52}, {23,52}, {34,52}, {44,52}, {55,52}, {65,52}, {76,52}, {86,52}, {96,52}, {107,52}, {117,52}, {137,52}, {169,52}, {193,52}, {203,52}, {214,52}, + {1,64}, {14,64}, {27,64}, {66,64}, {105,64}, {118,64}, {131,64}, {145,64}, {159,64}, {169,64}, {180,64}, {198,64}, {214,64}, {224,58}, + }, + { + // RGB LED Index to Flag + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 8, 4, 4, 4, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 4, 4, 4, + 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, + 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, + } +}; + +#endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v6/iso/keymaps/default/keymap.c b/keyboards/keychron/v6/iso/keymaps/default/keymap.c new file mode 100644 index 000000000000..c1463b3060b1 --- /dev/null +++ b/keyboards/keychron/v6/iso/keymaps/default/keymap.c @@ -0,0 +1,58 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_iso_109( + KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, RGB_MOD, KC_F13, KC_F14, KC_F15, KC_F16, + 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_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, + KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), + [MAC_FN] = LAYOUT_iso_109( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RGB_TOG, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + [WIN_BASE] = LAYOUT_iso_109( + 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_NO, RGB_MOD, _______, _______, _______, _______, + 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_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), + [WIN_FN] = LAYOUT_iso_109( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +}; diff --git a/keyboards/keychron/v6/iso/keymaps/keychron/keymap.c b/keyboards/keychron/v6/iso/keymaps/keychron/keymap.c new file mode 100644 index 000000000000..07199e2a070f --- /dev/null +++ b/keyboards/keychron/v6/iso/keymaps/keychron/keymap.c @@ -0,0 +1,71 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H +#include "keychron_common.h" + +// clang-format off + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_iso_109( + KC_ESC, 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_SNAP, KC_SIRI, RGB_MOD, KC_F13, KC_F14, KC_F15, KC_F16, + 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_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, + KC_LCTL, KC_LOPTN, KC_LCMMD, KC_SPC, KC_RCMMD, KC_ROPTN, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), + [MAC_FN] = LAYOUT_iso_109( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RGB_TOG, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + [WIN_BASE] = LAYOUT_iso_109( + 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_CRTA, RGB_MOD, _______, _______, _______, _______, + 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_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), + [WIN_FN] = LAYOUT_iso_109( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +}; + +// clang-format on + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (!process_record_keychron(keycode, record)) { + return false; + } + return true; +} + +void housekeeping_task_user(void) { + housekeeping_task_keychron(); +} diff --git a/keyboards/keychron/v6/iso/keymaps/keychron/rules.mk b/keyboards/keychron/v6/iso/keymaps/keychron/rules.mk new file mode 100644 index 000000000000..495e8907b48c --- /dev/null +++ b/keyboards/keychron/v6/iso/keymaps/keychron/rules.mk @@ -0,0 +1,4 @@ +VIA_ENABLE = yes + +VPATH += keyboards/keychron/common +SRC += keychron_common.c diff --git a/keyboards/keychron/v6/iso/keymaps/via/keymap.c b/keyboards/keychron/v6/iso/keymaps/via/keymap.c new file mode 100644 index 000000000000..c1463b3060b1 --- /dev/null +++ b/keyboards/keychron/v6/iso/keymaps/via/keymap.c @@ -0,0 +1,58 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_iso_109( + KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, RGB_MOD, KC_F13, KC_F14, KC_F15, KC_F16, + 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_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, + KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), + [MAC_FN] = LAYOUT_iso_109( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RGB_TOG, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + [WIN_BASE] = LAYOUT_iso_109( + 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_NO, RGB_MOD, _______, _______, _______, _______, + 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_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), + [WIN_FN] = LAYOUT_iso_109( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +}; diff --git a/keyboards/keychron/v6/iso/keymaps/via/rules.mk b/keyboards/keychron/v6/iso/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/keychron/v6/iso/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/keychron/v6/iso/rules.mk b/keyboards/keychron/v6/iso/rules.mk new file mode 100644 index 000000000000..ee83debd68cc --- /dev/null +++ b/keyboards/keychron/v6/iso/rules.mk @@ -0,0 +1,25 @@ +# 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 USB N-key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +DIP_SWITCH_ENABLE = yes +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = CKLED2001 +EEPROM_DRIVER = wear_leveling +WEAR_LEVELING_DRIVER = embedded_flash + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE + +# custom matrix setup +CUSTOM_MATRIX = lite + +SRC += matrix.c diff --git a/keyboards/keychron/v6/iso_encoder/config.h b/keyboards/keychron/v6/iso_encoder/config.h new file mode 100644 index 000000000000..567db0d7b57b --- /dev/null +++ b/keyboards/keychron/v6/iso_encoder/config.h @@ -0,0 +1,49 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Key matrix pins */ +#define MATRIX_ROW_PINS { B5, B4, B3, A15, A14, A13 } +#define MATRIX_COL_PINS { A10, A9, A8, B1, B0, A7, A6, A5, A4, A3, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN } + +/* Pin connected to DS of 74HC595 */ +#define DATA_PIN_74HC595 C15 +/* Pin connected to SH_CP of 74HC595 */ +#define CLOCK_PIN_74HC595 A1 +/* Pin connected to ST_CP of 74HC595 */ +#define LATCH_PIN_74HC595 A0 +/* Pin used number of 74HC595 */ +#define PIN_USED_74HC595 10 +/* Pin used index start of 74HC595 */ +#define PIN_START_74HC595 10 + +/* RGB Matrix Configuration */ +#define DRIVER_1_LED_TOTAL 60 +#define DRIVER_2_LED_TOTAL 49 +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) + +/* Encoder Configuration */ +#define ENCODERS_PAD_A { C14 } +#define ENCODERS_PAD_B { A2 } +#define ENCODER_RESOLUTION 4 +#define ENCODER_DEFAULT_POS 0x3 + +/* Enable caps-lock LED*/ +#define CAPS_LOCK_LED_INDEX 60 + +/* Enable NUM_LOCK_LED_INDEX */ +// #define NUM_LOCK_LED_INDEX 37 diff --git a/keyboards/keychron/v6/iso_encoder/info.json b/keyboards/keychron/v6/iso_encoder/info.json new file mode 100644 index 000000000000..f0e4a3d4f2d1 --- /dev/null +++ b/keyboards/keychron/v6/iso_encoder/info.json @@ -0,0 +1,134 @@ +{ + "keyboard_name": "Keychron V6", + "manufacturer": "Keychron", + "url": "https://github.com/Keychron", + "maintainer": "lalalademaxiya1", + "usb": { + "vid": "0x3434", + "pid": "0x0363", + "device_version": "1.0.0" + }, + "processor": "STM32L432", + "bootloader": "stm32-dfu", + "layouts": { + "LAYOUT_iso_110": { + "layout": [ + {"matrix":[0, 0], "x":0, "y":0}, + {"matrix":[0, 1], "x":1.25, "y":0}, + {"matrix":[0, 2], "x":2.25, "y":0}, + {"matrix":[0, 3], "x":3.25, "y":0}, + {"matrix":[0, 4], "x":4.25, "y":0}, + {"matrix":[0, 5], "x":5.5, "y":0}, + {"matrix":[0, 6], "x":6.5, "y":0}, + {"matrix":[0, 7], "x":7.5, "y":0}, + {"matrix":[0, 8], "x":8.5, "y":0}, + {"matrix":[0, 9], "x":9.75, "y":0}, + {"matrix":[0,10], "x":10.75, "y":0}, + {"matrix":[0,11], "x":11.75, "y":0}, + {"matrix":[0,12], "x":12.75, "y":0}, + {"matrix":[4,19], "x":14, "y":0}, + {"matrix":[0,14], "x":15.25, "y":0}, + {"matrix":[0,15], "x":16.25, "y":0}, + {"matrix":[0,16], "x":17.25, "y":0}, + {"matrix":[0,19], "x":18.5, "y":0}, + {"matrix":[1,19], "x":19.5, "y":0}, + {"matrix":[2,19], "x":20.5, "y":0}, + {"matrix":[3,19], "x":21.5, "y":0}, + + {"matrix":[1, 0], "x":0, "y":1.25}, + {"matrix":[1, 1], "x":1, "y":1.25}, + {"matrix":[1, 2], "x":2, "y":1.25}, + {"matrix":[1, 3], "x":3, "y":1.25}, + {"matrix":[1, 4], "x":4, "y":1.25}, + {"matrix":[1, 5], "x":5, "y":1.25}, + {"matrix":[1, 6], "x":6, "y":1.25}, + {"matrix":[1, 7], "x":7, "y":1.25}, + {"matrix":[1, 8], "x":8, "y":1.25}, + {"matrix":[1, 9], "x":9, "y":1.25}, + {"matrix":[1,10], "x":10, "y":1.25}, + {"matrix":[1,11], "x":11, "y":1.25}, + {"matrix":[1,12], "x":12, "y":1.25}, + {"matrix":[1,13], "x":13, "y":1.25, "w":2}, + {"matrix":[1,14], "x":15.25, "y":1.25}, + {"matrix":[1,15], "x":16.25, "y":1.25}, + {"matrix":[1,16], "x":17.25, "y":1.25}, + {"matrix":[1,17], "x":18.5, "y":1.25}, + {"matrix":[1,18], "x":19.5, "y":1.25}, + {"matrix":[0,17], "x":20.5, "y":1.25}, + {"matrix":[0,18], "x":21.5, "y":1.25}, + + {"matrix":[2, 0], "x":0, "y":2.25, "w":1.5}, + {"matrix":[2, 1], "x":1.5, "y":2.25}, + {"matrix":[2, 2], "x":2.5, "y":2.25}, + {"matrix":[2, 3], "x":3.5, "y":2.25}, + {"matrix":[2, 4], "x":4.5, "y":2.25}, + {"matrix":[2, 5], "x":5.5, "y":2.25}, + {"matrix":[2, 6], "x":6.5, "y":2.25}, + {"matrix":[2, 7], "x":7.5, "y":2.25}, + {"matrix":[2, 8], "x":8.5, "y":2.25}, + {"matrix":[2, 9], "x":9.5, "y":2.25}, + {"matrix":[2,10], "x":10.5, "y":2.25}, + {"matrix":[2,11], "x":11.5, "y":2.25}, + {"matrix":[2,12], "x":12.5, "y":2.25}, + {"matrix":[2,14], "x":15.25, "y":2.25}, + {"matrix":[2,15], "x":16.25, "y":2.25}, + {"matrix":[2,16], "x":17.25, "y":2.25}, + {"matrix":[2,17], "x":18.5, "y":2.25}, + {"matrix":[2,18], "x":19.5, "y":2.25}, + {"matrix":[3,14], "x":20.5, "y":2.25}, + + {"matrix":[3, 0], "x":0, "y":3.25, "w":1.75}, + {"matrix":[3, 1], "x":1.75, "y":3.25}, + {"matrix":[3, 2], "x":2.75, "y":3.25}, + {"matrix":[3, 3], "x":3.75, "y":3.25}, + {"matrix":[3, 4], "x":4.75, "y":3.25}, + {"matrix":[3, 5], "x":5.75, "y":3.25}, + {"matrix":[3, 6], "x":6.75, "y":3.25}, + {"matrix":[3, 7], "x":7.75, "y":3.25}, + {"matrix":[3, 8], "x":8.75, "y":3.25}, + {"matrix":[3, 9], "x":9.75, "y":3.25}, + {"matrix":[3,10], "x":10.75, "y":3.25}, + {"matrix":[3,11], "x":11.75, "y":3.25}, + {"matrix":[3,13], "x":12.75, "y":3.25}, + {"matrix":[2,13], "x":13.75, "y":2.25, "w":1.25, "h":2}, + {"matrix":[3,17], "x":18.5, "y":3.25}, + {"matrix":[3,18], "x":19.5, "y":3.25}, + {"matrix":[3,16], "x":20.5, "y":3.25}, + {"matrix":[3,15], "x":21.5, "y":2.25, "h":2}, + + {"matrix":[4, 0], "x":0, "y":4.25, "w":1.25}, + {"matrix":[4, 1], "x":2.25, "y":4.25}, + {"matrix":[4, 2], "x":2.25, "y":4.25}, + {"matrix":[4, 3], "x":3.25, "y":4.25}, + {"matrix":[4, 4], "x":4.25, "y":4.25}, + {"matrix":[4, 5], "x":5.25, "y":4.25}, + {"matrix":[4, 6], "x":6.25, "y":4.25}, + {"matrix":[4, 7], "x":7.25, "y":4.25}, + {"matrix":[4, 8], "x":8.25, "y":4.25}, + {"matrix":[4, 9], "x":9.25, "y":4.25}, + {"matrix":[4,10], "x":10.25, "y":4.25}, + {"matrix":[4,11], "x":11.25, "y":4.25}, + {"matrix":[4,13], "x":12.25, "y":4.25, "w":2.75}, + {"matrix":[4,15], "x":16.25, "y":4.25}, + {"matrix":[4,17], "x":18.5, "y":4.25}, + {"matrix":[4,18], "x":19.5, "y":4.25}, + {"matrix":[4,14], "x":20.5, "y":4.25}, + + {"matrix":[5, 0], "x":0, "y":5.25, "w":1.25}, + {"matrix":[5, 1], "x":1.25, "y":5.25, "w":1.25}, + {"matrix":[5, 2], "x":2.5, "y":5.25, "w":1.25}, + {"matrix":[5, 6], "x":3.75, "y":5.25, "w":6.25}, + {"matrix":[5,10], "x":10, "y":5.25, "w":1.25}, + {"matrix":[5,11], "x":11.25, "y":5.25, "w":1.25}, + {"matrix":[5,12], "x":12.5, "y":5.25, "w":1.25}, + {"matrix":[5,13], "x":13.75, "y":5.25, "w":1.25}, + {"matrix":[5,14], "x":15.25, "y":5.25}, + {"matrix":[5,15], "x":16.25, "y":5.25}, + {"matrix":[5,16], "x":17.25, "y":5.25}, + {"matrix":[5,17], "x":18.5, "y":5.25, "w":2}, + {"matrix":[5,18], "x":20.5, "y":5.25}, + {"matrix":[4,16], "x":21.5, "y":4.25, "h":2} + ] + } + } +} diff --git a/keyboards/keychron/v6/iso_encoder/iso_encoder.c b/keyboards/keychron/v6/iso_encoder/iso_encoder.c new file mode 100644 index 000000000000..8268e5b0a9ac --- /dev/null +++ b/keyboards/keychron/v6/iso_encoder/iso_encoder.c @@ -0,0 +1,178 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +// clang-format off + +#ifdef RGB_MATRIX_ENABLE + +const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, I_1, G_1, H_1}, + {0, I_2, G_2, H_2}, + {0, I_3, G_3, H_3}, + {0, I_4, G_4, H_4}, + {0, I_5, G_5, H_5}, + {0, I_6, G_6, H_6}, + {0, I_7, G_7, H_7}, + {0, I_8, G_8, H_8}, + {0, I_9, G_9, H_9}, + {0, I_10, G_10, H_10}, + {0, I_11, G_11, H_11}, + {0, I_12, G_12, H_12}, + {0, I_13, G_13, H_13}, + {0, I_15, G_15, H_15}, + {0, I_16, G_16, H_16}, + {0, L_5, J_5, K_5}, + {0, L_6, J_6, K_6}, + {0, L_7, J_7, K_7}, + {0, L_8, J_8, K_8}, + {0, L_4, J_4, K_4}, + + {0, C_1, A_1, B_1}, + {0, C_2, A_2, B_2}, + {0, C_3, A_3, B_3}, + {0, C_4, A_4, B_4}, + {0, C_5, A_5, B_5}, + {0, C_6, A_6, B_6}, + {0, C_7, A_7, B_7}, + {0, C_8, A_8, B_8}, + {0, C_9, A_9, B_9}, + {0, C_10, A_10, B_10}, + {0, C_11, A_11, B_11}, + {0, C_12, A_12, B_12}, + {0, C_13, A_13, B_13}, + {0, C_14, A_14, B_14}, + {0, C_15, A_15, B_15}, + {0, C_16, A_16, B_16}, + {0, L_9, J_9, K_9}, + {0, L_10, J_10, K_10}, + {0, L_11, J_11, K_11}, + {0, L_12, J_12, K_12}, + {0, L_13, J_13, K_13}, + + {0, F_1, D_1, E_1}, + {0, F_2, D_2, E_2}, + {0, F_3, D_3, E_3}, + {0, F_4, D_4, E_4}, + {0, F_5, D_5, E_5}, + {0, F_6, D_6, E_6}, + {0, F_7, D_7, E_7}, + {0, F_8, D_8, E_8}, + {0, F_9, D_9, E_9}, + {0, F_10, D_10, E_10}, + {0, F_11, D_11, E_11}, + {0, F_12, D_12, E_12}, + {0, F_13, D_13, E_13}, + {0, F_15, D_15, E_15}, + {0, F_16, D_16, E_16}, + {0, L_14, J_14, K_14}, + {0, L_15, J_15, K_15}, + {0, L_16, J_16, K_16}, + {1, L_1, J_1, K_1}, + + {1, C_16, A_16, B_16}, + {1, C_15, A_15, B_15}, + {1, C_14, A_14, B_14}, + {1, C_13, A_13, B_13}, + {1, C_12, A_12, B_12}, + {1, C_11, A_11, B_11}, + {1, C_10, A_10, B_10}, + {1, C_9, A_9, B_9}, + {1, C_8, A_8, B_8}, + {1, C_7, A_7, B_7}, + {1, C_6, A_6, B_6}, + {1, C_5, A_5, B_5}, + {1, C_3, A_3, B_3}, + {0, F_14, D_14, E_14}, + {1, L_3, J_3, K_3}, + {1, L_4, J_4, K_4}, + {1, L_5, J_5, K_5}, + {1, L_2, J_2, K_2}, + + {1, I_16, G_16, H_16}, + {1, I_15, G_15, H_15}, + {1, I_14, G_14, H_14}, + {1, I_13, G_13, H_13}, + {1, I_12, G_12, H_12}, + {1, I_11, G_11, H_11}, + {1, I_10, G_10, H_10}, + {1, I_9, G_9, H_9}, + {1, I_8, G_8, H_8}, + {1, I_7, G_7, H_7}, + {1, I_6, G_6, H_6}, + {1, I_5, G_5, H_5}, + {1, I_3, G_3, H_3}, + {1, I_1, G_1, H_1}, + {1, L_6, J_6, K_6}, + {1, L_7, J_7, K_7}, + {1, L_8, J_8, K_8}, + + {1, F_16, D_16, E_16}, + {1, F_15, D_15, E_15}, + {1, F_14, D_14, E_14}, + {1, F_10, D_10, E_10}, + {1, F_6, D_6, E_6}, + {1, F_5, D_5, E_5}, + {1, F_4, D_4, E_4}, + {1, F_3, D_3, E_3}, + {1, F_2, D_2, E_2}, + {1, F_1, D_1, E_1}, + {1, L_10, J_10, K_10}, + {1, L_11, J_11, K_11}, + {1, L_12, J_12, K_12}, + {1, L_9, J_9, K_9}, +}; + +#define __ NO_LED + +led_config_t g_led_config = { + { + // Key Matrix to LED Index + { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14, 15, 39, 40, 16 }, + { 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 17 }, + { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 73, 54, 55, 56, 57, 58, 18 }, + { 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, __, 72, 59, 77, 76, 74, 75, 19 }, + { 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, __, 90, 94, 91, 108, 92, 93, __ }, + { 95, 96, 97, __, __, __, 98, __, __, __, 99, 100, 101, 102, 103, 104, 105, 106, 107, __ }, + }, + { + // LED Index to Physical Position + {0,0}, {13,0}, {24,0}, {34,0}, {45,0}, {57,0}, {68,0}, {78,0}, {89,0}, {102,0}, {112,0}, {123,0}, {133,0}, {159,0}, {169,0}, {180,0}, {193,0}, {203,0}, {214,0}, {224,0}, + {0,15}, {10,15}, {21,15}, {31,15}, {42,15}, {52,15}, {63,15}, {73,15}, {83,15}, {94,15}, {104,15}, {115,15}, {125,15}, {141,15}, {159,15}, {169,15}, {180,15}, {193,15}, {203,15}, {214,15}, {224,15}, + {3,27}, {16,27}, {26,27}, {36,27}, {47,27}, {57,27}, {68,27}, {78,27}, {89,27}, {99,27}, {109,27}, {120,27}, {130,27}, {159,27}, {169,27}, {180,27}, {193,27}, {203,27}, {214,27}, + {4,40}, {18,40}, {29,40}, {39,40}, {50,40}, {60,40}, {70,40}, {81,40}, {91,40}, {102,40}, {112,40}, {123,40}, {133,40}, {147,36}, {193,40}, {203,40}, {214,40}, {224,34}, + {1,52}, {13,52}, {23,52}, {34,52}, {44,52}, {55,52}, {65,52}, {76,52}, {86,52}, {96,52}, {107,52}, {117,52}, {137,52}, {169,52}, {193,52}, {203,52}, {214,52}, + {1,64}, {14,64}, {27,64}, {66,64}, {105,64}, {118,64}, {131,64}, {145,64}, {159,64}, {169,64}, {180,64}, {198,64}, {214,64}, {224,58}, + }, + { + // RGB LED Index to Flag + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 8, 4, 4, 4, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 4, 4, 4, + 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, + 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, + } +}; + +#endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v6/iso_encoder/keymaps/default/keymap.c b/keyboards/keychron/v6/iso_encoder/keymaps/default/keymap.c new file mode 100644 index 000000000000..b07c9fc3e115 --- /dev/null +++ b/keyboards/keychron/v6/iso_encoder/keymaps/default/keymap.c @@ -0,0 +1,69 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// clang-format off + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_iso_110( + KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MUTE, KC_NO, KC_NO, RGB_MOD, KC_F13, KC_F14, KC_F15, KC_F16, + 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_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, + KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), + [MAC_FN] = LAYOUT_iso_110( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RGB_TOG, _______, _______, RGB_TOG, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + [WIN_BASE] = LAYOUT_iso_110( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MUTE, KC_PSCR, KC_NO, RGB_MOD, _______, _______, _______, _______, + 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_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), + [WIN_FN] = LAYOUT_iso_110( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_TOG, _______, _______, RGB_TOG, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][1][2] = { + [MAC_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [MAC_FN] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, + [WIN_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [WIN_FN] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI) } +}; +#endif diff --git a/keyboards/keychron/v6/iso_encoder/keymaps/default/rules.mk b/keyboards/keychron/v6/iso_encoder/keymaps/default/rules.mk new file mode 100644 index 000000000000..ee325681483f --- /dev/null +++ b/keyboards/keychron/v6/iso_encoder/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/keychron/v6/iso_encoder/keymaps/keychron/keymap.c b/keyboards/keychron/v6/iso_encoder/keymaps/keychron/keymap.c new file mode 100644 index 000000000000..72b599dd7424 --- /dev/null +++ b/keyboards/keychron/v6/iso_encoder/keymaps/keychron/keymap.c @@ -0,0 +1,80 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H +#include "keychron_common.h" + +// clang-format off + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_iso_110( + KC_ESC, 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_MUTE, KC_SNAP, KC_SIRI, RGB_MOD, KC_F13, KC_F14, KC_F15, KC_F16, + 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_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, + KC_LCTL, KC_LOPTN, KC_LCMMD, KC_SPC, KC_RCMMD, KC_ROPTN, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), + [MAC_FN] = LAYOUT_iso_110( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RGB_TOG, _______, _______, RGB_TOG, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + [WIN_BASE] = LAYOUT_iso_110( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MUTE, KC_PSCR, KC_CRTA, RGB_MOD, _______, _______, _______, _______, + 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_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), + [WIN_FN] = LAYOUT_iso_110( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_TOG, _______, _______, RGB_TOG, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][1][2] = { + [MAC_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [MAC_FN] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, + [WIN_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [WIN_FN] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI) } +}; +#endif // ENCODER_MAP_ENABLE + +// clang-format on + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (!process_record_keychron(keycode, record)) { + return false; + } + return true; +} + +void housekeeping_task_user(void) { + housekeeping_task_keychron(); +} diff --git a/keyboards/keychron/v6/iso_encoder/keymaps/keychron/rules.mk b/keyboards/keychron/v6/iso_encoder/keymaps/keychron/rules.mk new file mode 100644 index 000000000000..9cf1a9b56cba --- /dev/null +++ b/keyboards/keychron/v6/iso_encoder/keymaps/keychron/rules.mk @@ -0,0 +1,5 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes + +VPATH += keyboards/keychron/common +SRC += keychron_common.c diff --git a/keyboards/keychron/v6/iso_encoder/keymaps/via/keymap.c b/keyboards/keychron/v6/iso_encoder/keymaps/via/keymap.c new file mode 100644 index 000000000000..b07c9fc3e115 --- /dev/null +++ b/keyboards/keychron/v6/iso_encoder/keymaps/via/keymap.c @@ -0,0 +1,69 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// clang-format off + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_iso_110( + KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MUTE, KC_NO, KC_NO, RGB_MOD, KC_F13, KC_F14, KC_F15, KC_F16, + 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_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, + KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), + [MAC_FN] = LAYOUT_iso_110( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RGB_TOG, _______, _______, RGB_TOG, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + [WIN_BASE] = LAYOUT_iso_110( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MUTE, KC_PSCR, KC_NO, RGB_MOD, _______, _______, _______, _______, + 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_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), + [WIN_FN] = LAYOUT_iso_110( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_TOG, _______, _______, RGB_TOG, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][1][2] = { + [MAC_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [MAC_FN] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, + [WIN_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [WIN_FN] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI) } +}; +#endif diff --git a/keyboards/keychron/v6/iso_encoder/keymaps/via/rules.mk b/keyboards/keychron/v6/iso_encoder/keymaps/via/rules.mk new file mode 100644 index 000000000000..f1adcab005e8 --- /dev/null +++ b/keyboards/keychron/v6/iso_encoder/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/keychron/v6/iso_encoder/rules.mk b/keyboards/keychron/v6/iso_encoder/rules.mk new file mode 100644 index 000000000000..f76ec9b08d5e --- /dev/null +++ b/keyboards/keychron/v6/iso_encoder/rules.mk @@ -0,0 +1,27 @@ +# 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 USB 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 # Enable Encoder +DIP_SWITCH_ENABLE = yes +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = CKLED2001 +EEPROM_DRIVER = wear_leveling +WEAR_LEVELING_DRIVER = embedded_flash + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE + +# custom matrix setup +CUSTOM_MATRIX = lite + +VPATH ?= keyboards/keychron/common +SRC += matrix.c diff --git a/keyboards/keychron/v6/matrix.c b/keyboards/keychron/v6/matrix.c new file mode 100644 index 000000000000..9269fed8d669 --- /dev/null +++ b/keyboards/keychron/v6/matrix.c @@ -0,0 +1,215 @@ +/* Copyright 2022 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "matrix.h" +#include "quantum.h" + +#ifndef PIN_USED_74HC595 +# define PIN_USED_74HC595 8 +#endif +#ifndef PIN_START_74HC595 +# define PIN_START_74HC595 8 +#endif + +#ifdef MATRIX_ROW_PINS +static pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; +#endif // MATRIX_ROW_PINS +#ifdef MATRIX_COL_PINS +static pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; +#endif // MATRIX_COL_PINS + +#define ROWS_PER_HAND (MATRIX_ROWS) + +static inline void setPinOutput_writeLow(pin_t pin) { + ATOMIC_BLOCK_FORCEON { + setPinOutput(pin); + writePinLow(pin); + } +} + +static inline void setPinOutput_writeHigh(pin_t pin) { + ATOMIC_BLOCK_FORCEON { + setPinOutput(pin); + writePinHigh(pin); + } +} + +static inline void setPinInputHigh_atomic(pin_t pin) { + ATOMIC_BLOCK_FORCEON { + setPinInputHigh(pin); + } +} + +static inline uint8_t readMatrixPin(pin_t pin) { + if (pin != NO_PIN) { + return readPin(pin); + } else { + return 1; + } +} + +void small_delay(volatile uint8_t timeout) { + while (timeout--); +} + +static void shiftOut(uint16_t dataOut) { + ATOMIC_BLOCK_FORCEON { + for (uint8_t i = 0; i < PIN_USED_74HC595; i++) { + if (dataOut & 0x1) { + writePinHigh(DATA_PIN_74HC595); + } else { + writePinLow(DATA_PIN_74HC595); + } + dataOut = dataOut >> 1; + writePinHigh(CLOCK_PIN_74HC595); + small_delay(2); + writePinLow(CLOCK_PIN_74HC595); + } + writePinHigh(LATCH_PIN_74HC595); + small_delay(2); + writePinLow(LATCH_PIN_74HC595); + } +} + +static void shiftOut_single(uint8_t data) { + ATOMIC_BLOCK_FORCEON { + if (data & 0x1) { + writePinHigh(DATA_PIN_74HC595); + } else { + writePinLow(DATA_PIN_74HC595); + } + writePinHigh(CLOCK_PIN_74HC595); + small_delay(2); + writePinLow(CLOCK_PIN_74HC595); + writePinHigh(LATCH_PIN_74HC595); + small_delay(2); + writePinLow(LATCH_PIN_74HC595); + } +} + +static bool select_col(uint8_t col) { + pin_t pin = col_pins[col]; + + if (pin != NO_PIN) { + setPinOutput_writeLow(pin); + return true; + } else { + if (col == PIN_START_74HC595) { + shiftOut_single(0x00); + } + return true; + } + return false; +} + +static void unselect_col(uint8_t col) { + pin_t pin = col_pins[col]; + + if (pin != NO_PIN) { +#ifdef MATRIX_UNSELECT_DRIVE_HIGH + setPinOutput_writeHigh(pin); +#else + setPinInputHigh_atomic(pin); +#endif + } else { + shiftOut_single(0x01); + } +} + +static void unselect_cols(void) { + // unselect column pins + for (uint8_t x = 0; x < MATRIX_COLS; x++) { + pin_t pin = col_pins[x]; + + if (pin != NO_PIN) { +#ifdef MATRIX_UNSELECT_DRIVE_HIGH + setPinOutput_writeHigh(pin); +#else + setPinInputHigh_atomic(pin); +#endif + } + if (x == PIN_START_74HC595) + // unselect Shift Register + shiftOut(0xFFFF); + } +} + +static void matrix_init_pins(void) { + setPinOutput(DATA_PIN_74HC595); + setPinOutput(CLOCK_PIN_74HC595); + setPinOutput(LATCH_PIN_74HC595); +#ifdef MATRIX_UNSELECT_DRIVE_HIGH + for (uint8_t x = 0; x < MATRIX_COLS; x++) { + if (col_pins[x] != NO_PIN) { + setPinOutput(col_pins[x]); + } + } +#endif + unselect_cols(); + for (uint8_t x = 0; x < MATRIX_ROWS; x++) { + if (row_pins[x] != NO_PIN) { + setPinInputHigh_atomic(row_pins[x]); + } + } +} + +static void matrix_read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col, matrix_row_t row_shifter) { + bool key_pressed = false; + + // Select col + if (!select_col(current_col)) { // select col + return; // skip NO_PIN col + } + + matrix_output_select_delay(); + + // For each row... + for (uint8_t row_index = 0; row_index < ROWS_PER_HAND; row_index++) { + // Check row pin state + if (readMatrixPin(row_pins[row_index]) == 0) { + // Pin LO, set col bit + current_matrix[row_index] |= row_shifter; + key_pressed = true; + } else { + // Pin HI, clear col bit + current_matrix[row_index] &= ~row_shifter; + } + } + + // Unselect col + unselect_col(current_col); + matrix_output_unselect_delay(current_col, key_pressed); // wait for all Row signals to go HIGH +} + +void matrix_init_custom(void) { + // initialize key pins + matrix_init_pins(); +} + +bool matrix_scan_custom(matrix_row_t current_matrix[]) { + matrix_row_t curr_matrix[MATRIX_ROWS] = {0}; + + // Set col, read rows + matrix_row_t row_shifter = MATRIX_ROW_SHIFTER; + for (uint8_t current_col = 0; current_col < MATRIX_COLS; current_col++, row_shifter <<= 1) { + matrix_read_rows_on_col(curr_matrix, current_col, row_shifter); + } + + bool changed = memcmp(current_matrix, curr_matrix, sizeof(curr_matrix)) != 0; + if (changed) memcpy(current_matrix, curr_matrix, sizeof(curr_matrix)); + + return changed; +} diff --git a/keyboards/keychron/v6/mcuconf.h b/keyboards/keychron/v6/mcuconf.h new file mode 100644 index 000000000000..ea7ac022d7cb --- /dev/null +++ b/keyboards/keychron/v6/mcuconf.h @@ -0,0 +1,20 @@ +/* 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_next + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/keychron/v6/readme.md b/keyboards/keychron/v6/readme.md new file mode 100644 index 000000000000..d8a68846bd85 --- /dev/null +++ b/keyboards/keychron/v6/readme.md @@ -0,0 +1,19 @@ +# Keychron V6 + +A customizable 100% keyboard. + +* Keyboard Maintainer: [Keychron](https://github.com/keychron) +* Hardware Supported: Keychron V6 +* Hardware Availability: [Keychron](https://www.keychron.com) + +Make example for this keyboard (after setting up your build environment): + + make keychron/v6/v6_ansi_stm32l432:default + +Flashing example for this keyboard: + + make keychron/v6/v6_ansi_stm32l432:flash + +**Reset Key**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/keychron/v6/v6.c b/keyboards/keychron/v6/v6.c new file mode 100644 index 000000000000..02708e7bc139 --- /dev/null +++ b/keyboards/keychron/v6/v6.c @@ -0,0 +1,114 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +const matrix_row_t matrix_mask[] = { + 0b11111111111111111111, + 0b11111111111111111111, + 0b11111111111111111111, + 0b11111111111111111111, + 0b11111111111111111111, + 0b11111111111111101111, +}; + +#ifdef DIP_SWITCH_ENABLE + +bool dip_switch_update_kb(uint8_t index, bool active) { + if (!dip_switch_update_user(index, active)) { + return false; + } + if (index == 0) { +# if defined(OS_SWITCH_REVERT) + default_layer_set(1UL << (!active ? 2 : 0)); +# else + default_layer_set(1UL << (active ? 2 : 0)); +# endif + } + return true; +} + +#endif // DIP_SWITCH_ENABLE + +#if defined(RGB_MATRIX_ENABLE) && (defined(CAPS_LOCK_LED_INDEX) || defined(NUM_LOCK_LED_INDEX)) + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (!process_record_user(keycode, record)) { + return false; + } + switch (keycode) { + case RGB_TOG: + if (record->event.pressed) { + switch (rgb_matrix_get_flags()) { + case LED_FLAG_ALL: { + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_set_color_all(0, 0, 0); + } break; + default: { + rgb_matrix_set_flags(LED_FLAG_ALL); + } break; + } + } + if (!rgb_matrix_is_enabled()) { + rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_enable(); + } + return false; + } + return true; +} + +bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { + if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) { + return false; + } + // RGB_MATRIX_INDICATOR_SET_COLOR(index, red, green, blue); +# if defined(CAPS_LOCK_LED_INDEX) + if (host_keyboard_led_state().caps_lock) { + RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_LED_INDEX, 255, 255, 255); + } else { + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_LED_INDEX, 0, 0, 0); + } + } +# endif // CAPS_LOCK_LED_INDEX +# if defined(NUM_LOCK_LED_INDEX) + if (host_keyboard_led_state().num_lock) { + RGB_MATRIX_INDICATOR_SET_COLOR(NUM_LOCK_LED_INDEX, 255, 255, 255); + } else { + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(NUM_LOCK_LED_INDEX, 0, 0, 0); + } + } +# endif // NUM_LOCK_LED_INDEX + return true; +} + +#endif // RGB_MATRIX_ENABLE... + +#ifdef ENCODER_ENABLE +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + if (index == 0) { + if (clockwise) { + tap_code_delay(KC_VOLU, 10); + } else { + tap_code_delay(KC_VOLD, 10); + } + } + return true; +} +#endif From 8e9d109b8c9b1caeea38dbafdfda20e1e79b2d58 Mon Sep 17 00:00:00 2001 From: Kassandra Karan <87594618+SpaceyKasey@users.noreply.github.com> Date: Thu, 2 Feb 2023 19:14:54 -0500 Subject: [PATCH 128/139] Added MacOS Support for BigKnob (#19693) --- .../bigknob/keymaps/macos/keymap.c | 42 +++++++++++++++++++ .../bigknob/keymaps/macos/readme.md | 6 +++ 2 files changed, 48 insertions(+) create mode 100644 keyboards/leafcutterlabs/bigknob/keymaps/macos/keymap.c create mode 100644 keyboards/leafcutterlabs/bigknob/keymaps/macos/readme.md diff --git a/keyboards/leafcutterlabs/bigknob/keymaps/macos/keymap.c b/keyboards/leafcutterlabs/bigknob/keymaps/macos/keymap.c new file mode 100644 index 000000000000..7f75aa71212d --- /dev/null +++ b/keyboards/leafcutterlabs/bigknob/keymaps/macos/keymap.c @@ -0,0 +1,42 @@ +/* Copyright 2021 Craig Gardner + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + /* + Modifications 1/2023 by Kassandra Karan for MacOS support + * Changed Volume up and down to mac scan codes + * MacOS doesnt support Stop, so changed default to spotlight search + */ + +#include QMK_KEYBOARD_H + +enum layers { _MAIN }; + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + if (clockwise) { + tap_code(KC_KB_VOLUME_UP); // MacOS Volume Up + } else { + tap_code(KC_KB_VOLUME_DOWN); // MacOS Volume Down + } + } + return false; +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //button closest to USB is first + [_MAIN] = LAYOUT( + KC_MUTE, KC_MEDIA_PREV_TRACK, KC_MEDIA_PLAY_PAUSE, G(KC_SPC), KC_MNXT + ) +}; diff --git a/keyboards/leafcutterlabs/bigknob/keymaps/macos/readme.md b/keyboards/leafcutterlabs/bigknob/keymaps/macos/readme.md new file mode 100644 index 000000000000..2f613042d387 --- /dev/null +++ b/keyboards/leafcutterlabs/bigknob/keymaps/macos/readme.md @@ -0,0 +1,6 @@ +# MacOS BigKnob Layout + +This is a modification to the BigKnob to support MacOS. The QMK configurator does not +support rotary encoders, so this changes the key codes to the Apple volume control +codes. This also changes the 3rd key from stop, which MacOS does not support, to +spotlight search. From 87c41527388fc3da129fe404366bbd12faf626b5 Mon Sep 17 00:00:00 2001 From: Albert Y <76888457+filterpaper@users.noreply.github.com> Date: Fri, 3 Feb 2023 08:17:05 +0800 Subject: [PATCH 129/139] Update handedness by define examples (#19687) --- docs/feature_split_keyboard.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/feature_split_keyboard.md b/docs/feature_split_keyboard.md index fff72f71f3ad..616124004c71 100644 --- a/docs/feature_split_keyboard.md +++ b/docs/feature_split_keyboard.md @@ -158,21 +158,22 @@ This setting is not changed when re-initializing the EEPROM using the `EE_CLR` k You can find the `EEPROM` files in the QMK firmware repo, [here](https://github.com/qmk/qmk_firmware/tree/master/quantum/split_common). + #### Handedness by `#define` -You can set the handedness at compile time. This is done by adding the following to your `config.h` file: +You can use this option when USB cable is always connected to just one side of the split keyboard. +If the USB cable is always connected to the right side, add the following to your `config.h` file and flash both sides with this option: ```c #define MASTER_RIGHT ``` -or - +If the USB cable is always connected to the left side, add the following to your `config.h` file and flash both sides with this option: ```c #define MASTER_LEFT ``` -If neither are defined, the handedness defaults to `MASTER_LEFT`. +?> If neither options are defined, the handedness defaults to `MASTER_LEFT`. ### Communication Options From c3406eb8d71399f6232a07cb5354c343f23805dd Mon Sep 17 00:00:00 2001 From: zhol0777 <97376918+zhol0777@users.noreply.github.com> Date: Thu, 2 Feb 2023 17:00:38 -0800 Subject: [PATCH 130/139] [Keyboard] Add mkh studio bully (#19696) --- keyboards/mkh_studio/bully/config.h | 9 +++ keyboards/mkh_studio/bully/info.json | 75 +++++++++++++++++++ .../mkh_studio/bully/keymaps/default/keymap.c | 25 +++++++ .../mkh_studio/bully/keymaps/via/keymap.c | 25 +++++++ .../mkh_studio/bully/keymaps/via/rules.mk | 1 + keyboards/mkh_studio/bully/readme.md | 23 ++++++ keyboards/mkh_studio/bully/rules.mk | 2 + 7 files changed, 160 insertions(+) create mode 100644 keyboards/mkh_studio/bully/config.h create mode 100644 keyboards/mkh_studio/bully/info.json create mode 100644 keyboards/mkh_studio/bully/keymaps/default/keymap.c create mode 100644 keyboards/mkh_studio/bully/keymaps/via/keymap.c create mode 100644 keyboards/mkh_studio/bully/keymaps/via/rules.mk create mode 100644 keyboards/mkh_studio/bully/readme.md create mode 100644 keyboards/mkh_studio/bully/rules.mk diff --git a/keyboards/mkh_studio/bully/config.h b/keyboards/mkh_studio/bully/config.h new file mode 100644 index 000000000000..53958accae15 --- /dev/null +++ b/keyboards/mkh_studio/bully/config.h @@ -0,0 +1,9 @@ +// Copyright 2022 zhol +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* 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/mkh_studio/bully/info.json b/keyboards/mkh_studio/bully/info.json new file mode 100644 index 000000000000..3615b4893f27 --- /dev/null +++ b/keyboards/mkh_studio/bully/info.json @@ -0,0 +1,75 @@ +{ + "keyboard_name": "bully", + "manufacturer": "mkh studio", + "maintainer": "zhol0777", + "processor": "STM32F072", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["B0", "A7", "A6", "A5", "A4", "A2", "B7", "B6", "B5", "B4", "B3", "A15"], + "rows": ["B10", "B11", "B1", "B2"] + }, + "usb": { + "vid": "0x0777", + "pid": "0x0001", + "device_version": "1.0.0" + }, + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "matrix": [0, 0], "w": 1.5, "x": 0.0, "y": 0.0 }, + { "matrix": [0, 1], "x": 1.5, "y": 0.0 }, + { "matrix": [0, 2], "x": 2.5, "y": 0.0 }, + { "matrix": [0, 3], "x": 3.5, "y": 0.0 }, + { "matrix": [0, 4], "x": 4.5, "y": 0.0 }, + { "matrix": [0, 5], "x": 5.5, "y": 0.0 }, + { "matrix": [0, 6], "x": 6.5, "y": 0.0 }, + { "matrix": [0, 7], "x": 7.5, "y": 0.0 }, + { "matrix": [0, 8], "x": 8.5, "y": 0.0 }, + { "matrix": [0, 9], "x": 9.5, "y": 0.0 }, + { "matrix": [0, 10], "x": 10.5, "y": 0.0 }, + { "matrix": [0, 11], "x": 11.5, "y": 0.0 }, + { "matrix": [3, 11], "x": 12.5, "y": 0.0 }, + { "matrix": [1, 0], "w": 1.75, "x": 0.0, "y": 1.0 }, + { "matrix": [1, 1], "x": 1.75, "y": 1.0 }, + { "matrix": [1, 2], "x": 2.75, "y": 1.0 }, + { "matrix": [1, 3], "x": 3.75, "y": 1.0 }, + { "matrix": [1, 4], "x": 4.75, "y": 1.0 }, + { "matrix": [1, 5], "x": 5.75, "y": 1.0 }, + { "matrix": [1, 6], "x": 6.75, "y": 1.0 }, + { "matrix": [1, 7], "x": 7.75, "y": 1.0 }, + { "matrix": [1, 8], "x": 8.75, "y": 1.0 }, + { "matrix": [1, 9], "x": 9.75, "y": 1.0 }, + { "matrix": [1, 10], "x": 10.75, "y": 1.0 }, + { "matrix": [1, 11], "w": 1.75, "x": 11.75, "y": 1.0 }, + { "matrix": [2, 0], "w": 2.25, "x": 0.0, "y": 2.0 }, + { "matrix": [2, 1], "x": 2.25, "y": 2.0 }, + { "matrix": [2, 2], "x": 3.25, "y": 2.0 }, + { "matrix": [2, 3], "x": 4.25, "y": 2.0 }, + { "matrix": [2, 4], "x": 5.25, "y": 2.0 }, + { "matrix": [2, 5], "x": 6.25, "y": 2.0 }, + { "matrix": [2, 6], "x": 7.25, "y": 2.0 }, + { "matrix": [2, 7], "x": 8.25, "y": 2.0 }, + { "matrix": [2, 8], "x": 9.25, "y": 2.0 }, + { "matrix": [2, 9], "x": 10.25, "y": 2.0 }, + { "matrix": [2, 10], "x": 11.25, "y": 2.0 }, + { "matrix": [2, 11], "w": 1.25, "x": 12.25, "y": 2.0 }, + { "matrix": [3, 0], "w": 1.25, "x": 0.0, "y": 3.0 }, + { "matrix": [3, 1], "w": 1.25, "x": 1.25, "y": 3.0 }, + { "matrix": [3, 2], "w": 1.25, "x": 2.5, "y": 3.0 }, + { "matrix": [3, 3], "w": 3, "x": 3.75, "y": 3.0, "h": 0.5 }, + { "matrix": [3, 5], "w": 6, "x": 3.75, "y": 3.5, "h": 0.5 }, + { "matrix": [3, 6], "w": 3, "x": 6.75, "y": 3.0, "h": 0.5 }, + { "matrix": [3, 8], "w": 1.25, "x": 9.75, "y": 3.0 }, + { "matrix": [3, 9], "w": 1.25, "x": 11, "y": 3.0 }, + { "matrix": [3, 10], "w": 1.25, "x": 12.25, "y": 3.0 } + ] + } + } +} diff --git a/keyboards/mkh_studio/bully/keymaps/default/keymap.c b/keyboards/mkh_studio/bully/keymaps/default/keymap.c new file mode 100644 index 000000000000..a5d25185e10b --- /dev/null +++ b/keyboards/mkh_studio/bully/keymaps/default/keymap.c @@ -0,0 +1,25 @@ +// Copyright 2022 zhol +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + 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_BSPC, + LT(2, 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_LCTL, KC_LGUI, KC_LALT, LT(1, KC_SPC), KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL + ), + [1] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, QK_BOOT, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSLS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, LT(2, KC_SPC), KC_HOME, KC_PGDN, KC_END + ), + [2] = LAYOUT( + KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_PGUP, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/mkh_studio/bully/keymaps/via/keymap.c b/keyboards/mkh_studio/bully/keymaps/via/keymap.c new file mode 100644 index 000000000000..a5d25185e10b --- /dev/null +++ b/keyboards/mkh_studio/bully/keymaps/via/keymap.c @@ -0,0 +1,25 @@ +// Copyright 2022 zhol +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + 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_BSPC, + LT(2, 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_LCTL, KC_LGUI, KC_LALT, LT(1, KC_SPC), KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL + ), + [1] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, QK_BOOT, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSLS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, LT(2, KC_SPC), KC_HOME, KC_PGDN, KC_END + ), + [2] = LAYOUT( + KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_PGUP, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/mkh_studio/bully/keymaps/via/rules.mk b/keyboards/mkh_studio/bully/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/mkh_studio/bully/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/mkh_studio/bully/readme.md b/keyboards/mkh_studio/bully/readme.md new file mode 100644 index 000000000000..ab8ccb7500d3 --- /dev/null +++ b/keyboards/mkh_studio/bully/readme.md @@ -0,0 +1,23 @@ +# mkh bully + +* Keyboard Maintainer: [zhol0777](https://github.com/zhol0777) +* Hardware Supported: APM32F072 +* Hardware Availability: [Coffee Break Keyboards](https://cbkbd.com/) + +Make example for this keyboard (after setting up your build environment): + + make mkh_studio/bully:default + +Flashing example for this keyboard: + + make mkh_studio/bully: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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/mkh_studio/bully/rules.mk b/keyboards/mkh_studio/bully/rules.mk new file mode 100644 index 000000000000..10a3d3bfb41e --- /dev/null +++ b/keyboards/mkh_studio/bully/rules.mk @@ -0,0 +1,2 @@ +DFU_SUFFIX_ARGS = -p FFFF -v FFFF # allow for APM32 MCU +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE From 4d09bfa076e5850ab311852cc51db624a9bd7183 Mon Sep 17 00:00:00 2001 From: nendezkombet <82454371+nendezkombet@users.noreply.github.com> Date: Fri, 3 Feb 2023 09:04:47 +0700 Subject: [PATCH 131/139] [Keyboard] Add keebformom ortho 4x10 (#18104) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: jack <0x6a73@protonmail.com> --- keyboards/keebformom/config.h | 60 +++++++++ keyboards/keebformom/info.json | 60 +++++++++ keyboards/keebformom/keebformom.c | 17 +++ keyboards/keebformom/keebformom.h | 40 ++++++ keyboards/keebformom/keymaps/default/config.h | 19 +++ keyboards/keebformom/keymaps/default/keymap.c | 117 ++++++++++++++++++ .../keebformom/keymaps/default/readme.md | 1 + keyboards/keebformom/keymaps/default/rules.mk | 1 + keyboards/keebformom/readme.md | 27 ++++ keyboards/keebformom/rules.mk | 15 +++ 10 files changed, 357 insertions(+) create mode 100644 keyboards/keebformom/config.h create mode 100644 keyboards/keebformom/info.json create mode 100644 keyboards/keebformom/keebformom.c create mode 100644 keyboards/keebformom/keebformom.h create mode 100644 keyboards/keebformom/keymaps/default/config.h create mode 100644 keyboards/keebformom/keymaps/default/keymap.c create mode 100644 keyboards/keebformom/keymaps/default/readme.md create mode 100644 keyboards/keebformom/keymaps/default/rules.mk create mode 100644 keyboards/keebformom/readme.md create mode 100644 keyboards/keebformom/rules.mk diff --git a/keyboards/keebformom/config.h b/keyboards/keebformom/config.h new file mode 100644 index 000000000000..e64802e8e461 --- /dev/null +++ b/keyboards/keebformom/config.h @@ -0,0 +1,60 @@ +/* Copyright 2022 Sandipratama + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +/* KFM PCB default pin-out */ +#define MATRIX_ROW_PINS { F5, F6, F7, B1 } +#define MATRIX_COL_PINS { B3, B2, D1, D0, D4, C6, D7, E6, B4, B5 } + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +#define RGB_DI_PIN F4 +#ifdef RGB_DI_PIN +#define RGBLED_NUM 40 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#define RGBLIGHT_LIMIT_VAL 150 /* The maximum brightness level */ +#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +# define RGBLIGHT_EFFECT_BREATHING +# define RGBLIGHT_EFFECT_RAINBOW_MOOD +# define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT diff --git a/keyboards/keebformom/info.json b/keyboards/keebformom/info.json new file mode 100644 index 000000000000..5d9c9b6515c4 --- /dev/null +++ b/keyboards/keebformom/info.json @@ -0,0 +1,60 @@ +{ + "keyboard_name": "Keeb For Mom", + "url": "", + "maintainer": "qmk", + "manufacturer": "nendezkombet/sandipratama", + "usb": { + "vid": "0x458F", + "pid": "0x14E2", + "device_version": "1.0.0" + }, + "processor": "atmega32u4", + "bootloader": "caterina", + "layouts": { + "LAYOUT_ortho_4x10": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":0, "y":1}, + {"x":1, "y":1}, + {"x":2, "y":1}, + {"x":3, "y":1}, + {"x":4, "y":1}, + {"x":5, "y":1}, + {"x":6, "y":1}, + {"x":7, "y":1}, + {"x":8, "y":1}, + {"x":9, "y":1}, + {"x":0, "y":2}, + {"x":1, "y":2}, + {"x":2, "y":2}, + {"x":3, "y":2}, + {"x":4, "y":2}, + {"x":5, "y":2}, + {"x":6, "y":2}, + {"x":7, "y":2}, + {"x":8, "y":2}, + {"x":9, "y":2}, + {"x":0, "y":3}, + {"x":1, "y":3}, + {"x":2, "y":3}, + {"x":3, "y":3}, + {"x":4, "y":3}, + {"x":5, "y":3}, + {"x":6, "y":3}, + {"x":7, "y":3}, + {"x":8, "y":3}, + {"x":9, "y":3} + + ] + } + } +} diff --git a/keyboards/keebformom/keebformom.c b/keyboards/keebformom/keebformom.c new file mode 100644 index 000000000000..18de3af9ef54 --- /dev/null +++ b/keyboards/keebformom/keebformom.c @@ -0,0 +1,17 @@ +/* Copyright 2022 Sandipratama + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "keebformom.h" \ No newline at end of file diff --git a/keyboards/keebformom/keebformom.h b/keyboards/keebformom/keebformom.h new file mode 100644 index 000000000000..88830e8aefe1 --- /dev/null +++ b/keyboards/keebformom/keebformom.h @@ -0,0 +1,40 @@ +/* Copyright 2022 Sandipratama + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT_ortho_4x10( \ + 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 \ +) \ +{ \ + { 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 } \ +} diff --git a/keyboards/keebformom/keymaps/default/config.h b/keyboards/keebformom/keymaps/default/config.h new file mode 100644 index 000000000000..2c89e9373912 --- /dev/null +++ b/keyboards/keebformom/keymaps/default/config.h @@ -0,0 +1,19 @@ +/* Copyright 2022 Sandipratama + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#define COMBO_COUNT 7 diff --git a/keyboards/keebformom/keymaps/default/keymap.c b/keyboards/keebformom/keymaps/default/keymap.c new file mode 100644 index 000000000000..1c8180edccc2 --- /dev/null +++ b/keyboards/keebformom/keymaps/default/keymap.c @@ -0,0 +1,117 @@ +/* Copyright 2022 Sandipratama + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 { + _FIRST = 0, + _SECOND, + _THIRD, + _FOURTH +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* FIRST + * ,---------------------------------------------------------------------. + * | Q (ESC) W | E | R | T | Y | U | I | O(DEL) P | + * |------+------+------+------+------+------+------+------+------+------| + * | A (TAB) S | D | F | G(TO 1)H | J | K | L(CAPS);: | + * |------+------+------+------+------+------+------+------+------+------| + * | Z | X | C | V | B(TO 2)N | M | ,< | .>(TO3)/? | + * |------+------+------+------+------+------+------+------+------+------| + * | CTRL | ALT | SHIFT| L2 |ENTER | SPACE| L1 | MUTE | PLAY | BSPC | + * `---------------------------------------------------------------------' + */ +[_FIRST] = LAYOUT_ortho_4x10( + 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_LCTL, KC_LALT, KC_LSFT, MO(1), KC_ENT, KC_SPC, MO(2), KC_MUTE, KC_MPLY, KC_BSPC +), +/* SECOND + * ,---------------------------------------------------------------------. + * | ! | @ | { | } | ' | " | - | 7 | 8 | 9 | + * |------+------+------+------+------+-------------+------+------+------| + * | # | $ | ( | ) | ^ | _ | + | 4 | 5 | 6 | + * |------+------+------+------+------+------+------+------+------+------| + * | % | & | [ | ] | * | | | 1 | 2 | 3 | + * |------+------+------+------+------+------+------+------+------+------| + * | BASE | | \ | | | | | | = | 0 | BSPC | + * `---------------------------------------------------------------------' + */ + +[_SECOND] = LAYOUT_ortho_4x10( + KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_QUOT, KC_DQT, KC_PLUS, KC_7, KC_8, KC_9, + KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_CIRC, KC_UNDS, KC_MINS, KC_4, KC_5, KC_6, + KC_PERC, KC_AMPR, KC_LBRC, KC_RBRC, KC_ASTR, _______, _______, KC_1, KC_2, KC_3, + TO(0), _______, KC_BSLS, KC_PIPE, _______, _______, _______, KC_EQL, KC_0, KC_BSPC +), + +/* THIRD + * ,---------------------------------------------------------------------. + * | INS | HOME | PGUP | | CAPT |SELECT| | | UP | | + * |------+------+------+------+------+-------------+------+------+------| + * | DEL | END | PGDN | | SAVE | COPY | | LEFT | DOWN | RGHT | + * |------+------+------+------+------+------+------+------+------+------| + * | | | | | MYCMP| PASTE| | | | | + * |------+------+------+------+------+------+------+------+------+------| + * | BASE | | | | | | | VOLD | | VOLU | + * `---------------------------------------------------------------------' + */ +[_THIRD] = LAYOUT_ortho_4x10( + KC_INS, KC_HOME, KC_PGUP, KC_NO, SGUI(KC_S), LCTL(KC_A), KC_NO, KC_NO, KC_UP, KC_NO, + KC_DEL, KC_END, KC_PGDN, KC_NO, LCTL(KC_S), LCTL(KC_C), KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, + KC_NO, KC_NO, KC_NO, KC_NO, LWIN(KC_E), LCTL(KC_V), KC_NO, KC_NO, KC_NO, KC_NO, + TO(0), _______, _______, _______, _______, _______, _______, KC_VOLD, _______, KC_VOLU +), +/* FOURTH + * ,---------------------------------------------------------------------. + * |RGB M+| HUD | HUI | | F1 | F2 | F3 | F4 | F5 | F6 | + * |------+------+------+------+------+-------------+------+------+------| + * |RGB M-| SAD | SAI | | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+------+------+------+------+------+------+------+------+------| + * |RGB TG| VAD | VAI | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------| + * | BASE | | | | | | | | | | + * `---------------------------------------------------------------------' + */ +[_FOURTH] = LAYOUT_ortho_4x10( + RGB_MOD, RGB_HUD, RGB_HUI, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + RGB_RMOD,RGB_SAD, RGB_SAI, KC_NO, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + RGB_TOG, RGB_VAD, RGB_VAI, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + TO(0), _______, _______, _______, _______, _______, _______, _______, _______, _______ +) +}; + +// Combo key +const uint16_t PROGMEM test_combo1[] = {KC_Q, KC_W, COMBO_END}; +const uint16_t PROGMEM test_combo2[] = {KC_MPLY, KC_BSPC, COMBO_END}; +const uint16_t PROGMEM test_combo3[] = {KC_L, KC_SCLN, COMBO_END}; +const uint16_t PROGMEM test_combo4[] = {KC_A, KC_S, COMBO_END}; +const uint16_t PROGMEM test_combo5[] = {KC_G, KC_H, COMBO_END}; +const uint16_t PROGMEM test_combo6[] = {KC_B, KC_N, COMBO_END}; +const uint16_t PROGMEM test_combo7[] = {KC_O, KC_P, COMBO_END}; +combo_t key_combos[COMBO_COUNT] = { + COMBO(test_combo1, KC_ESC), + COMBO(test_combo2, TO(3)), + COMBO(test_combo3, KC_CAPS), + COMBO(test_combo4, KC_TAB), + COMBO(test_combo5, TO(1)), + COMBO(test_combo6, TO(2)), + COMBO(test_combo7, KC_DEL), +}; diff --git a/keyboards/keebformom/keymaps/default/readme.md b/keyboards/keebformom/keymaps/default/readme.md new file mode 100644 index 000000000000..93a6ead3ea15 --- /dev/null +++ b/keyboards/keebformom/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for Keeb For Mom diff --git a/keyboards/keebformom/keymaps/default/rules.mk b/keyboards/keebformom/keymaps/default/rules.mk new file mode 100644 index 000000000000..ab1e438182a3 --- /dev/null +++ b/keyboards/keebformom/keymaps/default/rules.mk @@ -0,0 +1 @@ +COMBO_ENABLE = yes diff --git a/keyboards/keebformom/readme.md b/keyboards/keebformom/readme.md new file mode 100644 index 000000000000..88f407908a77 --- /dev/null +++ b/keyboards/keebformom/readme.md @@ -0,0 +1,27 @@ +# Keeb For Mom + +![KeebForMom](https://i.imgur.com/MvBatHSh.jpg) + +KFM is a low cost 4x5 modular mechanical keyboard that everyone can build. Modular it's mean two PCBs can be combined become one 40% keyboard, so you can use the PCB board as single 4x5 macro pad or 4x10 ortholinier mechanical keyboard. The PCB board has some feature like south facing switches orientation, RGB perkey and passive buzzer supported which can be used as layer indicator. + +* Keyboard Maintainer: [sandipratama](https://github.com/nendezkombet) +* Hardware Supported: KFM PCB +* Hardware Availability: https://github.com/nendezkombet/Keeb-For-Mom + +Make example for this keyboard (after setting up your build environment): + + make keebformom:default + +Flashing example for this keyboard: + + make keebformom:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/keebformom/rules.mk b/keyboards/keebformom/rules.mk new file mode 100644 index 000000000000..50c95c8bbde7 --- /dev/null +++ b/keyboards/keebformom/rules.mk @@ -0,0 +1,15 @@ +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # 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 +LTO_ENABLE = yes +NO_USB_STARTUP_CHECK = yes +LAYOUTS = ortho_4x10 From 17409dad542fa0dfd0ea966769264e718f950630 Mon Sep 17 00:00:00 2001 From: QMK Bot Date: Thu, 2 Feb 2023 18:14:26 -0800 Subject: [PATCH 132/139] Format code according to conventions (#19739) --- keyboards/keebformom/keymaps/default/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/keebformom/keymaps/default/readme.md b/keyboards/keebformom/keymaps/default/readme.md index 93a6ead3ea15..a6d199a4b740 100644 --- a/keyboards/keebformom/keymaps/default/readme.md +++ b/keyboards/keebformom/keymaps/default/readme.md @@ -1 +1 @@ -# The default keymap for Keeb For Mom +# The default keymap for Keeb For Mom From 3dae56b634e610ce72fdcb9bd3bff2dda330b83e Mon Sep 17 00:00:00 2001 From: Juno Nguyen Date: Mon, 6 Feb 2023 04:49:25 +0800 Subject: [PATCH 133/139] [Keyboard] Add Brick (#19728) --- keyboards/brick/brick.c | 31 ++++++++++ keyboards/brick/brick.h | 60 +++++++++++++++++++ keyboards/brick/config.h | 44 ++++++++++++++ keyboards/brick/info.json | 25 ++++++++ keyboards/brick/keymaps/default/keymap.c | 74 ++++++++++++++++++++++++ keyboards/brick/keymaps/via/keymap.c | 48 +++++++++++++++ keyboards/brick/keymaps/via/rules.mk | 1 + keyboards/brick/readme.md | 24 ++++++++ keyboards/brick/rules.mk | 14 +++++ 9 files changed, 321 insertions(+) create mode 100644 keyboards/brick/brick.c create mode 100644 keyboards/brick/brick.h create mode 100644 keyboards/brick/config.h create mode 100644 keyboards/brick/info.json create mode 100644 keyboards/brick/keymaps/default/keymap.c create mode 100644 keyboards/brick/keymaps/via/keymap.c create mode 100644 keyboards/brick/keymaps/via/rules.mk create mode 100644 keyboards/brick/readme.md create mode 100644 keyboards/brick/rules.mk diff --git a/keyboards/brick/brick.c b/keyboards/brick/brick.c new file mode 100644 index 000000000000..8c97cf97ff79 --- /dev/null +++ b/keyboards/brick/brick.c @@ -0,0 +1,31 @@ +/* Copyright 2023 Juno 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 "brick.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 true; +} +#endif \ No newline at end of file diff --git a/keyboards/brick/brick.h b/keyboards/brick/brick.h new file mode 100644 index 000000000000..0e9a7e7c6156 --- /dev/null +++ b/keyboards/brick/brick.h @@ -0,0 +1,60 @@ +/* Copyright 2023 Juno 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 "quantum.h" +#define XXX KC_NO + +#define LAYOUT_ortho_2x2u( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ + k31, k32, k33, k35, k36, k38, k39, k3a \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ + { XXX, k31, k32, k33, XXX, k35, k36, XXX, k38, k39, k3a, XXX } \ +} + +#define LAYOUT_mit( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ + k31, k32, k33, k34, k35, k37, k38, k39, k3a \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ + { XXX, k31, k32, k33, k34, k35, XXX, k37, k38, k39, k3a, XXX } \ +} + +#define LAYOUT_ortho_4x12( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b } \ +} + diff --git a/keyboards/brick/config.h b/keyboards/brick/config.h new file mode 100644 index 000000000000..adb3238c6a7f --- /dev/null +++ b/keyboards/brick/config.h @@ -0,0 +1,44 @@ +/* Copyright 2023 Juno Nguyen + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define MATRIX_ROW_PINS { D3, D5, F0, F1 } +#define MATRIX_COL_PINS { B1, B3, F7, F6, D4, D6, D7, B4, B5, B6, C6, C7 } + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +#define RGB_DI_PIN D2 +#ifdef RGB_DI_PIN +# define RGBLED_NUM 8 +# define RGBLIGHT_HUE_STEP 8 +# define RGBLIGHT_SAT_STEP 8 +# define RGBLIGHT_VAL_STEP 8 +# define RGBLIGHT_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 + +#define ENCODERS_PAD_A { F4 } +#define ENCODERS_PAD_B { F5 } \ No newline at end of file diff --git a/keyboards/brick/info.json b/keyboards/brick/info.json new file mode 100644 index 000000000000..d20615dbbd06 --- /dev/null +++ b/keyboards/brick/info.json @@ -0,0 +1,25 @@ +{ + "keyboard_name": "Brick", + "manufacturer": "Pauper", + "url": "https://p3dstore.com/products/cervello-pcb-only-group-buy", + "maintainer": "JunoNgx", + "usb": { + "vid": "0xFEFE", + "pid": "0x0001", + "device_version": "1.0.0" + }, + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "community_layouts": [ "ortho_4x12" ], + "layouts": { + "LAYOUT_ortho_2x2u": { + "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"label":"Ctrl", "x":1, "y":3}, {"label":"Alt", "x":2, "y":3}, {"label":"Super", "x":3, "y":3}, {"x":4, "y":3, "w":2}, {"x":6, "y":3, "w":2}, {"label":"←", "x":8, "y":3}, {"label":"↓", "x":9, "y":3}, {"label":"↑", "x":10, "y":3}] + }, + "LAYOUT_mit": { + "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"label":"Ctrl", "x":1, "y":3}, {"label":"Alt", "x":2, "y":3}, {"label":"Super", "x":3, "y":3}, {"label":"⇓", "x":4, "y":3}, {"x":5, "y":3, "w":2}, {"label":"⇑", "x":7, "y":3}, {"label":"←", "x":8, "y":3}, {"label":"↓", "x":9, "y":3}, {"label":"↑", "x":10, "y":3}] + }, + "LAYOUT_ortho_4x12": { + "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"x":0, "y":3}, {"label":"Ctrl", "x":1, "y":3}, {"label":"Alt", "x":2, "y":3}, {"label":"Super", "x":3, "y":3}, {"label":"⇓", "x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"label":"⇑", "x":7, "y":3}, {"label":"←", "x":8, "y":3}, {"label":"↓", "x":9, "y":3}, {"label":"↑", "x":10, "y":3}, {"label":"→", "x":11, "y":3}] + } + } +} diff --git a/keyboards/brick/keymaps/default/keymap.c b/keyboards/brick/keymaps/default/keymap.c new file mode 100644 index 000000000000..f488834ea423 --- /dev/null +++ b/keyboards/brick/keymaps/default/keymap.c @@ -0,0 +1,74 @@ +/* Copyright 2023 Juno 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 QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Layer 0 + * ,-----------------------------------------------------------------------------------. + * | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Tab | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | Up |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | GUI | Caps | Alt |Layer1| Space |Layer2| / | Left | Down |Right | + * `-----------------------------------------------------------------------------------' + */ + [0] = LAYOUT_ortho_4x12 ( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT, + KC_LCTL, KC_LGUI, KC_CAPS, KC_LALT, MO(1), KC_SPC, KC_SPC, MO(2), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* Layer 1 + * ,-----------------------------------------------------------------------------------. + * | ` | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | Vol- | Vol+ | Mute | | | | F11 | F12 | | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Reset| | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ + [1] = LAYOUT_ortho_4x12 ( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, KC_F11, KC_F12, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + /* Layer 2 (r_ Indicates RGB Controls) + * ,-----------------------------------------------------------------------------------. + * | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | |r_TOG |r_Mode|r_Hue+|r_Hue-| | | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | |BL_TOG|BL_STEP| | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ + [2] = LAYOUT_ortho_4x12 ( + _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, BL_TOGG, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/brick/keymaps/via/keymap.c b/keyboards/brick/keymaps/via/keymap.c new file mode 100644 index 000000000000..693cc717528f --- /dev/null +++ b/keyboards/brick/keymaps/via/keymap.c @@ -0,0 +1,48 @@ +/* Copyright 2023 Juno 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 QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_ortho_4x12 ( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT, + KC_LCTL, KC_LGUI, KC_CAPS, KC_LALT, MO(1), KC_SPC, KC_SPC, MO(2), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_ortho_4x12 ( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, KC_F11, KC_F12, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [2] = LAYOUT_ortho_4x12 ( + _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, BL_TOGG, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [3] = LAYOUT_ortho_4x12 ( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + 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/brick/keymaps/via/rules.mk b/keyboards/brick/keymaps/via/rules.mk new file mode 100644 index 000000000000..036bd6d1c3ec --- /dev/null +++ b/keyboards/brick/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/brick/readme.md b/keyboards/brick/readme.md new file mode 100644 index 000000000000..c7894743d01d --- /dev/null +++ b/keyboards/brick/readme.md @@ -0,0 +1,24 @@ +# Brick + +A 40% ortholinear Planck-shaped keyboard with bottom blockers for Cervello. Created by Pauper. + +* Keyboard Maintainer: [Juno Nguyen](https://github.com/JunoNgx) +* Hardware Availability: [P3D Store](https://p3dstore.com/collections/invisibolt-acrylic-cases/products/cervello-invisibolt-acrylic-keyboard-case-and-pcb) + +Make example for this keyboard (after setting up your build environment): + + make brick:default + +Flashing example for this keyboard: + + make brick:default:flash + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down Escape and plug in the keyboard. +* **Physical reset button**: Briefly press the reset button below the pro-micro. +* **Keycode in layout**: The `QK_BOOT` key can be found by holding `FUNC` in between the space bars and pressing `ESC`. + +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/brick/rules.mk b/keyboards/brick/rules.mk new file mode 100644 index 000000000000..e0c821feb2bc --- /dev/null +++ b/keyboards/brick/rules.mk @@ -0,0 +1,14 @@ +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # 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 +ENCODER_ENABLE = yes +LTO_ENABLE = yes From 4d5abe1e74e8306bbef91bee75989d8efe6812d3 Mon Sep 17 00:00:00 2001 From: eason <98533237+EasonQian1@users.noreply.github.com> Date: Tue, 7 Feb 2023 15:54:10 +0800 Subject: [PATCH 134/139] [Keyboard] Add aeroboard (#19087) Co-authored-by: Joel Challis Co-authored-by: jack <0x6a73@protonmail.com> --- keyboards/eason/aeroboard/aeroboard.c | 4 + keyboards/eason/aeroboard/aeroboard.h | 30 ++++++ keyboards/eason/aeroboard/config.h | 37 ++++++++ keyboards/eason/aeroboard/halconf.h | 8 ++ keyboards/eason/aeroboard/info.json | 91 +++++++++++++++++++ .../eason/aeroboard/keymaps/default/keymap.c | 23 +++++ .../eason/aeroboard/keymaps/via/keymap.c | 36 ++++++++ .../eason/aeroboard/keymaps/via/rules.mk | 2 + keyboards/eason/aeroboard/mcuconf.h | 9 ++ keyboards/eason/aeroboard/readme.md | 22 +++++ keyboards/eason/aeroboard/rules.mk | 16 ++++ 11 files changed, 278 insertions(+) create mode 100644 keyboards/eason/aeroboard/aeroboard.c create mode 100644 keyboards/eason/aeroboard/aeroboard.h create mode 100644 keyboards/eason/aeroboard/config.h create mode 100644 keyboards/eason/aeroboard/halconf.h create mode 100644 keyboards/eason/aeroboard/info.json create mode 100644 keyboards/eason/aeroboard/keymaps/default/keymap.c create mode 100644 keyboards/eason/aeroboard/keymaps/via/keymap.c create mode 100644 keyboards/eason/aeroboard/keymaps/via/rules.mk create mode 100644 keyboards/eason/aeroboard/mcuconf.h create mode 100644 keyboards/eason/aeroboard/readme.md create mode 100644 keyboards/eason/aeroboard/rules.mk diff --git a/keyboards/eason/aeroboard/aeroboard.c b/keyboards/eason/aeroboard/aeroboard.c new file mode 100644 index 000000000000..091fcf2facfd --- /dev/null +++ b/keyboards/eason/aeroboard/aeroboard.c @@ -0,0 +1,4 @@ +// Copyright 2022 Eason +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "aeroboard.h" diff --git a/keyboards/eason/aeroboard/aeroboard.h b/keyboards/eason/aeroboard/aeroboard.h new file mode 100644 index 000000000000..a623670b2d20 --- /dev/null +++ b/keyboards/eason/aeroboard/aeroboard.h @@ -0,0 +1,30 @@ +// Copyright 2022 Eason +// SPDX-License-Identifier: GPL-2.0-or-later + + + #pragma once + + #include "quantum.h" + + #define ___ KC_NO +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D,K0E,K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D,K1E,K1F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E,K2F, \ + K30, K31, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D,K3E,K3F, \ + K40, K41, K43, K45, K47, K49, K4B, K4D,K4E,K4F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D,K0E,K0F}, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D,K1E,K1F}, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, ___,K2E,K2F}, \ + { K30, K31, ___, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D,K3E,K3F}, \ + { K40, K41, ___, K43, ___, K45, ___, K47, ___, K49, ___, K4B, ___, K4D,K4E,K4F} \ +} diff --git a/keyboards/eason/aeroboard/config.h b/keyboards/eason/aeroboard/config.h new file mode 100644 index 000000000000..3c23bce9be77 --- /dev/null +++ b/keyboards/eason/aeroboard/config.h @@ -0,0 +1,37 @@ +// Copyright 2022 Eason +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define MATRIX_COL_PINS { B9, B8, B7, B6, B5, B4, B3, B11, A15, A10, A9, B14, B13, B12, A5, A4 } +#define MATRIX_ROW_PINS { B10, B1, B0, A7, A6 } +#define DIODE_DIRECTION COL2ROW + +#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 RGB_DI_PIN B15 +#define RGBLED_NUM 20 +#define WS2812_SPI SPID2 +#define WS2812_SPI_MOSI_PAL_MODE 5 + +#define FORCE_NKRO + + +/* 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/eason/aeroboard/halconf.h b/keyboards/eason/aeroboard/halconf.h new file mode 100644 index 000000000000..7dda577da1b7 --- /dev/null +++ b/keyboards/eason/aeroboard/halconf.h @@ -0,0 +1,8 @@ +// Copyright 2022 Eason +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_SPI TRUE + +#include_next diff --git a/keyboards/eason/aeroboard/info.json b/keyboards/eason/aeroboard/info.json new file mode 100644 index 000000000000..498f5da92e4a --- /dev/null +++ b/keyboards/eason/aeroboard/info.json @@ -0,0 +1,91 @@ +{ + "keyboard_name": "AeroBoard", + "manufacturer": "Eason", + "url": "", + "maintainer": "Eason", + "usb": { + "vid": "0x8954", + "pid": "0x8870", + "device_version": "0.0.1" + }, + "processor": "STM32F103", + "bootloader": "stm32duino", + "layouts": { + "LAYOUT": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1.75, "y": 0}, + {"x": 2.75, "y": 0}, + {"x": 3.75, "y": 0}, + {"x": 4.75, "y": 0}, + {"x": 5.75, "y": 0}, + {"x": 6.75, "y": 0}, + {"x": 7.75, "y": 0}, + {"x": 8.75, "y": 0}, + {"x": 9.75, "y": 0}, + {"x": 10.75, "y": 0}, + {"x": 11.75, "y": 0}, + {"x": 12.75, "y": 0}, + {"x": 13.75, "y": 0}, + {"x": 14.75, "y": 0, "w": 2}, + {"x": 16.75, "y": 0}, + {"x": 0, "y": 1}, + {"x": 1.75, "y": 1, "w": 1.5}, + {"x": 3.25, "y": 1}, + {"x": 4.25, "y": 1}, + {"x": 5.25, "y": 1}, + {"x": 6.25, "y": 1}, + {"x": 7.25, "y": 1}, + {"x": 8.25, "y": 1}, + {"x": 9.25, "y": 1}, + {"x": 10.25, "y": 1}, + {"x": 11.25, "y": 1}, + {"x": 12.25, "y": 1}, + {"x": 13.25, "y": 1}, + {"x": 14.25, "y": 1}, + {"x": 15.25, "y": 1, "w": 1.5}, + {"x": 16.75, "y": 1}, + {"x": 0, "y": 2}, + {"x": 1.75, "y": 2, "w": 1.75}, + {"x": 3.5, "y": 2}, + {"x": 4.5, "y": 2}, + {"x": 5.5, "y": 2}, + {"x": 6.5, "y": 2}, + {"x": 7.5, "y": 2}, + {"x": 8.5, "y": 2}, + {"x": 9.5, "y": 2}, + {"x": 10.5, "y": 2}, + {"x": 11.5, "y": 2}, + {"x": 12.5, "y": 2}, + {"x": 13.5, "y": 2}, + {"x": 14.5, "y": 2, "w": 2.25}, + {"x": 16.75, "y": 2}, + {"x": 0, "y": 3}, + {"x": 1.75, "y": 3, "w": 2.25}, + {"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, "w": 1.75}, + {"x": 15.75, "y": 3}, + {"x": 16.75, "y": 3}, + {"x": 0, "y": 4}, + {"x": 1.75, "y": 4, "w": 1.5}, + {"x": 4, "y": 4, "w": 1.5}, + {"x": 5.5, "y": 4, "w": 3}, + {"x": 8.5, "y": 4}, + {"x": 9.5, "y": 4, "w": 3}, + {"x": 12.5, "y": 4, "w": 1.5}, + {"x": 14.75, "y": 4}, + {"x": 15.75, "y": 4}, + {"x": 16.75, "y": 4} + ] + } + } +} diff --git a/keyboards/eason/aeroboard/keymaps/default/keymap.c b/keyboards/eason/aeroboard/keymaps/default/keymap.c new file mode 100644 index 000000000000..61f2a9036413 --- /dev/null +++ b/keyboards/eason/aeroboard/keymaps/default/keymap.c @@ -0,0 +1,23 @@ +// Copyright 2022 Eason +// SPDX-License-Identifier: GPL-2.0-or-later + + #include QMK_KEYBOARD_H + + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_ESC, KC_1, KC_GRV, KC_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_MINS, KC_Q, KC_TAB, KC_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_PLUS, KC_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, + MO(1) , KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), + KC_LGUI, KC_LCTL, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( + KC_HOME, KC_F1, _______, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,KC_DEL, KC_PSCR, + _______, _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______,_______,QK_BOOT, KC_PAUS, + _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE,_______, KC_VOLU, _______, + _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT + ), + + }; diff --git a/keyboards/eason/aeroboard/keymaps/via/keymap.c b/keyboards/eason/aeroboard/keymaps/via/keymap.c new file mode 100644 index 000000000000..614c3daa025a --- /dev/null +++ b/keyboards/eason/aeroboard/keymaps/via/keymap.c @@ -0,0 +1,36 @@ +// Copyright 2022 Eason +// SPDX-License-Identifier: GPL-2.0-or-later + + #include QMK_KEYBOARD_H + + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_ESC, KC_1, KC_GRV, KC_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_MINS, KC_Q, KC_TAB, KC_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_PLUS, KC_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, + MO(1) , KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), + KC_LGUI, KC_LCTL, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( + KC_HOME, KC_F1, _______, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,KC_DEL, KC_PSCR, + _______, _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______,_______,QK_BOOT, KC_PAUS, + _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE,_______, KC_VOLU, _______, + _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT + ), + [2] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,_______,_______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,_______,_______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,_______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,_______,_______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,_______,_______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,_______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + }; diff --git a/keyboards/eason/aeroboard/keymaps/via/rules.mk b/keyboards/eason/aeroboard/keymaps/via/rules.mk new file mode 100644 index 000000000000..36b7ba9cbc98 --- /dev/null +++ b/keyboards/eason/aeroboard/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/eason/aeroboard/mcuconf.h b/keyboards/eason/aeroboard/mcuconf.h new file mode 100644 index 000000000000..bac8fc07c5f2 --- /dev/null +++ b/keyboards/eason/aeroboard/mcuconf.h @@ -0,0 +1,9 @@ +// Copyright 2022 Eason +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 TRUE diff --git a/keyboards/eason/aeroboard/readme.md b/keyboards/eason/aeroboard/readme.md new file mode 100644 index 000000000000..6fe48adfd37c --- /dev/null +++ b/keyboards/eason/aeroboard/readme.md @@ -0,0 +1,22 @@ +# aeroboard + +A customizable hotswap 70% keyboard. + +* Keyboard Maintainer: [EASON](https://github.com/EasonQian1) +* Hardware Supported: ab70lite +* Hardware Availability: [EASON](https://github.com/EasonQian1) + +Make example for this keyboard (after setting up your build environment): + + make eason/aeroboard:default + +Flashing example for this keyboard: + + make eason/aeroboard: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 Enter in the keyboard then replug +* **Physical reset button**: Briefly press the button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` diff --git a/keyboards/eason/aeroboard/rules.mk b/keyboards/eason/aeroboard/rules.mk new file mode 100644 index 000000000000..edc3e666c416 --- /dev/null +++ b/keyboards/eason/aeroboard/rules.mk @@ -0,0 +1,16 @@ +# 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 = 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 +SLEEP_LED_ENABLE = yes +WS2812_DRIVER = spi +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE From 5dfaf0a21881c79a1268b354fd9ca9c113bb117e Mon Sep 17 00:00:00 2001 From: QMK Bot Date: Tue, 7 Feb 2023 00:09:26 -0800 Subject: [PATCH 135/139] [CI] Format code according to conventions (#19765) --- keyboards/eason/aeroboard/info.json | 182 ++++++++++++++-------------- 1 file changed, 91 insertions(+), 91 deletions(-) diff --git a/keyboards/eason/aeroboard/info.json b/keyboards/eason/aeroboard/info.json index 498f5da92e4a..73ef41d22161 100644 --- a/keyboards/eason/aeroboard/info.json +++ b/keyboards/eason/aeroboard/info.json @@ -1,91 +1,91 @@ -{ - "keyboard_name": "AeroBoard", - "manufacturer": "Eason", - "url": "", - "maintainer": "Eason", - "usb": { - "vid": "0x8954", - "pid": "0x8870", - "device_version": "0.0.1" - }, - "processor": "STM32F103", - "bootloader": "stm32duino", - "layouts": { - "LAYOUT": { - "layout": [ - {"x": 0, "y": 0}, - {"x": 1.75, "y": 0}, - {"x": 2.75, "y": 0}, - {"x": 3.75, "y": 0}, - {"x": 4.75, "y": 0}, - {"x": 5.75, "y": 0}, - {"x": 6.75, "y": 0}, - {"x": 7.75, "y": 0}, - {"x": 8.75, "y": 0}, - {"x": 9.75, "y": 0}, - {"x": 10.75, "y": 0}, - {"x": 11.75, "y": 0}, - {"x": 12.75, "y": 0}, - {"x": 13.75, "y": 0}, - {"x": 14.75, "y": 0, "w": 2}, - {"x": 16.75, "y": 0}, - {"x": 0, "y": 1}, - {"x": 1.75, "y": 1, "w": 1.5}, - {"x": 3.25, "y": 1}, - {"x": 4.25, "y": 1}, - {"x": 5.25, "y": 1}, - {"x": 6.25, "y": 1}, - {"x": 7.25, "y": 1}, - {"x": 8.25, "y": 1}, - {"x": 9.25, "y": 1}, - {"x": 10.25, "y": 1}, - {"x": 11.25, "y": 1}, - {"x": 12.25, "y": 1}, - {"x": 13.25, "y": 1}, - {"x": 14.25, "y": 1}, - {"x": 15.25, "y": 1, "w": 1.5}, - {"x": 16.75, "y": 1}, - {"x": 0, "y": 2}, - {"x": 1.75, "y": 2, "w": 1.75}, - {"x": 3.5, "y": 2}, - {"x": 4.5, "y": 2}, - {"x": 5.5, "y": 2}, - {"x": 6.5, "y": 2}, - {"x": 7.5, "y": 2}, - {"x": 8.5, "y": 2}, - {"x": 9.5, "y": 2}, - {"x": 10.5, "y": 2}, - {"x": 11.5, "y": 2}, - {"x": 12.5, "y": 2}, - {"x": 13.5, "y": 2}, - {"x": 14.5, "y": 2, "w": 2.25}, - {"x": 16.75, "y": 2}, - {"x": 0, "y": 3}, - {"x": 1.75, "y": 3, "w": 2.25}, - {"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, "w": 1.75}, - {"x": 15.75, "y": 3}, - {"x": 16.75, "y": 3}, - {"x": 0, "y": 4}, - {"x": 1.75, "y": 4, "w": 1.5}, - {"x": 4, "y": 4, "w": 1.5}, - {"x": 5.5, "y": 4, "w": 3}, - {"x": 8.5, "y": 4}, - {"x": 9.5, "y": 4, "w": 3}, - {"x": 12.5, "y": 4, "w": 1.5}, - {"x": 14.75, "y": 4}, - {"x": 15.75, "y": 4}, - {"x": 16.75, "y": 4} - ] - } - } -} +{ + "keyboard_name": "AeroBoard", + "manufacturer": "Eason", + "url": "", + "maintainer": "Eason", + "usb": { + "vid": "0x8954", + "pid": "0x8870", + "device_version": "0.0.1" + }, + "processor": "STM32F103", + "bootloader": "stm32duino", + "layouts": { + "LAYOUT": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1.75, "y": 0}, + {"x": 2.75, "y": 0}, + {"x": 3.75, "y": 0}, + {"x": 4.75, "y": 0}, + {"x": 5.75, "y": 0}, + {"x": 6.75, "y": 0}, + {"x": 7.75, "y": 0}, + {"x": 8.75, "y": 0}, + {"x": 9.75, "y": 0}, + {"x": 10.75, "y": 0}, + {"x": 11.75, "y": 0}, + {"x": 12.75, "y": 0}, + {"x": 13.75, "y": 0}, + {"x": 14.75, "y": 0, "w": 2}, + {"x": 16.75, "y": 0}, + {"x": 0, "y": 1}, + {"x": 1.75, "y": 1, "w": 1.5}, + {"x": 3.25, "y": 1}, + {"x": 4.25, "y": 1}, + {"x": 5.25, "y": 1}, + {"x": 6.25, "y": 1}, + {"x": 7.25, "y": 1}, + {"x": 8.25, "y": 1}, + {"x": 9.25, "y": 1}, + {"x": 10.25, "y": 1}, + {"x": 11.25, "y": 1}, + {"x": 12.25, "y": 1}, + {"x": 13.25, "y": 1}, + {"x": 14.25, "y": 1}, + {"x": 15.25, "y": 1, "w": 1.5}, + {"x": 16.75, "y": 1}, + {"x": 0, "y": 2}, + {"x": 1.75, "y": 2, "w": 1.75}, + {"x": 3.5, "y": 2}, + {"x": 4.5, "y": 2}, + {"x": 5.5, "y": 2}, + {"x": 6.5, "y": 2}, + {"x": 7.5, "y": 2}, + {"x": 8.5, "y": 2}, + {"x": 9.5, "y": 2}, + {"x": 10.5, "y": 2}, + {"x": 11.5, "y": 2}, + {"x": 12.5, "y": 2}, + {"x": 13.5, "y": 2}, + {"x": 14.5, "y": 2, "w": 2.25}, + {"x": 16.75, "y": 2}, + {"x": 0, "y": 3}, + {"x": 1.75, "y": 3, "w": 2.25}, + {"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, "w": 1.75}, + {"x": 15.75, "y": 3}, + {"x": 16.75, "y": 3}, + {"x": 0, "y": 4}, + {"x": 1.75, "y": 4, "w": 1.5}, + {"x": 4, "y": 4, "w": 1.5}, + {"x": 5.5, "y": 4, "w": 3}, + {"x": 8.5, "y": 4}, + {"x": 9.5, "y": 4, "w": 3}, + {"x": 12.5, "y": 4, "w": 1.5}, + {"x": 14.75, "y": 4}, + {"x": 15.75, "y": 4}, + {"x": 16.75, "y": 4} + ] + } + } +} From a7febfbb62182e72ecc39c5fa9e8bd9ac923f47e Mon Sep 17 00:00:00 2001 From: soggywhale <112708531+soggywhale@users.noreply.github.com> Date: Wed, 8 Feb 2023 03:20:42 +0100 Subject: [PATCH 136/139] changed the undefined ON and OFF parameters to thedefined constant (#19772) --- docs/feature_midi.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/feature_midi.md b/docs/feature_midi.md index 1f0809ef1443..5df11c4b5864 100644 --- a/docs/feature_midi.md +++ b/docs/feature_midi.md @@ -60,9 +60,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case MIDI_CC80: if (record->event.pressed) { - midi_send_cc(&midi_device, midi_config.channel, 80, ON); + midi_send_cc(&midi_device, midi_config.channel, 80, MIDI_CC_ON); } else { - midi_send_cc(&midi_device, midi_config.channel, 80, OFF); + midi_send_cc(&midi_device, midi_config.channel, 80, MIDI_CC_OFF); } return true; } From aa3b64db2bd8776f0b452bc3106c6ee663b3cce4 Mon Sep 17 00:00:00 2001 From: Laneware <68452738+Laneware@users.noreply.github.com> Date: Wed, 8 Feb 2023 14:42:47 +1000 Subject: [PATCH 137/139] [Keyboard] LW75 Support (#19506) Co-authored-by: jack <0x6a73@protonmail.com> Co-authored-by: Drashna Jaelre --- keyboards/lw75/config.h | 26 ++++ keyboards/lw75/info.json | 30 ++++ .../keymaps/ansi_split_backspace/keymap.c | 16 ++ keyboards/lw75/keymaps/default/keymap.c | 15 ++ keyboards/lw75/keymaps/iso/keymap.c | 16 ++ .../lw75/keymaps/iso_split_backspace/keymap.c | 17 +++ keyboards/lw75/keymaps/via/keymap.c | 47 ++++++ keyboards/lw75/keymaps/via/rules.mk | 2 + keyboards/lw75/lw75.c | 19 +++ keyboards/lw75/lw75.h | 138 ++++++++++++++++++ keyboards/lw75/readme.md | 25 ++++ keyboards/lw75/rules.mk | 13 ++ 12 files changed, 364 insertions(+) create mode 100644 keyboards/lw75/config.h create mode 100644 keyboards/lw75/info.json create mode 100644 keyboards/lw75/keymaps/ansi_split_backspace/keymap.c create mode 100644 keyboards/lw75/keymaps/default/keymap.c create mode 100644 keyboards/lw75/keymaps/iso/keymap.c create mode 100644 keyboards/lw75/keymaps/iso_split_backspace/keymap.c create mode 100644 keyboards/lw75/keymaps/via/keymap.c create mode 100644 keyboards/lw75/keymaps/via/rules.mk create mode 100644 keyboards/lw75/lw75.c create mode 100644 keyboards/lw75/lw75.h create mode 100644 keyboards/lw75/readme.md create mode 100644 keyboards/lw75/rules.mk diff --git a/keyboards/lw75/config.h b/keyboards/lw75/config.h new file mode 100644 index 000000000000..eb2d9efc2655 --- /dev/null +++ b/keyboards/lw75/config.h @@ -0,0 +1,26 @@ +// Copyright 2023 Laneware Peripherals +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "config_common.h" + +/* key matrix pins */ +#define MATRIX_ROW_PINS { E6, B7, D0, D1, D2, B1 } +#define MATRIX_COL_PINS { D3, D5, D4, D6, D7, B4, B5, B6, C6, C7, F7, F6, F5, F4, B0, B2 } + +/*ENCODER*/ +#define ENCODERS_PAD_A { F0 } +#define ENCODERS_PAD_B { F1 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE + +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE diff --git a/keyboards/lw75/info.json b/keyboards/lw75/info.json new file mode 100644 index 000000000000..ef55732d233f --- /dev/null +++ b/keyboards/lw75/info.json @@ -0,0 +1,30 @@ +{ + "keyboard_name": "LW-75", + "manufacturer": "Laneware Peripherals", + "url": "", + "maintainer": "qmk", + "usb": { + "vid": "0x4C50", + "pid": "0x1111", + "device_version": "0.0.1" + }, + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "layouts":{ + "LAYOUT_ansi":{ + "layout": [{"label":"Mute", "x":0, "y":0}, {"label":"Esc", "x":1.25, "y":0}, {"label":"F1", "x":2.5, "y":0}, {"label":"F2", "x":3.5, "y":0}, {"label":"F3", "x":4.5, "y":0}, {"label":"F4", "x":5.5, "y":0}, {"label":"F5", "x":6.75, "y":0}, {"label":"F6", "x":7.75, "y":0}, {"label":"F7", "x":8.75, "y":0}, {"label":"F8", "x":9.75, "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":"F13", "x":15.5, "y":0}, {"label":"~", "x":0, "y":1.25}, {"label":"!", "x":1, "y":1.25}, {"label":"@", "x":2, "y":1.25}, {"label":"#", "x":3, "y":1.25}, {"label":"$", "x":4, "y":1.25}, {"label":"%", "x":5, "y":1.25}, {"label":"^", "x":6, "y":1.25}, {"label":"&", "x":7, "y":1.25}, {"label":"*", "x":8, "y":1.25}, {"label":"(", "x":9, "y":1.25}, {"label":")", "x":10, "y":1.25}, {"label":"_", "x":11, "y":1.25}, {"label":"+", "x":12, "y":1.25}, {"label":"Backspace", "x":13, "y":1.25, "w":2}, {"label":"Delete", "x":15.5, "y":1.25}, {"label":"Tab", "x":0, "y":2.25, "w":1.5}, {"label":"Q", "x":1.5, "y":2.25}, {"label":"W", "x":2.5, "y":2.25}, {"label":"E", "x":3.5, "y":2.25}, {"label":"R", "x":4.5, "y":2.25}, {"label":"T", "x":5.5, "y":2.25}, {"label":"Y", "x":6.5, "y":2.25}, {"label":"U", "x":7.5, "y":2.25}, {"label":"I", "x":8.5, "y":2.25}, {"label":"O", "x":9.5, "y":2.25}, {"label":"P", "x":10.5, "y":2.25}, {"label":"{", "x":11.5, "y":2.25}, {"label":"}", "x":12.5, "y":2.25}, {"label":"|", "x":13.5, "y":2.25, "w":1.5}, {"label":"PgUp", "x":15.5, "y":2.25}, {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, {"label":"A", "x":1.75, "y":3.25}, {"label":"S", "x":2.75, "y":3.25}, {"label":"D", "x":3.75, "y":3.25}, {"label":"F", "x":4.75, "y":3.25}, {"label":"G", "x":5.75, "y":3.25}, {"label":"H", "x":6.75, "y":3.25}, {"label":"J", "x":7.75, "y":3.25}, {"label":"K", "x":8.75, "y":3.25}, {"label":"L", "x":9.75, "y":3.25}, {"label":":", "x":10.75, "y":3.25}, {"label":"\"", "x":11.75, "y":3.25}, {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, {"label":"PgDn", "x":15.5, "y":3.25}, {"label":"Shift", "x":0, "y":4.25, "w":2.25}, {"label":"Z", "x":2.25, "y":4.25}, {"label":"X", "x":3.25, "y":4.25}, {"label":"C", "x":4.25, "y":4.25}, {"label":"V", "x":5.25, "y":4.25}, {"label":"B", "x":6.25, "y":4.25}, {"label":"N", "x":7.25, "y":4.25}, {"label":"M", "x":8.25, "y":4.25}, {"label":"<", "x":9.25, "y":4.25}, {"label":">", "x":10.25, "y":4.25}, {"label":"?", "x":11.25, "y":4.25}, {"label":"Shift", "x":12.25, "y":4.25, "w":1.75}, {"label":"Insert", "x":15.5, "y":4.25}, {"label":"\u2191", "x":14.25, "y":4.5}, {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, {"label":"Win", "x":1.25, "y":5.25, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, {"x":3.75, "y":5.25, "w":6.25}, {"label":"Alt", "x":10, "y":5.25}, {"label":"Win", "x":11, "y":5.25}, {"label":"Ctrl", "x":12, "y":5.25}, {"label":"\u2190", "x":13.25, "y":5.5}, {"label":"\u2193", "x":14.25, "y":5.5}, {"label":"\u2192", "x":15.25, "y":5.5}] + }, + + "LAYOUT_ansi_splitbs": { + "layout": [{"label":"Mute", "x":0, "y":0}, {"label":"Esc", "x":1.25, "y":0}, {"label":"F1", "x":2.5, "y":0}, {"label":"F2", "x":3.5, "y":0}, {"label":"F3", "x":4.5, "y":0}, {"label":"F4", "x":5.5, "y":0}, {"label":"F5", "x":6.75, "y":0}, {"label":"F6", "x":7.75, "y":0}, {"label":"F7", "x":8.75, "y":0}, {"label":"F8", "x":9.75, "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":"F13", "x":15.5, "y":0}, {"label":"~", "x":0, "y":1.25}, {"label":"!", "x":1, "y":1.25}, {"label":"@", "x":2, "y":1.25}, {"label":"#", "x":3, "y":1.25}, {"label":"$", "x":4, "y":1.25}, {"label":"%", "x":5, "y":1.25}, {"label":"^", "x":6, "y":1.25}, {"label":"&", "x":7, "y":1.25}, {"label":"*", "x":8, "y":1.25}, {"label":"(", "x":9, "y":1.25}, {"label":")", "x":10, "y":1.25}, {"label":"_", "x":11, "y":1.25}, {"label":"+", "x":12, "y":1.25}, {"label":"Backspace", "x":13, "y":1.25}, {"label":"Fn", "x":14, "y":1.25}, {"label":"Delete", "x":15.5, "y":1.25}, {"label":"Tab", "x":0, "y":2.25, "w":1.5}, {"label":"Q", "x":1.5, "y":2.25}, {"label":"W", "x":2.5, "y":2.25}, {"label":"E", "x":3.5, "y":2.25}, {"label":"R", "x":4.5, "y":2.25}, {"label":"T", "x":5.5, "y":2.25}, {"label":"Y", "x":6.5, "y":2.25}, {"label":"U", "x":7.5, "y":2.25}, {"label":"I", "x":8.5, "y":2.25}, {"label":"O", "x":9.5, "y":2.25}, {"label":"P", "x":10.5, "y":2.25}, {"label":"{", "x":11.5, "y":2.25}, {"label":"}", "x":12.5, "y":2.25}, {"label":"|", "x":13.5, "y":2.25, "w":1.5}, {"label":"PgUp", "x":15.5, "y":2.25}, {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, {"label":"A", "x":1.75, "y":3.25}, {"label":"S", "x":2.75, "y":3.25}, {"label":"D", "x":3.75, "y":3.25}, {"label":"F", "x":4.75, "y":3.25}, {"label":"G", "x":5.75, "y":3.25}, {"label":"H", "x":6.75, "y":3.25}, {"label":"J", "x":7.75, "y":3.25}, {"label":"K", "x":8.75, "y":3.25}, {"label":"L", "x":9.75, "y":3.25}, {"label":":", "x":10.75, "y":3.25}, {"label":"\"", "x":11.75, "y":3.25}, {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, {"label":"PgDn", "x":15.5, "y":3.25}, {"label":"Shift", "x":0, "y":4.25, "w":2.25}, {"label":"Z", "x":2.25, "y":4.25}, {"label":"X", "x":3.25, "y":4.25}, {"label":"C", "x":4.25, "y":4.25}, {"label":"V", "x":5.25, "y":4.25}, {"label":"B", "x":6.25, "y":4.25}, {"label":"N", "x":7.25, "y":4.25}, {"label":"M", "x":8.25, "y":4.25}, {"label":"<", "x":9.25, "y":4.25}, {"label":">", "x":10.25, "y":4.25}, {"label":"?", "x":11.25, "y":4.25}, {"label":"Shift", "x":12.25, "y":4.25, "w":1.75}, {"label":"Insert", "x":15.5, "y":4.25}, {"label":"\u2191", "x":14.25, "y":4.5}, {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, {"label":"Win", "x":1.25, "y":5.25, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, {"x":3.75, "y":5.25, "w":6.25}, {"label":"Alt", "x":10, "y":5.25}, {"label":"Win", "x":11, "y":5.25}, {"label":"Ctrl", "x":12, "y":5.25}, {"label":"\u2190", "x":13.25, "y":5.5}, {"label":"\u2193", "x":14.25, "y":5.5}, {"label":"\u2192", "x":15.25, "y":5.5}] + }, + + "LAYOUT_iso": { + "layout": [{"label":"Mute", "x":0, "y":0}, {"label":"Esc", "x":1.25, "y":0}, {"label":"F1", "x":2.5, "y":0}, {"label":"F2", "x":3.5, "y":0}, {"label":"F3", "x":4.5, "y":0}, {"label":"F4", "x":5.5, "y":0}, {"label":"F5", "x":6.75, "y":0}, {"label":"F6", "x":7.75, "y":0}, {"label":"F7", "x":8.75, "y":0}, {"label":"F8", "x":9.75, "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":"F13", "x":15.5, "y":0}, {"label":"\u00ac", "x":0, "y":1.25}, {"label":"!", "x":1, "y":1.25}, {"label":"\"", "x":2, "y":1.25}, {"label":"\u00a3", "x":3, "y":1.25}, {"label":"$", "x":4, "y":1.25}, {"label":"%", "x":5, "y":1.25}, {"label":"^", "x":6, "y":1.25}, {"label":"&", "x":7, "y":1.25}, {"label":"*", "x":8, "y":1.25}, {"label":"(", "x":9, "y":1.25}, {"label":")", "x":10, "y":1.25}, {"label":"_", "x":11, "y":1.25}, {"label":"+", "x":12, "y":1.25}, {"label":"Backspace", "x":13, "y":1.25, "w":2}, {"label":"Delete", "x":15.5, "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":"Enter", "x":13.75, "y":2.25, "w":1.25, "h":2}, {"label":"PgUp", "x":15.5, "y":2.25}, {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, {"label":"A", "x":1.75, "y":3.25}, {"label":"S", "x":2.75, "y":3.25}, {"label":"D", "x":3.75, "y":3.25}, {"label":"F", "x":4.75, "y":3.25}, {"label":"G", "x":5.75, "y":3.25}, {"label":"H", "x":6.75, "y":3.25}, {"label":"J", "x":7.75, "y":3.25}, {"label":"K", "x":8.75, "y":3.25}, {"label":"L", "x":9.75, "y":3.25}, {"label":":", "x":10.75, "y":3.25}, {"label":"@", "x":11.75, "y":3.25}, {"label":"~", "x":12.75, "y":3.25}, {"label":"PgDn", "x":15.5, "y":3.25}, {"label":"Shift", "x":0, "y":4.25, "w":1.25}, {"label":"|", "x":1.25, "y":4.25}, {"label":"Z", "x":2.25, "y":4.25}, {"label":"X", "x":3.25, "y":4.25}, {"label":"C", "x":4.25, "y":4.25}, {"label":"V", "x":5.25, "y":4.25}, {"label":"B", "x":6.25, "y":4.25}, {"label":"N", "x":7.25, "y":4.25}, {"label":"M", "x":8.25, "y":4.25}, {"label":"<", "x":9.25, "y":4.25}, {"label":">", "x":10.25, "y":4.25}, {"label":"?", "x":11.25, "y":4.25}, {"label":"Shift", "x":12.25, "y":4.25, "w":1.75}, {"label":"Insert", "x":15.5, "y":4.25}, {"label":"\u2191", "x":14.25, "y":4.5}, {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, {"label":"Win", "x":1.25, "y":5.25, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, {"x":3.75, "y":5.25, "w":6.25}, {"label":"AltGr", "x":10, "y":5.25}, {"label":"Win", "x":11, "y":5.25}, {"label":"Ctrl", "x":12, "y":5.25}, {"label":"\u2190", "x":13.25, "y":5.5}, {"label":"\u2193", "x":14.25, "y":5.5}, {"label":"\u2192", "x":15.25, "y":5.5}] + }, + + "LAYOUT_iso_splitbs": { + "layout": [{"label":"Mute", "x":0, "y":0}, {"label":"Esc", "x":1.25, "y":0}, {"label":"F1", "x":2.5, "y":0}, {"label":"F2", "x":3.5, "y":0}, {"label":"F3", "x":4.5, "y":0}, {"label":"F4", "x":5.5, "y":0}, {"label":"F5", "x":6.75, "y":0}, {"label":"F6", "x":7.75, "y":0}, {"label":"F7", "x":8.75, "y":0}, {"label":"F8", "x":9.75, "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":"F13", "x":15.5, "y":0}, {"label":"\u00ac", "x":0, "y":1.25}, {"label":"!", "x":1, "y":1.25}, {"label":"\"", "x":2, "y":1.25}, {"label":"\u00a3", "x":3, "y":1.25}, {"label":"$", "x":4, "y":1.25}, {"label":"%", "x":5, "y":1.25}, {"label":"^", "x":6, "y":1.25}, {"label":"&", "x":7, "y":1.25}, {"label":"*", "x":8, "y":1.25}, {"label":"(", "x":9, "y":1.25}, {"label":")", "x":10, "y":1.25}, {"label":"_", "x":11, "y":1.25}, {"label":"+", "x":12, "y":1.25}, {"label":"Backspace", "x":13, "y":1.25}, {"label":"Fn", "x":14, "y":1.25}, {"label":"Delete", "x":15.5, "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":"Enter", "x":13.75, "y":2.25, "w":1.25, "h":2}, {"label":"PgUp", "x":15.5, "y":2.25}, {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, {"label":"A", "x":1.75, "y":3.25}, {"label":"S", "x":2.75, "y":3.25}, {"label":"D", "x":3.75, "y":3.25}, {"label":"F", "x":4.75, "y":3.25}, {"label":"G", "x":5.75, "y":3.25}, {"label":"H", "x":6.75, "y":3.25}, {"label":"J", "x":7.75, "y":3.25}, {"label":"K", "x":8.75, "y":3.25}, {"label":"L", "x":9.75, "y":3.25}, {"label":":", "x":10.75, "y":3.25}, {"label":"@", "x":11.75, "y":3.25}, {"label":"~", "x":12.75, "y":3.25}, {"label":"PgDn", "x":15.5, "y":3.25}, {"label":"Shift", "x":0, "y":4.25, "w":1.25}, {"label":"|", "x":1.25, "y":4.25}, {"label":"Z", "x":2.25, "y":4.25}, {"label":"X", "x":3.25, "y":4.25}, {"label":"C", "x":4.25, "y":4.25}, {"label":"V", "x":5.25, "y":4.25}, {"label":"B", "x":6.25, "y":4.25}, {"label":"N", "x":7.25, "y":4.25}, {"label":"M", "x":8.25, "y":4.25}, {"label":"<", "x":9.25, "y":4.25}, {"label":">", "x":10.25, "y":4.25}, {"label":"?", "x":11.25, "y":4.25}, {"label":"Shift", "x":12.25, "y":4.25, "w":1.75}, {"label":"Insert", "x":15.5, "y":4.25}, {"label":"\u2191", "x":14.25, "y":4.5}, {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, {"label":"Win", "x":1.25, "y":5.25, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, {"x":3.75, "y":5.25, "w":6.25}, {"label":"AltGr", "x":10, "y":5.25}, {"label":"Win", "x":11, "y":5.25}, {"label":"Ctrl", "x":12, "y":5.25}, {"label":"\u2190", "x":13.25, "y":5.5}, {"label":"\u2193", "x":14.25, "y":5.5}, {"label":"\u2192", "x":15.25, "y":5.5}] + } + } +} diff --git a/keyboards/lw75/keymaps/ansi_split_backspace/keymap.c b/keyboards/lw75/keymaps/ansi_split_backspace/keymap.c new file mode 100644 index 000000000000..6f8a8b03caf9 --- /dev/null +++ b/keyboards/lw75/keymaps/ansi_split_backspace/keymap.c @@ -0,0 +1,16 @@ +// Copyright 2023 Laneware Peripherals +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_ansi_splitbs( + KC_MUTE, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_MPLY, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_INS, + KC_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, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT) +}; + diff --git a/keyboards/lw75/keymaps/default/keymap.c b/keyboards/lw75/keymaps/default/keymap.c new file mode 100644 index 000000000000..b66e50460da7 --- /dev/null +++ b/keyboards/lw75/keymaps/default/keymap.c @@ -0,0 +1,15 @@ +// Copyright 2023 Laneware Peripherals +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_ansi( + KC_MUTE, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_INS, + KC_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, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT) +}; diff --git a/keyboards/lw75/keymaps/iso/keymap.c b/keyboards/lw75/keymaps/iso/keymap.c new file mode 100644 index 000000000000..b6cba5917550 --- /dev/null +++ b/keyboards/lw75/keymaps/iso/keymap.c @@ -0,0 +1,16 @@ +// Copyright 2023 Laneware Peripherals +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_iso( + KC_MUTE, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_INS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGUP, + KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT) +}; + diff --git a/keyboards/lw75/keymaps/iso_split_backspace/keymap.c b/keyboards/lw75/keymaps/iso_split_backspace/keymap.c new file mode 100644 index 000000000000..d8b3b551ef2d --- /dev/null +++ b/keyboards/lw75/keymaps/iso_split_backspace/keymap.c @@ -0,0 +1,17 @@ +// Copyright 2023 Laneware Peripherals +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_iso_splitbs( + KC_MUTE, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_MPLY, 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_INS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGUP, + KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT) +}; + + diff --git a/keyboards/lw75/keymaps/via/keymap.c b/keyboards/lw75/keymaps/via/keymap.c new file mode 100644 index 000000000000..1fa513d12f98 --- /dev/null +++ b/keyboards/lw75/keymaps/via/keymap.c @@ -0,0 +1,47 @@ +// Copyright 2023 Laneware Peripherals +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_iso_splitbs( + KC_MUTE, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_MPLY, 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_INS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGUP, + KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [1] = LAYOUT_iso_splitbs( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_iso_splitbs( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_iso_splitbs( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [0] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, + [1] = {ENCODER_CCW_CW(KC_TRNS, KC_TRNS)}, + [2] = {ENCODER_CCW_CW(KC_TRNS, KC_TRNS)}, + [3] = {ENCODER_CCW_CW(KC_TRNS, KC_TRNS)}, +}; +#endif diff --git a/keyboards/lw75/keymaps/via/rules.mk b/keyboards/lw75/keymaps/via/rules.mk new file mode 100644 index 000000000000..f1adcab005e8 --- /dev/null +++ b/keyboards/lw75/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/lw75/lw75.c b/keyboards/lw75/lw75.c new file mode 100644 index 000000000000..110a26ce1a40 --- /dev/null +++ b/keyboards/lw75/lw75.c @@ -0,0 +1,19 @@ +// Copyright 2023 Laneware Peripherals +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "lw75.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_VOLU); + } else { + tap_code(KC_VOLD); + } + } + return true; +} +#endif + diff --git a/keyboards/lw75/lw75.h b/keyboards/lw75/lw75.h new file mode 100644 index 000000000000..cfbaf8146748 --- /dev/null +++ b/keyboards/lw75/lw75.h @@ -0,0 +1,138 @@ +// Copyright 2023 Laneware Peripherals +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "quantum.h" + +/* ┌───┐┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐ ┌───┐ + * │000││001││002│003│004│005││006│007│008│009││010│011│012│013│ │014│ + * └───┘└───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘ └───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┐ + * │100│101│102│103│104│105│106│107│108│109│110│111│112│ 113 │ │115│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┤ + * │ 200 │201│202│203│204│205│206│207│208│209│210│211│212│ 213 │ │214│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ├───┤ + * │ 300 │301│302│303│304│305│306│307│308│309│310│311│ 313 │ │314│ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┘ ├───┤ + * │ 400 │402│403│404│405│406│407│408│409│410│411│ 412 │┌───┐│414│ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┘│413│└───┘ + * │ 500│ 501│ 502│ 503 │504│505│506│┌───┼───┼───┐ + * └────┴────┴────┴────────────────────────┴───┴───┴───┘│507│508│509│ + * └───┴───┴───┘ + */ + +#define LAYOUT_ansi( \ + 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, K115, \ + 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, K313, K314, \ + K400, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K414, \ + K500, K501, K502, K503, K504, K505, K506, K507, K508, K509 \ +) { \ + { 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, KC_NO, K115 }, \ + { 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, KC_NO, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K414}, \ + { K500, K501, K502, K503, K504, K505, K506, K507, K508, K509} \ +} + +/* ┌───┐┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐ ┌───┐ + * │000││001││002│003│004│005││006│007│008│009││010│011│012│013│ │014│ + * └───┘└───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘ └───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┐ + * │100│101│102│103│104│105│106│107│108│109│110│111│112│113│114│ │115│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┤ + * │ 200 │201│202│203│204│205│206│207│208│209│210│211│212│ 213 │ │214│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ├───┤ + * │ 300 │301│302│303│304│305│306│307│308│309│310│311│ 313 │ │314│ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┘ ├───┤ + * │ 400 │402│403│404│405│406│407│408│409│410│411│ 412 │┌───┐│414│ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┘│413│└───┘ + * │ 500│ 501│ 502│ 503 │504│505│506│┌───┼───┼───┐ + * └────┴────┴────┴────────────────────────┴───┴───┴───┘│507│508│509│ + * └───┴───┴───┘ + */ + +#define LAYOUT_ansi_splitbs( \ + 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, K115, \ + 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, K313, K314, \ + K400, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K414, \ + K500, K501, K502, K503, K504, K505, K506, K507, K508, K509 \ +) { \ + { 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, K115 }, \ + { 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, KC_NO, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K414}, \ + { K500, K501, K502, K503, K504, K505, K506, K507, K508, K509} \ +} + +/* ┌───┐┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐ ┌───┐ + * │000││001││002│003│004│005││006│007│008│009││010│011│012│013│ │014│ + * └───┘└───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘ └───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┐ + * │100│101│102│103│104│105│106│107│108│109│110│111│112│ 113 │ │115│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┤ + * │ 200 │201│202│203│204│205│206│207│208│209│210│211│212│ 313 │ │214│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ ├───┤ + * │ 300 │301│302│303│304│305│306│307│308│309│310│311│312│ │ │314│ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┘ ├───┤ + * │ 400│401│402│403│404│405│406│407│408│409│410│411│ 412 │┌───┐│414│ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┘│413│└───┘ + * │ 500│ 501│ 502│ 503 │504│505│506│┌───┼───┼───┐ + * └────┴────┴────┴────────────────────────┴───┴───┴───┘│507│508│509│ + * └───┴───┴───┘ + */ + +#define LAYOUT_iso( \ + 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, K115, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214,\ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, \ + K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K414, \ + K500, K501, K502, K503, K504, K505, K506, K507, K508, K509 \ +) { \ + { 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, KC_NO, K115 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, KC_NO, K214}, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314}, \ + { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K414}, \ + { K500, K501, K502, K503, K504, K505, K506, K507, K508, K509} \ +} + +/* ┌───┐┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐ ┌───┐ + * │000││001││002│003│004│005││006│007│008│009││010│011│012│013│ │014│ + * └───┘└───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘ └───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┐ + * │100│101│102│103│104│105│106│107│108│109│110│111│112│113│114│ │115│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┤ + * │ 200 │201│202│203│204│205│206│207│208│209│210│211│212│ 313 │ │214│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ ├───┤ + * │ 300 │301│302│303│304│305│306│307│308│309│310│311│312│ │ │314│ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┘ ├───┤ + * │ 400│401│402│403│404│405│406│407│408│409│410│411│ 412 │┌───┐│414│ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┘│413│└───┘ + * │ 500│ 501│ 502│ 503 │504│505│506│┌───┼───┼───┐ + * └────┴────┴────┴────────────────────────┴───┴───┴───┘│507│508│509│ + * └───┴───┴───┘ + */ + +#define LAYOUT_iso_splitbs( \ + 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, K115, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214,\ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, \ + K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K414, \ + K500, K501, K502, K503, K504, K505, K506, K507, K508, K509 \ +) { \ + { 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, K115 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, KC_NO, K214}, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314}, \ + { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K414}, \ + { K500, K501, K502, K503, K504, K505, K506, K507, K508, K509} \ +} diff --git a/keyboards/lw75/readme.md b/keyboards/lw75/readme.md new file mode 100644 index 000000000000..9f64108fa519 --- /dev/null +++ b/keyboards/lw75/readme.md @@ -0,0 +1,25 @@ +# LW-75 + +![LW75](https://i.imgur.com/JczcWsmh.jpg) + +A 75% Keyboard with a LHS rotary encoder, made and sold by Laneware Peripherals. + +* Keyboard Maintainer: [Laneware Peripherals](https://github.com/laneware) +* Hardware Supported: LW-75 +* Hardware Availability: [Laneware Peripherals](https://lanewareperipherals.com/), + +Make example for this keyboard (after setting up your build environment): + + make lw75:default + +Flashing example for this keyboard: + make lw75:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 2 ways: + +* **Bootmagic reset**: Hold down the encoder and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB diff --git a/keyboards/lw75/rules.mk b/keyboards/lw75/rules.mk new file mode 100644 index 000000000000..131aa72aeb5d --- /dev/null +++ b/keyboards/lw75/rules.mk @@ -0,0 +1,13 @@ +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = yes From e871ddaae8d77d0a0b1bcf490ffdcc79cf39a61a Mon Sep 17 00:00:00 2001 From: mechlovin <57231893+mechlovin@users.noreply.github.com> Date: Wed, 8 Feb 2023 11:51:51 +0700 Subject: [PATCH 138/139] [Keyboard] Fix the underglow RGB LED (#19622) Co-authored-by: h40 <73354045+h40io@users.noreply.github.com> Co-authored-by: Drashna Jaelre --- keyboards/mechlovin/adelais/adelais.c | 8 ++++++++ keyboards/mechlovin/adelais/standard_led/arm/rules.mk | 1 - 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/keyboards/mechlovin/adelais/adelais.c b/keyboards/mechlovin/adelais/adelais.c index b9df471d3351..da954bce04ed 100644 --- a/keyboards/mechlovin/adelais/adelais.c +++ b/keyboards/mechlovin/adelais/adelais.c @@ -15,3 +15,11 @@ */ #include "adelais.h" + +#ifdef RGBLIGHT_ENABLE +void keyboard_post_init_kb(void) { + // Call the post init code. + rgblight_sethsv_at(255, 255, 255, 0); + keyboard_post_init_user(); +} +#endif \ No newline at end of file diff --git a/keyboards/mechlovin/adelais/standard_led/arm/rules.mk b/keyboards/mechlovin/adelais/standard_led/arm/rules.mk index 2a0951eabd36..16a636a342ba 100644 --- a/keyboards/mechlovin/adelais/standard_led/arm/rules.mk +++ b/keyboards/mechlovin/adelais/standard_led/arm/rules.mk @@ -1,2 +1 @@ -WS2812_DRIVER = spi DEFAULT_FOLDER = mechlovin/adelais/standard_led/arm/rev2 \ No newline at end of file From cf45a0529671e33fdb63e3003d4340d7320b3e8e Mon Sep 17 00:00:00 2001 From: beelzebubi <59477216+beelzebubi@users.noreply.github.com> Date: Wed, 8 Feb 2023 05:54:27 +0100 Subject: [PATCH 139/139] [Keyboard] Add Bear65 v2 (#19578) Co-authored-by: jack <0x6a73@protonmail.com> Co-authored-by: Tom Sennewald --- keyboards/jacky_studio/bear_65/bear_65.h | 32 +- keyboards/jacky_studio/bear_65/config.h | 59 ++-- keyboards/jacky_studio/bear_65/info.json | 19 - keyboards/jacky_studio/bear_65/rev1/info.json | 165 +++++++++ keyboards/jacky_studio/bear_65/rev1/rev1.h | 47 +++ keyboards/jacky_studio/bear_65/rev1/rules.mk | 17 + keyboards/jacky_studio/bear_65/rev2/info.json | 324 ++++++++++++++++++ keyboards/jacky_studio/bear_65/rev2/rev2.h | 76 ++++ keyboards/jacky_studio/bear_65/rev2/rules.mk | 17 + keyboards/jacky_studio/bear_65/rules.mk | 24 +- 10 files changed, 677 insertions(+), 103 deletions(-) delete mode 100644 keyboards/jacky_studio/bear_65/info.json create mode 100644 keyboards/jacky_studio/bear_65/rev1/info.json create mode 100644 keyboards/jacky_studio/bear_65/rev1/rev1.h create mode 100644 keyboards/jacky_studio/bear_65/rev1/rules.mk create mode 100644 keyboards/jacky_studio/bear_65/rev2/info.json create mode 100644 keyboards/jacky_studio/bear_65/rev2/rev2.h create mode 100644 keyboards/jacky_studio/bear_65/rev2/rules.mk diff --git a/keyboards/jacky_studio/bear_65/bear_65.h b/keyboards/jacky_studio/bear_65/bear_65.h index 872436fcd46c..be8a14a86f53 100644 --- a/keyboards/jacky_studio/bear_65/bear_65.h +++ b/keyboards/jacky_studio/bear_65/bear_65.h @@ -18,30 +18,8 @@ #include "quantum.h" -#define LAYOUT_all( \ - K31, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K4E, \ - K1E, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ - K2E, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ - K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ - K40, K43, K45, K46, K48, K4A, K4B, K4C, K4D \ -) { \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ - { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ - { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, K2E }, \ - { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ - { K40, KC_NO, KC_NO, K43, KC_NO, K45, K46, KC_NO, K48, KC_NO, K4A, K4B, K4C, K4D, K4E }, \ -} - -#define LAYOUT_full_bs( \ - K31, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K4E, \ - K1E, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ - K2E, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ - K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ - K40, K43, K45, K46, K48, K4A, K4B, K4C, K4D \ -) { \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, KC_NO }, \ - { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ - { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, K2E }, \ - { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ - { K40, KC_NO, KC_NO, K43, KC_NO, K45, K46, KC_NO, K48, KC_NO, K4A, K4B, K4C, K4D, K4E }, \ -} +#if defined(KEYBOARD_jacky_studio_bear_65_rev1) + #include "rev1.h" +#elif defined(KEYBOARD_jacky_studio_bear_65_rev2) + #include "rev2.h" +#endif diff --git a/keyboards/jacky_studio/bear_65/config.h b/keyboards/jacky_studio/bear_65/config.h index c2ff9c38c8ae..391697633c1f 100644 --- a/keyboards/jacky_studio/bear_65/config.h +++ b/keyboards/jacky_studio/bear_65/config.h @@ -1,18 +1,5 @@ -/* Copyright 2020 MudkipMao - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ +// Copyright 2017-2021 QMK +// SPDX-License-Identifier: GPL-2.0-or-later #pragma once @@ -35,26 +22,31 @@ #define MATRIX_ROW_PINS { B0, B1, B2, B3, B7 } #define MATRIX_COL_PINS { D0, D1, D2, D3, D5, D4, D6, D7, B4, F7, F6, F5, F4, F1, F0 } -/* Setting the matrix value of top left key for bootmagic lite */ -#define BOOTMAGIC_LITE_ROW 3 -#define BOOTMAGIC_LITE_COLUMN 1 - +/* COL2ROW or ROW2COL */ #define DIODE_DIRECTION ROW2COL #define LED_CAPS_LOCK_PIN C7 +#define LED_PIN_ON_STATE 0 +/* number of backlight levels */ #define BACKLIGHT_PIN B6 -#define BACKLIGHT_BREATHING -#define BACKLIGHT_LEVELS 4 +#ifdef BACKLIGHT_PIN +#define BACKLIGHT_LEVELS 3 +#endif + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE + +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE #define RGB_DI_PIN E2 #ifdef RGB_DI_PIN - #define RGBLED_NUM 15 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_LIMIT_VAL 139 /* The maximum brightness level */ - #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +#define RGBLIGHT_LIMIT_VAL 200 +#define RGBLIGHT_DEFAULT_VAL 50 #define RGBLIGHT_EFFECT_BREATHING #define RGBLIGHT_EFFECT_RAINBOW_MOOD #define RGBLIGHT_EFFECT_RAINBOW_SWIRL @@ -65,12 +57,11 @@ #define RGBLIGHT_EFFECT_RGB_TEST #define RGBLIGHT_EFFECT_ALTERNATING #define RGBLIGHT_EFFECT_TWINKLE -#endif +#define RGBLED_NUM 20 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +/* If defined, the RGB lighting will be switched off when the host goes to sleep */ +#define RGBLIGHT_SLEEP -/* RGB matrix support */ -#ifdef RGB_MATRIX_ENABLE -#define RGB_MATRIX_KEYPRESSES -#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 220 -#define RGB_MATRIX_FRAMEBUFFER_EFFECTS -#define RGB_MATRIX_LED_COUNT 12 // Number of LEDs #endif diff --git a/keyboards/jacky_studio/bear_65/info.json b/keyboards/jacky_studio/bear_65/info.json deleted file mode 100644 index 151fd6fa5f7b..000000000000 --- a/keyboards/jacky_studio/bear_65/info.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "keyboard_name": "Bear 65", - "manufacturer": "Jacky", - "url": "https://qmk.fm/keyboards", - "maintainer": "qmk", - "usb": { - "vid": "0xA13B", - "pid": "0x000A", - "device_version": "0.0.1" - }, - "layouts": { - "LAYOUT_all": { - "layout": [{"label":"Esc", "x":0.5, "y":0}, {"label":"~", "x":1.75, "y":0}, {"label":"!", "x":2.75, "y":0}, {"label":"@", "x":3.75, "y":0}, {"label":"#", "x":4.75, "y":0}, {"label":"$", "x":5.75, "y":0}, {"label":"%", "x":6.75, "y":0}, {"label":"^", "x":7.75, "y":0}, {"label":"&", "x":11.25, "y":0}, {"label":"*", "x":12.25, "y":0}, {"label":"(", "x":13.25, "y":0}, {"label":")", "x":14.25, "y":0}, {"label":"_", "x":15.25, "y":0}, {"label":"+", "x":16.25, "y":0}, {"label":"|", "x":17.25, "y":0}, {"label":"~", "x":18.25, "y":0}, {"label":"Del", "x":19.75, "y":0}, {"label":"PgUp", "x":0.25, "y":1}, {"label":"Tab", "x":1.75, "y":1, "w":1.5}, {"label":"Q", "x":3.25, "y":1}, {"label":"W", "x":4.25, "y":1}, {"label":"E", "x":5.25, "y":1}, {"label":"R", "x":6.25, "y":1}, {"label":"T", "x":7.25, "y":1}, {"label":"Y", "x":10.75, "y":1}, {"label":"U", "x":11.75, "y":1}, {"label":"I", "x":12.75, "y":1}, {"label":"O", "x":13.75, "y":1}, {"label":"P", "x":14.75, "y":1}, {"label":"{", "x":15.75, "y":1}, {"label":"}", "x":16.75, "y":1}, {"label":"Backspace", "x":17.75, "y":1, "w":1.5}, {"label":"PgDn", "x":0, "y":2}, {"label":"Caps Lock", "x":1.75, "y":2, "w":1.75}, {"label":"A", "x":3.5, "y":2}, {"label":"S", "x":4.5, "y":2}, {"label":"D", "x":5.5, "y":2}, {"label":"F", "x":6.5, "y":2}, {"label":"G", "x":7.5, "y":2}, {"label":"H", "x":11, "y":2}, {"label":"J", "x":12, "y":2}, {"label":"K", "x":13, "y":2}, {"label":"L", "x":14, "y":2}, {"label":":", "x":15, "y":2}, {"label":"\"", "x":16, "y":2}, {"label":"Enter", "x":17, "y":2, "w":2.25}, {"label":"Shift", "x":1.75, "y":3, "w":2.25}, {"label":"Z", "x":4, "y":3}, {"label":"X", "x":5, "y":3}, {"label":"C", "x":6, "y":3}, {"label":"V", "x":7, "y":3}, {"label":"B", "x":8, "y":3}, {"label":"B", "x":10.5, "y":3}, {"label":"N", "x":11.5, "y":3}, {"label":"M", "x":12.5, "y":3}, {"label":"<", "x":13.5, "y":3}, {"label":">", "x":14.5, "y":3}, {"label":"?", "x":15.5, "y":3}, {"label":"Shift", "x":16.5, "y":3, "w":1.75}, {"label":"Up", "x":18.25, "y":3}, {"label":"Ctrl", "x":1.75, "y":4, "w":1.5}, {"label":"Alt", "x":4.75, "y":4, "w":1.25}, {"x":6, "y":4, "w":2.25}, {"label":"Win", "x":8.25, "y":4}, {"x":10.5, "y":4, "w":2.75}, {"label":"Alt", "x":13.25, "y":4, "w":1.5}, {"label":"Left", "x":17.25, "y":4}, {"label":"Down", "x":18.25, "y":4}, {"label":"Right", "x":19.25, "y":4}] - }, - "LAYOUT_full_bs": { - "layout": [{"label":"Esc", "x":0.5, "y":0}, {"label":"~", "x":1.75, "y":0}, {"label":"!", "x":2.75, "y":0}, {"label":"@", "x":3.75, "y":0}, {"label":"#", "x":4.75, "y":0}, {"label":"$", "x":5.75, "y":0}, {"label":"%", "x":6.75, "y":0}, {"label":"^", "x":7.75, "y":0}, {"label":"&", "x":11.25, "y":0}, {"label":"*", "x":12.25, "y":0}, {"label":"(", "x":13.25, "y":0}, {"label":")", "x":14.25, "y":0}, {"label":"_", "x":15.25, "y":0}, {"label":"+", "x":16.25, "y":0}, {"label":"Backspace", "x":17.25, "y":0, "w":2}, {"label":"Del", "x":19.75, "y":0}, {"label":"PgUp", "x":0.25, "y":1}, {"label":"Tab", "x":1.75, "y":1, "w":1.5}, {"label":"Q", "x":3.25, "y":1}, {"label":"W", "x":4.25, "y":1}, {"label":"E", "x":5.25, "y":1}, {"label":"R", "x":6.25, "y":1}, {"label":"T", "x":7.25, "y":1}, {"label":"Y", "x":10.75, "y":1}, {"label":"U", "x":11.75, "y":1}, {"label":"I", "x":12.75, "y":1}, {"label":"O", "x":13.75, "y":1}, {"label":"P", "x":14.75, "y":1}, {"label":"{", "x":15.75, "y":1}, {"label":"}", "x":16.75, "y":1}, {"label":"|", "x":17.75, "y":1, "w":1.5}, {"label":"PgDn", "x":0, "y":2}, {"label":"Caps Lock", "x":1.75, "y":2, "w":1.75}, {"label":"A", "x":3.5, "y":2}, {"label":"S", "x":4.5, "y":2}, {"label":"D", "x":5.5, "y":2}, {"label":"F", "x":6.5, "y":2}, {"label":"G", "x":7.5, "y":2}, {"label":"H", "x":11, "y":2}, {"label":"J", "x":12, "y":2}, {"label":"K", "x":13, "y":2}, {"label":"L", "x":14, "y":2}, {"label":":", "x":15, "y":2}, {"label":"\"", "x":16, "y":2}, {"label":"Enter", "x":17, "y":2, "w":2.25}, {"label":"Shift", "x":1.75, "y":3, "w":2.25}, {"label":"Z", "x":4, "y":3}, {"label":"X", "x":5, "y":3}, {"label":"C", "x":6, "y":3}, {"label":"V", "x":7, "y":3}, {"label":"B", "x":8, "y":3}, {"label":"B", "x":10.5, "y":3}, {"label":"N", "x":11.5, "y":3}, {"label":"M", "x":12.5, "y":3}, {"label":"<", "x":13.5, "y":3}, {"label":">", "x":14.5, "y":3}, {"label":"?", "x":15.5, "y":3}, {"label":"Shift", "x":16.5, "y":3, "w":1.75}, {"label":"Up", "x":18.25, "y":3}, {"label":"Ctrl", "x":1.75, "y":4, "w":1.5}, {"label":"Alt", "x":4.75, "y":4, "w":1.25}, {"x":6, "y":4, "w":2.25}, {"label":"Win", "x":8.25, "y":4}, {"x":10.5, "y":4, "w":2.75}, {"label":"Alt", "x":13.25, "y":4, "w":1.5}, {"label":"Left", "x":17.25, "y":4}, {"label":"Down", "x":18.25, "y":4}, {"label":"Right", "x":19.25, "y":4}] - } - } -} diff --git a/keyboards/jacky_studio/bear_65/rev1/info.json b/keyboards/jacky_studio/bear_65/rev1/info.json new file mode 100644 index 000000000000..e87eeb548430 --- /dev/null +++ b/keyboards/jacky_studio/bear_65/rev1/info.json @@ -0,0 +1,165 @@ +{ + "keyboard_name": "Bear 65", + "manufacturer": "Jacky", + "url": "https://qmk.fm/keyboards", + "maintainer": "qmk", + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "usb": { + "vid": "0xA13B", + "pid": "0x000A", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label":"Esc", "x":0.5, "y":0}, + {"label":"~", "x":1.75, "y":0}, + {"label":"!", "x":2.75, "y":0}, + {"label":"@", "x":3.75, "y":0}, + {"label":"#", "x":4.75, "y":0}, + {"label":"$", "x":5.75, "y":0}, + {"label":"%", "x":6.75, "y":0}, + {"label":"^", "x":7.75, "y":0}, + {"label":"&", "x":11.25, "y":0}, + {"label":"*", "x":12.25, "y":0}, + {"label":"(", "x":13.25, "y":0}, + {"label":")", "x":14.25, "y":0}, + {"label":"_", "x":15.25, "y":0}, + {"label":"+", "x":16.25, "y":0}, + {"label":"|", "x":17.25, "y":0}, + {"label":"~", "x":18.25, "y":0}, + {"label":"Del", "x":19.75, "y":0}, + + {"label":"PgUp", "x":0.25, "y":1}, + {"label":"Tab", "x":1.75, "y":1, "w":1.5}, + {"label":"Q", "x":3.25, "y":1}, + {"label":"W", "x":4.25, "y":1}, + {"label":"E", "x":5.25, "y":1}, + {"label":"R", "x":6.25, "y":1}, + {"label":"T", "x":7.25, "y":1}, + {"label":"Y", "x":10.75, "y":1}, + {"label":"U", "x":11.75, "y":1}, + {"label":"I", "x":12.75, "y":1}, + {"label":"O", "x":13.75, "y":1}, + {"label":"P", "x":14.75, "y":1}, + {"label":"{", "x":15.75, "y":1}, + {"label":"}", "x":16.75, "y":1}, + {"label":"Backspace", "x":17.75, "y":1, "w":1.5}, + + {"label":"PgDn", "x":0, "y":2}, + {"label":"Caps Lock", "x":1.75, "y":2, "w":1.75}, + {"label":"A", "x":3.5, "y":2}, + {"label":"S", "x":4.5, "y":2}, + {"label":"D", "x":5.5, "y":2}, + {"label":"F", "x":6.5, "y":2}, + {"label":"G", "x":7.5, "y":2}, + {"label":"H", "x":11, "y":2}, + {"label":"J", "x":12, "y":2}, + {"label":"K", "x":13, "y":2}, + {"label":"L", "x":14, "y":2}, + {"label":":", "x":15, "y":2}, + {"label":"\"", "x":16, "y":2}, + {"label":"Enter", "x":17, "y":2, "w":2.25}, + + {"label":"Shift", "x":1.75, "y":3, "w":2.25}, + {"label":"Z", "x":4, "y":3}, + {"label":"X", "x":5, "y":3}, + {"label":"C", "x":6, "y":3}, + {"label":"V", "x":7, "y":3}, + {"label":"B", "x":8, "y":3}, + {"label":"B", "x":10.5, "y":3}, + {"label":"N", "x":11.5, "y":3}, + {"label":"M", "x":12.5, "y":3}, + {"label":"<", "x":13.5, "y":3}, + {"label":">", "x":14.5, "y":3}, + {"label":"?", "x":15.5, "y":3}, + {"label":"Shift", "x":16.5, "y":3, "w":1.75}, + {"label":"Up", "x":18.25, "y":3}, + + {"label":"Ctrl", "x":1.75, "y":4, "w":1.5}, + {"label":"Alt", "x":4.75, "y":4, "w":1.25}, + {"x":6, "y":4, "w":2.25}, + {"label":"Win", "x":8.25, "y":4}, + {"x":10.5, "y":4, "w":2.75}, + {"label":"Alt", "x":13.25, "y":4, "w":1.5}, + {"label":"Left", "x":17.25, "y":4}, + {"label":"Down", "x":18.25, "y":4}, + {"label":"Right", "x":19.25, "y":4}] + }, + "LAYOUT_full_bs": { + "layout": [ + {"label":"Esc", "x":0.5, "y":0}, + {"label":"~", "x":1.75, "y":0}, + {"label":"!", "x":2.75, "y":0}, + {"label":"@", "x":3.75, "y":0}, + {"label":"#", "x":4.75, "y":0}, + {"label":"$", "x":5.75, "y":0}, + {"label":"%", "x":6.75, "y":0}, + {"label":"^", "x":7.75, "y":0}, + {"label":"&", "x":11.25, "y":0}, + {"label":"*", "x":12.25, "y":0}, + {"label":"(", "x":13.25, "y":0}, + {"label":")", "x":14.25, "y":0}, + {"label":"_", "x":15.25, "y":0}, + {"label":"+", "x":16.25, "y":0}, + {"label":"Backspace", "x":17.25, "y":0, "w":2}, + {"label":"Del", "x":19.75, "y":0}, + + {"label":"PgUp", "x":0.25, "y":1}, + {"label":"Tab", "x":1.75, "y":1, "w":1.5}, + {"label":"Q", "x":3.25, "y":1}, + {"label":"W", "x":4.25, "y":1}, + {"label":"E", "x":5.25, "y":1}, + {"label":"R", "x":6.25, "y":1}, + {"label":"T", "x":7.25, "y":1}, + {"label":"Y", "x":10.75, "y":1}, + {"label":"U", "x":11.75, "y":1}, + {"label":"I", "x":12.75, "y":1}, + {"label":"O", "x":13.75, "y":1}, + {"label":"P", "x":14.75, "y":1}, + {"label":"{", "x":15.75, "y":1}, + {"label":"}", "x":16.75, "y":1}, + {"label":"|", "x":17.75, "y":1, "w":1.5}, + + {"label":"PgDn", "x":0, "y":2}, + {"label":"Caps Lock", "x":1.75, "y":2, "w":1.75}, + {"label":"A", "x":3.5, "y":2}, + {"label":"S", "x":4.5, "y":2}, + {"label":"D", "x":5.5, "y":2}, + {"label":"F", "x":6.5, "y":2}, + {"label":"G", "x":7.5, "y":2}, + {"label":"H", "x":11, "y":2}, + {"label":"J", "x":12, "y":2}, + {"label":"K", "x":13, "y":2}, + {"label":"L", "x":14, "y":2}, + {"label":":", "x":15, "y":2}, + {"label":"\"", "x":16, "y":2}, + {"label":"Enter", "x":17, "y":2, "w":2.25}, + + {"label":"Shift", "x":1.75, "y":3, "w":2.25}, + {"label":"Z", "x":4, "y":3}, + {"label":"X", "x":5, "y":3}, + {"label":"C", "x":6, "y":3}, + {"label":"V", "x":7, "y":3}, + {"label":"B", "x":8, "y":3}, + {"label":"B", "x":10.5, "y":3}, {"label":"N", "x":11.5, "y":3}, + {"label":"M", "x":12.5, "y":3}, + {"label":"<", "x":13.5, "y":3}, + {"label":">", "x":14.5, "y":3}, + {"label":"?", "x":15.5, "y":3}, + {"label":"Shift", "x":16.5, "y":3, "w":1.75}, + {"label":"Up", "x":18.25, "y":3}, + + {"label":"Ctrl", "x":1.75, "y":4, "w":1.5}, + {"label":"Alt", "x":4.75, "y":4, "w":1.25}, + {"x":6, "y":4, "w":2.25}, + {"label":"Win", "x":8.25, "y":4}, + {"x":10.5, "y":4, "w":2.75}, + {"label":"Alt", "x":13.25, "y":4, "w":1.5}, + {"label":"Left", "x":17.25, "y":4}, + {"label":"Down", "x":18.25, "y":4}, + {"label":"Right", "x":19.25, "y":4}] + } + } +} diff --git a/keyboards/jacky_studio/bear_65/rev1/rev1.h b/keyboards/jacky_studio/bear_65/rev1/rev1.h new file mode 100644 index 000000000000..901efe70b741 --- /dev/null +++ b/keyboards/jacky_studio/bear_65/rev1/rev1.h @@ -0,0 +1,47 @@ +/* Copyright 2020 MudkipMao + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "bear_65.h" + +#define LAYOUT_all( \ + K31, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K4E, \ + K1E, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K2E, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K43, K45, K46, K48, K4A, K4B, K4C, K4D \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, KC_NO, KC_NO, K43, KC_NO, K45, K46, KC_NO, K48, KC_NO, K4A, K4B, K4C, K4D, K4E }, \ +} + +#define LAYOUT_full_bs( \ + K31, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K4E, \ + K1E, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K2E, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K43, K45, K46, K48, K4A, K4B, K4C, K4D \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, KC_NO }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, KC_NO, KC_NO, K43, KC_NO, K45, K46, KC_NO, K48, KC_NO, K4A, K4B, K4C, K4D, K4E }, \ +} diff --git a/keyboards/jacky_studio/bear_65/rev1/rules.mk b/keyboards/jacky_studio/bear_65/rev1/rules.mk new file mode 100644 index 000000000000..5d90baa2afdb --- /dev/null +++ b/keyboards/jacky_studio/bear_65/rev1/rules.mk @@ -0,0 +1,17 @@ +# 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 = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + +LTO_ENABLE = yes # Use LTO flags to reduce firmware size + +RGB_MATRIX_ENABLE = no # Enable keyboard RGB matrix (do not use together with RGBLIGHT_ENABLE) +RGB_MATRIX_DRIVER = WS2812 # RGB matrix driver support diff --git a/keyboards/jacky_studio/bear_65/rev2/info.json b/keyboards/jacky_studio/bear_65/rev2/info.json new file mode 100644 index 000000000000..661ebecc9260 --- /dev/null +++ b/keyboards/jacky_studio/bear_65/rev2/info.json @@ -0,0 +1,324 @@ +{ + "keyboard_name": "Bear65 V2", + "manufacturer": "Jacky", + "url": "https://qmk.fm/keyboards", + "maintainer": "qmk", + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "usb": { + "vid": "0x45D4", + "pid": "0x0428", + "device_version": "0.0.1" + }, + "layout_aliases": { + "LAYOUT_all": "LAYOUT_wkl_full", + "LAYOUT_full_bs": "LAYOUT_wkl_bs" + }, + "layouts": { + "LAYOUT_wk_full": { + "layout": [ + {"label":"Esc", "x":0.5, "y":0}, + {"label":"~", "x":1.75, "y":0}, + {"label":"!", "x":2.75, "y":0}, + {"label":"@", "x":3.75, "y":0}, + {"label":"#", "x":4.75, "y":0}, + {"label":"$", "x":5.75, "y":0}, + {"label":"%", "x":6.75, "y":0}, + {"label":"^", "x":7.75, "y":0}, + {"label":"&", "x":11.25, "y":0}, + {"label":"*", "x":12.25, "y":0}, + {"label":"(", "x":13.25, "y":0}, + {"label":")", "x":14.25, "y":0}, + {"label":"_", "x":15.25, "y":0}, + {"label":"+", "x":16.25, "y":0}, + {"label":"|", "x":17.25, "y":0}, + {"label":"~", "x":18.25, "y":0}, + {"label":"Del", "x":19.75, "y":0}, + + {"label":"PgUp", "x":0.25, "y":1}, + {"label":"Tab", "x":1.75, "y":1, "w":1.5}, + {"label":"Q", "x":3.25, "y":1}, + {"label":"W", "x":4.25, "y":1}, + {"label":"E", "x":5.25, "y":1}, + {"label":"R", "x":6.25, "y":1}, + {"label":"T", "x":7.25, "y":1}, + {"label":"Y", "x":10.75, "y":1}, + {"label":"U", "x":11.75, "y":1}, + {"label":"I", "x":12.75, "y":1}, + {"label":"O", "x":13.75, "y":1}, + {"label":"P", "x":14.75, "y":1}, + {"label":"{", "x":15.75, "y":1}, + {"label":"}", "x":16.75, "y":1}, + {"label":"Backspace", "x":17.75, "y":1, "w":1.5}, + + {"label":"PgDn", "x":0, "y":2}, + {"label":"Caps Lock", "x":1.75, "y":2, "w":1.75}, + {"label":"A", "x":3.5, "y":2}, + {"label":"S", "x":4.5, "y":2}, + {"label":"D", "x":5.5, "y":2}, + {"label":"F", "x":6.5, "y":2}, + {"label":"G", "x":7.5, "y":2}, + {"label":"H", "x":11, "y":2}, + {"label":"J", "x":12, "y":2}, + {"label":"K", "x":13, "y":2}, + {"label":"L", "x":14, "y":2}, + {"label":":", "x":15, "y":2}, + {"label":"\"", "x":16, "y":2}, + {"label":"Enter", "x":17, "y":2, "w":2.25}, + + {"label":"Shift", "x":1.75, "y":3, "w":2.25}, + {"label":"Z", "x":4, "y":3}, + {"label":"X", "x":5, "y":3}, + {"label":"C", "x":6, "y":3}, + {"label":"V", "x":7, "y":3}, + {"label":"B", "x":8, "y":3}, + {"label":"B", "x":10.5, "y":3}, + {"label":"N", "x":11.5, "y":3}, + {"label":"M", "x":12.5, "y":3}, + {"label":"<", "x":13.5, "y":3}, + {"label":">", "x":14.5, "y":3}, + {"label":"?", "x":15.5, "y":3}, + {"label":"Shift", "x":16.5, "y":3, "w":1.75}, + {"label":"Up", "x":18.25, "y":3}, + + {"label":"Ctrl", "x":1.75, "y":4, "w":1.25}, + {"label":"Super", "x":3, "y":4}, + {"label":"Alt", "x":4, "y":4, "w":1.25}, + {"x":5.25, "y":4, "w":2.25}, + {"label":"Fn", "x":8.25, "y":4}, + {"x":11, "y":4, "w":2.75}, + {"label":"Alt", "x":13.75, "y":4, "w":1.25}, + {"label":"Ctrl", "x":15, "y":4}, + {"label":"Left", "x":17.25, "y":4}, + {"label":"Down", "x":18.25, "y":4}, + {"label":"Right", "x":19.25, "y":4}] + }, + "LAYOUT_wkl_full": { + "layout": [ + {"label":"Esc", "x":0.5, "y":0}, + {"label":"~", "x":1.75, "y":0}, + {"label":"!", "x":2.75, "y":0}, + {"label":"@", "x":3.75, "y":0}, + {"label":"#", "x":4.75, "y":0}, + {"label":"$", "x":5.75, "y":0}, + {"label":"%", "x":6.75, "y":0}, + {"label":"^", "x":7.75, "y":0}, + {"label":"&", "x":11.25, "y":0}, + {"label":"*", "x":12.25, "y":0}, + {"label":"(", "x":13.25, "y":0}, + {"label":")", "x":14.25, "y":0}, + {"label":"_", "x":15.25, "y":0}, + {"label":"+", "x":16.25, "y":0}, + {"label":"|", "x":17.25, "y":0}, + {"label":"~", "x":18.25, "y":0}, + {"label":"Del", "x":19.75, "y":0}, + + {"label":"PgUp", "x":0.25, "y":1}, + {"label":"Tab", "x":1.75, "y":1, "w":1.5}, + {"label":"Q", "x":3.25, "y":1}, + {"label":"W", "x":4.25, "y":1}, + {"label":"E", "x":5.25, "y":1}, + {"label":"R", "x":6.25, "y":1}, + {"label":"T", "x":7.25, "y":1}, + {"label":"Y", "x":10.75, "y":1}, + {"label":"U", "x":11.75, "y":1}, + {"label":"I", "x":12.75, "y":1}, + {"label":"O", "x":13.75, "y":1}, + {"label":"P", "x":14.75, "y":1}, + {"label":"{", "x":15.75, "y":1}, + {"label":"}", "x":16.75, "y":1}, + {"label":"Backspace", "x":17.75, "y":1, "w":1.5}, + + {"label":"PgDn", "x":0, "y":2}, + {"label":"Caps Lock", "x":1.75, "y":2, "w":1.75}, + {"label":"A", "x":3.5, "y":2}, + {"label":"S", "x":4.5, "y":2}, + {"label":"D", "x":5.5, "y":2}, + {"label":"F", "x":6.5, "y":2}, + {"label":"G", "x":7.5, "y":2}, + {"label":"H", "x":11, "y":2}, + {"label":"J", "x":12, "y":2}, + {"label":"K", "x":13, "y":2}, + {"label":"L", "x":14, "y":2}, + {"label":":", "x":15, "y":2}, + {"label":"\"", "x":16, "y":2}, + {"label":"Enter", "x":17, "y":2, "w":2.25}, + + {"label":"Shift", "x":1.75, "y":3, "w":2.25}, + {"label":"Z", "x":4, "y":3}, + {"label":"X", "x":5, "y":3}, + {"label":"C", "x":6, "y":3}, + {"label":"V", "x":7, "y":3}, + {"label":"B", "x":8, "y":3}, + {"label":"B", "x":10.5, "y":3}, + {"label":"N", "x":11.5, "y":3}, + {"label":"M", "x":12.5, "y":3}, + {"label":"<", "x":13.5, "y":3}, + {"label":">", "x":14.5, "y":3}, + {"label":"?", "x":15.5, "y":3}, + {"label":"Shift", "x":16.5, "y":3, "w":1.75}, + {"label":"Up", "x":18.25, "y":3}, + + {"label":"Ctrl", "x":1.75, "y":4, "w":1.25}, + {"label":"Alt", "x":3, "y":4}, + {"x":5.25, "y":4, "w":2.25}, + {"label":"Fn", "x":8.25, "y":4}, + {"x":11, "y":4, "w":2.75}, + {"label":"Alt", "x":13.75, "y":4, "w":1.25}, + {"label":"Left", "x":17.25, "y":4}, + {"label":"Down", "x":18.25, "y":4}, + {"label":"Right", "x":19.25, "y":4}] + } + "LAYOUT_wk_bs": { + "layout": [ + {"label":"Esc", "x":0.5, "y":0}, + {"label":"~", "x":1.75, "y":0}, + {"label":"!", "x":2.75, "y":0}, + {"label":"@", "x":3.75, "y":0}, + {"label":"#", "x":4.75, "y":0}, + {"label":"$", "x":5.75, "y":0}, + {"label":"%", "x":6.75, "y":0}, + {"label":"^", "x":7.75, "y":0}, + {"label":"&", "x":11.25, "y":0}, + {"label":"*", "x":12.25, "y":0}, + {"label":"(", "x":13.25, "y":0}, + {"label":")", "x":14.25, "y":0}, + {"label":"_", "x":15.25, "y":0}, + {"label":"+", "x":16.25, "y":0}, + {"label":"Back Space", "x":17.25, "y":0}, + {"label":"Del", "x":19.75, "y":0}, + + {"label":"PgUp", "x":0.25, "y":1}, + {"label":"Tab", "x":1.75, "y":1, "w":1.5}, + {"label":"Q", "x":3.25, "y":1}, + {"label":"W", "x":4.25, "y":1}, + {"label":"E", "x":5.25, "y":1}, + {"label":"R", "x":6.25, "y":1}, + {"label":"T", "x":7.25, "y":1}, + {"label":"Y", "x":10.75, "y":1}, + {"label":"U", "x":11.75, "y":1}, + {"label":"I", "x":12.75, "y":1}, + {"label":"O", "x":13.75, "y":1}, + {"label":"P", "x":14.75, "y":1}, + {"label":"{", "x":15.75, "y":1}, + {"label":"}", "x":16.75, "y":1}, + {"label":"|", "x":17.75, "y":1, "w":1.5}, + + {"label":"PgDn", "x":0, "y":2}, + {"label":"Caps Lock", "x":1.75, "y":2, "w":1.75}, + {"label":"A", "x":3.5, "y":2}, + {"label":"S", "x":4.5, "y":2}, + {"label":"D", "x":5.5, "y":2}, + {"label":"F", "x":6.5, "y":2}, + {"label":"G", "x":7.5, "y":2}, + {"label":"H", "x":11, "y":2}, + {"label":"J", "x":12, "y":2}, + {"label":"K", "x":13, "y":2}, + {"label":"L", "x":14, "y":2}, + {"label":":", "x":15, "y":2}, + {"label":"\"", "x":16, "y":2}, + {"label":"Enter", "x":17, "y":2, "w":2.25}, + + {"label":"Shift", "x":1.75, "y":3, "w":2.25}, + {"label":"Z", "x":4, "y":3}, + {"label":"X", "x":5, "y":3}, + {"label":"C", "x":6, "y":3}, + {"label":"V", "x":7, "y":3}, + {"label":"B", "x":8, "y":3}, + {"label":"B", "x":10.5, "y":3}, + {"label":"N", "x":11.5, "y":3}, + {"label":"M", "x":12.5, "y":3}, + {"label":"<", "x":13.5, "y":3}, + {"label":">", "x":14.5, "y":3}, + {"label":"?", "x":15.5, "y":3}, + {"label":"Shift", "x":16.5, "y":3, "w":1.75}, + {"label":"Up", "x":18.25, "y":3}, + + {"label":"Ctrl", "x":1.75, "y":4, "w":1.25}, + {"label":"Super", "x":3, "y":4}, + {"label":"Alt", "x":4, "y":4, "w":1.25}, + {"x":5.25, "y":4, "w":2.25}, + {"label":"Fn", "x":8.25, "y":4}, + {"x":11, "y":4, "w":2.75}, + {"label":"Alt", "x":13.75, "y":4, "w":1.25}, + {"label":"Ctrl", "x":15, "y":4}, + {"label":"Left", "x":17.25, "y":4}, + {"label":"Down", "x":18.25, "y":4}, + {"label":"Right", "x":19.25, "y":4}] + }, + "LAYOUT_wkl_bs": { + "layout": [ + {"label":"Esc", "x":0.5, "y":0}, + {"label":"~", "x":1.75, "y":0}, + {"label":"!", "x":2.75, "y":0}, + {"label":"@", "x":3.75, "y":0}, + {"label":"#", "x":4.75, "y":0}, + {"label":"$", "x":5.75, "y":0}, + {"label":"%", "x":6.75, "y":0}, + {"label":"^", "x":7.75, "y":0}, + {"label":"&", "x":11.25, "y":0}, + {"label":"*", "x":12.25, "y":0}, + {"label":"(", "x":13.25, "y":0}, + {"label":")", "x":14.25, "y":0}, + {"label":"_", "x":15.25, "y":0}, + {"label":"+", "x":16.25, "y":0}, + {"label":"Back Space", "x":17.25, "y":0}, + {"label":"Del", "x":19.75, "y":0}, + + {"label":"PgUp", "x":0.25, "y":1}, + {"label":"Tab", "x":1.75, "y":1, "w":1.5}, + {"label":"Q", "x":3.25, "y":1}, + {"label":"W", "x":4.25, "y":1}, + {"label":"E", "x":5.25, "y":1}, + {"label":"R", "x":6.25, "y":1}, + {"label":"T", "x":7.25, "y":1}, + {"label":"Y", "x":10.75, "y":1}, + {"label":"U", "x":11.75, "y":1}, + {"label":"I", "x":12.75, "y":1}, + {"label":"O", "x":13.75, "y":1}, + {"label":"P", "x":14.75, "y":1}, + {"label":"{", "x":15.75, "y":1}, + {"label":"}", "x":16.75, "y":1}, + {"label":"|", "x":17.75, "y":1, "w":1.5}, + + {"label":"PgDn", "x":0, "y":2}, + {"label":"Caps Lock", "x":1.75, "y":2, "w":1.75}, + {"label":"A", "x":3.5, "y":2}, + {"label":"S", "x":4.5, "y":2}, + {"label":"D", "x":5.5, "y":2}, + {"label":"F", "x":6.5, "y":2}, + {"label":"G", "x":7.5, "y":2}, + {"label":"H", "x":11, "y":2}, + {"label":"J", "x":12, "y":2}, + {"label":"K", "x":13, "y":2}, + {"label":"L", "x":14, "y":2}, + {"label":":", "x":15, "y":2}, + {"label":"\"", "x":16, "y":2}, + {"label":"Enter", "x":17, "y":2, "w":2.25}, + + {"label":"Shift", "x":1.75, "y":3, "w":2.25}, + {"label":"Z", "x":4, "y":3}, + {"label":"X", "x":5, "y":3}, + {"label":"C", "x":6, "y":3}, + {"label":"V", "x":7, "y":3}, + {"label":"B", "x":8, "y":3}, + {"label":"B", "x":10.5, "y":3}, {"label":"N", "x":11.5, "y":3}, + {"label":"M", "x":12.5, "y":3}, + {"label":"<", "x":13.5, "y":3}, + {"label":">", "x":14.5, "y":3}, + {"label":"?", "x":15.5, "y":3}, + {"label":"Shift", "x":16.5, "y":3, "w":1.75}, + {"label":"Up", "x":18.25, "y":3}, + + {"label":"Ctrl", "x":1.75, "y":4, "w":1.5}, + {"label":"Alt", "x":4.75, "y":4, "w":1.25}, + {"x":6, "y":4, "w":2.25}, + {"label":"Win", "x":8.25, "y":4}, + {"x":10.5, "y":4, "w":2.75}, + {"label":"Alt", "x":13.25, "y":4, "w":1.5}, + {"label":"Left", "x":17.25, "y":4}, + {"label":"Down", "x":18.25, "y":4}, + {"label":"Right", "x":19.25, "y":4}] + } + } +} diff --git a/keyboards/jacky_studio/bear_65/rev2/rev2.h b/keyboards/jacky_studio/bear_65/rev2/rev2.h new file mode 100644 index 000000000000..31cc43050482 --- /dev/null +++ b/keyboards/jacky_studio/bear_65/rev2/rev2.h @@ -0,0 +1,76 @@ +/* Copyright 2020 MudkipMao + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "bear_65.h" + +#define LAYOUT_wk_full( \ + K31, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K4E, \ + K1E, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K2E, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K41, K43, K45, K46, K48, K49, K4A, K4B, K4C, K4D \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, K41, KC_NO, K43, KC_NO, K45, K46, KC_NO, K48, K49, K4A, K4B, K4C, K4D, K4E }, \ +} + +#define LAYOUT_wkl_full( \ + K31, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K4E, \ + K1E, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K2E, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K43, K45, K46, K48, K49, K4B, K4C, K4D \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, KC_NO, KC_NO, K43, KC_NO, K45, K46, KC_NO, K48, K49, KC_NO, K4B, K4C, K4D, K4E }, \ +} + +#define LAYOUT_wk_bs( \ + K31, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K4E, \ + K1E, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K2E, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K41, K43, K45, K46, K48, K49, K4A, K4B, K4C, K4D \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, KC_NO }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, K41, KC_NO, K43, KC_NO, K45, K46, KC_NO, K48, K49, K4A, K4B, K4C, K4D, K4E }, \ +} + +#define LAYOUT_wkl_bs( \ + K31, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K4E, \ + K1E, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K2E, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K43, K45, K46, K48, K4A, K4B, K4C, K4D \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, KC_NO }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, KC_NO, KC_NO, K43, KC_NO, K45, K46, KC_NO, K48, KC_NO, K4A, K4B, K4C, K4D, K4E }, \ +} + diff --git a/keyboards/jacky_studio/bear_65/rev2/rules.mk b/keyboards/jacky_studio/bear_65/rev2/rules.mk new file mode 100644 index 000000000000..5d90baa2afdb --- /dev/null +++ b/keyboards/jacky_studio/bear_65/rev2/rules.mk @@ -0,0 +1,17 @@ +# 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 = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + +LTO_ENABLE = yes # Use LTO flags to reduce firmware size + +RGB_MATRIX_ENABLE = no # Enable keyboard RGB matrix (do not use together with RGBLIGHT_ENABLE) +RGB_MATRIX_DRIVER = WS2812 # RGB matrix driver support diff --git a/keyboards/jacky_studio/bear_65/rules.mk b/keyboards/jacky_studio/bear_65/rules.mk index 684173395ef3..67e93335d832 100644 --- a/keyboards/jacky_studio/bear_65/rules.mk +++ b/keyboards/jacky_studio/bear_65/rules.mk @@ -1,23 +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 = yes # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - -LTO_ENABLE = yes # Use LTO flags to reduce firmware size - -RGB_MATRIX_ENABLE = no # Enable keyboard RGB matrix (do not use together with RGBLIGHT_ENABLE) -RGB_MATRIX_DRIVER = WS2812 # RGB matrix driver support +DEFAULT_FOLDER = jacky_studio/bear65/rev1