diff options
Diffstat (limited to 'keyboards/idobao')
130 files changed, 3928 insertions, 1464 deletions
diff --git a/keyboards/idobao/id42/config.h b/keyboards/idobao/id42/config.h new file mode 100755 index 0000000000..a95578a9b3 --- /dev/null +++ b/keyboards/idobao/id42/config.h @@ -0,0 +1,75 @@ +// Copyright 2022 Vino Rodrigues (@vinorodrigues) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "config_common.h" + +/* Other settings */ + +/* NKRO by default is required to be turned on. This forces it on + during keyboard startup regardless of EEPROM setting. */ +#define FORCE_NKRO + +/* Change the USB polling rate [default = 1000Hz (1ms)] and + * use larger value of keys per scan for elite games */ +#define USB_POLLING_INTERVAL_MS 2 // 500Hz + +/* LED Matrix & Animations */ +#ifdef RGB_MATRIX_ENABLE + + #define RGB_DI_PIN B3 + #define DRIVER_LED_TOTAL 42 + + #define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended + #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // limits maximum brightness of LEDs to x out of 255. If not defined maximum brightness is set to 255 + + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 + + #define RGB_MATRIX_KEYPRESSES // enable key press 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 + + /* #if defined(RGB_MATRIX_KEYPRESSES) || defined(RGB_MATRIX_KEYRELEASES) */ + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE // Pulses keys hit to hue & value then fades value out + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE // Static single hue, pulses keys hit to shifted hue then fades to current hue + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE // Hue & value pulse near a single key hit then fades value out + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE // Hue & value pulse near multiple key hits then fades value out + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS // Hue & value pulse the same column and row of a single key hit then fades value out + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS // Hue & value pulse the same column and row of multiple key hits then fades value out + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS // Hue & value pulse away on the same column and row of a single key hit then fades value out + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS // Hue & value pulse away on the same column and row of multiple key hits then fades value out + #define ENABLE_RGB_MATRIX_SPLASH // Full gradient & value pulse away from a single key hit then fades value out + #define ENABLE_RGB_MATRIX_MULTISPLASH // Full gradient & value pulse away from multiple key hits then fades value out + #define ENABLE_RGB_MATRIX_SOLID_SPLASH // Hue & value pulse away from a single key hit then fades value out + #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH // Hue & value pulse away from multiple key hits then fades value out + /* #endif // RGB_MATRIX_KEYPRESSES | RGB_MATRIX_KEYRELEASES */ +#endif // RGB_MATRIX_ENABLE diff --git a/keyboards/idobao/id42/id42.c b/keyboards/idobao/id42/id42.c new file mode 100755 index 0000000000..ea3dccdfed --- /dev/null +++ b/keyboards/idobao/id42/id42.c @@ -0,0 +1,45 @@ +// Copyright 2022 Vino Rodrigues (@vinorodrigues) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "id42.h" + +#define __ NO_LED + +#ifdef RGB_MATRIX_ENABLE + +/* + * βββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ + * β41 β40 β39 β38 β37 β36 β35 β34 β33 β32 β31 β30 β + * βββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄ββββ€ + * β 29 β28 β27 β26 β25 β24 β23 β22 β21 β20 β 19 β + * ββββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄βββ¬β΄βββ¬ββββ€ + * β 18 β17 β16 β15 β14 β13 β12 β11 β 10 β 9 β 8 β + * ββββββ¬β΄βββ¬β΄ββββΌββββ΄ββββ΄ββ¬ββ΄ββββ΄ββββΌββ¬ββββΌββββΌββββ€ + * β 7 β 6 β 5 β 4 β 3 β β 2 β 1 β 0 β + * ββββββ΄ββββ΄βββββ΄ββββββββββ΄ββββββββββ βββββ΄ββββ΄ββββ + */ +led_config_t g_led_config = { { + // Key Matrix to LED Index + // WS2812 LED strings are addressed from 0 (1st) to DRIVER_LED_TOTAL-1 (last) + { 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30 }, + { 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, __, 19 }, + { 18, 17, 16, 15, 14, 13, 12, 11, 10, __, 9, 8 }, + { 7, 6, 5, 4, __, __, 3, __, __, 2, 1, 0 } +}, { + // LED Index to Physical Position + // **NB**: Reversed order + // Generated from: https://xelus.netlify.app/guides/KLE_to_RGB_parser + {224,64 }, {204,64 }, {183,64 }, {135,64 }, { 84,64 }, { 48,64 }, { 25,64 }, { 3,64 }, + {224,43 }, {204,43 }, {181,43 }, {158,43 }, {137,43 }, {117,43 }, { 97,43 }, { 76,43 }, { 56,43 }, { 36,43 }, { 8,43 }, + {216,21 }, {188,21 }, {168,21 }, {148,21 }, {127,21 }, {107,21 }, { 87,21 }, { 66,21 }, { 46,21 }, { 25,21 }, { 3,21 }, + {224,0 }, {204,0 }, {183,0 }, {163,0 }, {143,0 }, {122,0 }, {102,0 }, { 81,0 }, { 61,0 }, { 41,0 }, { 20,0 }, { 0,0 } +}, { + // LED Index to Flag + // **NB**: Reversed order + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 4, + 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, + 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4 +} }; + +#endif // RGB_MATRIX_ENABLE diff --git a/keyboards/idobao/id42/id42.h b/keyboards/idobao/id42/id42.h new file mode 100755 index 0000000000..d9bef6d021 --- /dev/null +++ b/keyboards/idobao/id42/id42.h @@ -0,0 +1,6 @@ +// Copyright 2022 Vino Rodrigues (@vinorodrigues) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "quantum.h" diff --git a/keyboards/idobao/id42/info.json b/keyboards/idobao/id42/info.json new file mode 100644 index 0000000000..8e9029b04e --- /dev/null +++ b/keyboards/idobao/id42/info.json @@ -0,0 +1,80 @@ +{ + "manufacturer": "IDOBAO", + "keyboard_name": "Abacus ID42", + "maintainer": "vinorodrigues", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "debounce": 5, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": false, + "command": false, + "nkro": true, + "backlight": false, + "rgblight": false + }, + "matrix_pins": { + "cols": ["B4", "D7", "D6", "D4", "B5", "C7", "F0", "F7", "F6", "F1", "F4", "F5"], + "rows": ["D5", "C6", "B6", "E6"] + }, + "processor": "atmega32u4", + "url": "https://idobao.net/search?type=product&q=ID42*", + "usb": { + "vid": "0x6964", + "pid": "0x0042", + "device_version": "1.0.0" + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "matrix": [0, 0], "label": "Esc", "x": 0, "y": 0 }, + { "matrix": [0, 1], "label": "Q", "x": 1, "y": 0 }, + { "matrix": [0, 2], "label": "W", "x": 2, "y": 0 }, + { "matrix": [0, 3], "label": "E", "x": 3, "y": 0 }, + { "matrix": [0, 4], "label": "R", "x": 4, "y": 0 }, + { "matrix": [0, 5], "label": "T", "x": 5, "y": 0 }, + { "matrix": [0, 6], "label": "Y", "x": 6, "y": 0 }, + { "matrix": [0, 7], "label": "U", "x": 7, "y": 0 }, + { "matrix": [0, 8], "label": "I", "x": 8, "y": 0 }, + { "matrix": [0, 9], "label": "O", "x": 9, "y": 0 }, + { "matrix": [0, 10], "label": "P", "x": 10, "y": 0 }, + { "matrix": [0, 11], "label": "BSpc", "x": 11, "y": 0 }, + + { "matrix": [1, 0], "label": "Tab", "x": 0, "y": 1, "w": 1.25 }, + { "matrix": [1, 1], "label": "A", "x": 1.25, "y": 1 }, + { "matrix": [1, 2], "label": "S", "x": 2.25, "y": 1 }, + { "matrix": [1, 3], "label": "D", "x": 3.25, "y": 1 }, + { "matrix": [1, 4], "label": "F", "x": 4.25, "y": 1 }, + { "matrix": [1, 5], "label": "G", "x": 5.25, "y": 1 }, + { "matrix": [1, 6], "label": "H", "x": 6.25, "y": 1 }, + { "matrix": [1, 7], "label": "J", "x": 7.25, "y": 1 }, + { "matrix": [1, 8], "label": "K", "x": 8.25, "y": 1 }, + { "matrix": [1, 9], "label": "L", "x": 9.25, "y": 1 }, + { "matrix": [1, 11], "label": "Ent", "x": 10.25, "y": 1, "w": 1.75 }, + + { "matrix": [2, 0], "label": "Shft", "x": 0, "y": 2, "w": 1.75 }, + { "matrix": [2, 1], "label": "Z", "x": 1.75, "y": 2 }, + { "matrix": [2, 2], "label": "X", "x": 2.75, "y": 2 }, + { "matrix": [2, 3], "label": "C", "x": 3.75, "y": 2 }, + { "matrix": [2, 4], "label": "V", "x": 4.75, "y": 2 }, + { "matrix": [2, 5], "label": "B", "x": 5.75, "y": 2 }, + { "matrix": [2, 6], "label": "N", "x": 6.75, "y": 2 }, + { "matrix": [2, 7], "label": "M", "x": 7.75, "y": 2 }, + { "matrix": [2, 8], "label": "Shft", "x": 8.75, "y": 2, "w": 1.25 }, + { "matrix": [2, 10], "label": "\u21E7", "x": 10, "y": 2 }, + { "matrix": [2, 11], "label": "Del", "x": 11, "y": 2 }, + + { "matrix": [3, 0], "label": "Ctrl", "x": 0, "y": 3, "w": 1.25 }, + { "matrix": [3, 1], "label": "Win", "x": 1.25, "y": 3 }, + { "matrix": [3, 2], "label": "Alt", "x": 2.25, "y": 3, "w": 1.25 }, + { "matrix": [3, 3], "label": "", "x": 3.5, "y": 3, "w": 2.75 }, + { "matrix": [3, 6], "label": "Fn", "x": 6.25, "y": 3, "w": 2.75 }, + { "matrix": [3, 9], "label": "\u21E6", "x": 9, "y": 3 }, + { "matrix": [3, 10], "label": "\u21E9", "x": 10, "y": 3 }, + { "matrix": [3, 11], "label": "\u21E8", "x": 11, "y": 3 } + ] + } + } +} diff --git a/keyboards/idobao/id42/keymaps/default/keymap.c b/keyboards/idobao/id42/keymaps/default/keymap.c new file mode 100644 index 0000000000..bce2096ea5 --- /dev/null +++ b/keyboards/idobao/id42/keymaps/default/keymap.c @@ -0,0 +1,114 @@ +// Copyright 2022 Vino Rodrigues (@vinorodrigues) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum custom_keycodes { + FN_MO13 = SAFE_RANGE, + FN_MO23, +}; + +// more Layer Tap stuff +#define SPC_FN1 LT(1, KC_SPC) +#define SPC_FN2 LT(2, KC_SPC) +#define SPC_FN3 LT(3, KC_SPC) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Layer 1 + * βββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ + * βEscβ Q β W β E β R β T β Y β U β I β O β P βBSpβ + * βββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄ββββ€ + * β Tabβ A β S β D β F β G β H β J β K β L β Entr β + * ββββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄βββ¬β΄βββ¬ββββ€ + * β Sft β Z β X β C β V β B β N β M β Sft β β βDelβ + * ββββββ¬β΄βββ¬β΄ββββΌββββ΄ββββ΄ββ¬ββ΄ββββ΄ββββΌββ¬ββββΌββββΌββββ€ + * βCtrlβWinβ AltβSpace/Fn2β Fn1/Fn3 β β β β β β β β + * ββββββ΄ββββ΄βββββ΄ββββββββββ΄ββββββββββ βββββ΄ββββ΄ββββ + */ + [0] = LAYOUT( + KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_RSFT, KC_UP, KC_DEL, + KC_LCTL, KC_LGUI, KC_LALT, SPC_FN2, FN_MO13, KC_LEFT, KC_DOWN, KC_RIGHT + ), + + /* Layer 2 + * βββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ + * β ~ β 1 β 2 β 3 β 4 β 5 β 6 β 7 β 8 β 9 β 0 β βΏ β + * βββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄ββββ€ + * β βΏ β β β β β-_ β=+ β[{ β]} β\| β βΏ β + * ββββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄βββ¬β΄βββ¬ββββ€ + * β βΏ β β β;: β'" β,< β.> β/? β βΏ βPUpβInsβ + * ββββββ¬β΄βββ¬β΄ββββΌββββ΄ββββ΄ββ¬ββ΄ββββ΄ββββΌββ¬ββββΌββββΌββββ€ + * β βΏ β βΏ β βΏ β Fn3 β βΏ β βHomβPdnβEndβ + * ββββββ΄ββββ΄βββββ΄ββββββββββ΄ββββββββββ βββββ΄ββββ΄ββββ + */ + [1] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, _______, + _______, XXXXXXX, XXXXXXX, KC_SCLN, KC_QUOT, KC_COMM, KC_DOT, KC_SLSH, _______, KC_PGUP, KC_INS, + _______, _______, _______, MO(3), _______, KC_HOME, KC_PGDN, KC_END + ), + + /* Layer 3 + * βββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ + * βEscβF1 βF2 βF3 βF4 βF5 βF6 βF7 βF8 βF9 βF10β βΏ β + * βββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄ββββ€ + * β βΏ β β β β βF11βF12βPscβSLkβPauβ βΏ β + * ββββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄βββ¬β΄βββ¬ββββ€ + * β βΏ β β β β β β β βMenu βVl+βMutβ + * ββββββ¬β΄βββ¬β΄ββββΌββββ΄ββββ΄ββ¬ββ΄ββββ΄ββββΌββ¬ββββΌββββΌββββ€ + * β βΏ β βΏ β βΏ β βΏ β βΏ β βStoβVl-βPlyβ + * ββββββ΄ββββ΄βββββ΄ββββββββββ΄ββββββββββ βββββ΄ββββ΄ββββ + */ + [2] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, _______, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_APP, KC_VOLU, KC_MUTE, + KC_RCTL, KC_RGUI, KC_RALT, _______, _______, KC_MSTP, KC_VOLD, KC_MPLY + ), + + /* Layer 4 + * βββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ + * β βΏ β β β βRstβ β β β β β β βΏ β + * βββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄ββββ€ + * β βΏ βTogβModβHu-βHu+βSt-βSt+β β β β βΏ β + * ββββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄βββ¬β΄βββ¬ββββ€ + * β βΏ βmodβ β β β βNROβ β βBr+β β + * ββββββ¬β΄βββ¬β΄ββββΌββββ΄ββββ΄ββ¬ββ΄ββββ΄ββββΌββ¬ββββΌββββΌββββ€ + * β βΏ β βΏ β βΏ β βΏ β βΏ β βSp-βBr-βSp+β + * ββββββ΄ββββ΄βββββ΄ββββββββββ΄ββββββββββ βββββ΄ββββ΄ββββ + */ + [3] = LAYOUT( + _______, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, XXXXXXX, XXXXXXX, XXXXXXX, _______, + _______, RGB_RMOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, NK_TOGG, XXXXXXX, XXXXXXX, RGB_VAI, XXXXXXX, + _______, _______, _______, _______, _______, RGB_SPD, RGB_VAD, RGB_SPI + ), +}; + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case FN_MO13: + if (record->event.pressed) { + layer_on(1); + update_tri_layer(1, 2, 3); + } else { + layer_off(1); + update_tri_layer(1, 2, 3); + } + return false; + break; + case FN_MO23: + if (record->event.pressed) { + layer_on(2); + update_tri_layer(1, 2, 3); + } else { + layer_off(2); + update_tri_layer(1, 2, 3); + } + return false; + break; + } + return true; +} diff --git a/keyboards/idobao/id42/keymaps/idobao/keymap.c b/keyboards/idobao/id42/keymaps/idobao/keymap.c new file mode 100644 index 0000000000..6a52c476ca --- /dev/null +++ b/keyboards/idobao/id42/keymaps/idobao/keymap.c @@ -0,0 +1,119 @@ +// Copyright 2022 Vino Rodrigues (@vinorodrigues) +// SPDX-License-Identifier: GPL-2.0-or-later + +/* ------------------------------------------------------------------ + * This is the IDOBAO factory default keymap ;) + * ------------------------------------------------------------------ */ + +#include QMK_KEYBOARD_H +#include "version.h" + +enum { + KB_VRSN = USER09 // debug, type version +}; + +#define SPC_FN1 LT(1, KC_SPC) +#define SPC_FN2 LT(2, KC_SPC) +#define SPC_FN3 LT(3, KC_SPC) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Layer 0 + * βββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ + * βEscβ Q β W β E β R β T β Y β U β I β O β P βBSpβ + * βββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄ββββ€ + * β Tabβ A β S β D β F β G β H β J β K β L β Entr β + * ββββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄βββ¬β΄βββ¬ββββ€ + * β Sft β Z β X β C β V β B β N β M β Sft β β βDelβ + * ββββββ¬β΄βββ¬β΄ββββΌββββ΄ββββ΄ββ¬ββ΄ββββ΄ββββΌββ¬ββββΌββββΌββββ€ + * βCtrlβWinβ AltβSpace/Fn2β Fn1/Fn3 β β β β β β β β + * ββββββ΄ββββ΄βββββ΄ββββββββββ΄ββββββββββ βββββ΄ββββ΄ββββ + */ + [0] = LAYOUT( + KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_RSFT, KC_UP, KC_DEL, + KC_LCTL, KC_LGUI, KC_LALT, SPC_FN2, FN_MO13, KC_LEFT, KC_DOWN, KC_RIGHT + ), + + /* Layer 1 + * βββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ + * β ~ β 1 β 2 β 3 β 4 β 5 β 6 β 7 β 8 β 9 β 0 β βΏ β + * βββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄ββββ€ + * β βΏ β β β β β-_ β=+ β[{ β]} β\| β βΏ β + * ββββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄βββ¬β΄βββ¬ββββ€ + * β βΏ β β β;: β'" β,< β.> β/? β βΏ βPUpβInsβ + * ββββββ¬β΄βββ¬β΄ββββΌββββ΄ββββ΄ββ¬ββ΄ββββ΄ββββΌββ¬ββββΌββββΌββββ€ + * β βΏ β βΏ β βΏ β Fn3 β βΏ β βHomβPdnβEndβ + * ββββββ΄ββββ΄βββββ΄ββββββββββ΄ββββββββββ βββββ΄ββββ΄ββββ + */ + [1] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, _______, + _______, XXXXXXX, XXXXXXX, KC_SCLN, KC_QUOT, KC_COMM, KC_DOT, KC_SLSH, _______, KC_PGUP, KC_INS, + _______, _______, _______, MO(3), _______, KC_HOME, KC_PGDN, KC_END + ), + + /* Layer 2 + * βββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ + * βEscβF1 βF2 βF3 βF4 βF5 βF6 βF7 βF8 βF9 βF10β βΏ β + * βββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄ββββ€ + * β βΏ β β β β βF11βF12βPscβSLkβPauβ βΏ β + * ββββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄βββ¬β΄βββ¬ββββ€ + * β βΏ β β β β β β β βMenu βVl+βMutβ + * ββββββ¬β΄βββ¬β΄ββββΌββββ΄ββββ΄ββ¬ββ΄ββββ΄ββββΌββ¬ββββΌββββΌββββ€ + * β βΏ β βΏ β βΏ β βΏ β βΏ β βStoβVl-βPlyβ + * ββββββ΄ββββ΄βββββ΄ββββββββββ΄ββββββββββ βββββ΄ββββ΄ββββ + */ + [2] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, _______, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_APP, KC_VOLU, KC_MUTE, + KC_RCTL, KC_RGUI, KC_RALT, _______, _______, KC_MSTP, KC_VOLD, KC_MPLY + ), + + /* Layer 3 + * βββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ + * β βΏ β β β βRstβ β β β β β β βΏ β + * βββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄ββββ€ + * β βΏ βTogβModβHu-βHu+βSt-βSt+β β β β βΏ β + * ββββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄βββ¬β΄βββ¬ββββ€ + * β βΏ βmodβ β βVerβ βNROβ β βBr+β β + * ββββββ¬β΄βββ¬β΄ββββΌββββ΄ββββ΄ββ¬ββ΄ββββ΄ββββΌββ¬ββββΌββββΌββββ€ + * β βΏ β βΏ β βΏ β βΏ β βΏ β βSp-βBr-βSp+β + * ββββββ΄ββββ΄βββββ΄ββββββββββ΄ββββββββββ βββββ΄ββββ΄ββββ + */ + [3] = LAYOUT( + _______, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, XXXXXXX, XXXXXXX, XXXXXXX, _______, + _______, RGB_RMOD, XXXXXXX, XXXXXXX, KB_VRSN, XXXXXXX, NK_TOGG, XXXXXXX, XXXXXXX, RGB_VAI, XXXXXXX, + _______, _______, _______, _______, _______, RGB_SPD, RGB_VAD, RGB_SPI + ), +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + + #ifdef RGB_MATRIX_ENABLE + + case QK_BOOT: + if (record->event.pressed) { + rgb_matrix_set_color_all(RGB_MATRIX_MAXIMUM_BRIGHTNESS, 0, 0); // All red + rgb_matrix_driver.flush(); + } + return true; + + #endif // RGB_MATRIX_ENABLE + + // print firmware version + case KB_VRSN: + if (!get_mods()) { + if (!record->event.pressed) { + SEND_STRING(QMK_KEYBOARD ":" QMK_KEYMAP " (v" QMK_VERSION ")"); + } + } + return false; + + default: + return true; /* Process all other keycodes normally */ + } +} diff --git a/keyboards/idobao/id42/keymaps/idobao/rules.mk b/keyboards/idobao/id42/keymaps/idobao/rules.mk new file mode 100644 index 0000000000..974ef99660 --- /dev/null +++ b/keyboards/idobao/id42/keymaps/idobao/rules.mk @@ -0,0 +1,3 @@ + +LTO_ENABLE = yes +VIA_ENABLE = yes diff --git a/keyboards/idobao/id42/keymaps/via/keymap.c b/keyboards/idobao/id42/keymaps/via/keymap.c new file mode 100644 index 0000000000..590b8b54a3 --- /dev/null +++ b/keyboards/idobao/id42/keymaps/via/keymap.c @@ -0,0 +1,82 @@ +// Copyright 2022 Vino Rodrigues (@vinorodrigues) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +#define SPC_FN1 LT(1, KC_SPC) +#define SPC_FN2 LT(2, KC_SPC) +#define SPC_FN3 LT(3, KC_SPC) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * βββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ + * βEscβ Q β W β E β R β T β Y β U β I β O β P βBSpβ + * βββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄ββββ€ + * β Tabβ A β S β D β F β G β H β J β K β L β Entr β + * ββββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄βββ¬β΄βββ¬ββββ€ + * β Sft β Z β X β C β V β B β N β M β Sft β β βDelβ + * ββββββ¬β΄βββ¬β΄ββββΌββββ΄ββββ΄ββ¬ββ΄ββββ΄ββββΌββ¬ββββΌββββΌββββ€ + * βCtrlβWinβ AltβSpace/Fn2β Fn1/Fn3 β β β β β β β β + * ββββββ΄ββββ΄βββββ΄ββββββββββ΄ββββββββββ βββββ΄ββββ΄ββββ + */ + [0] = LAYOUT( + KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_RSFT, KC_UP, KC_DEL, + KC_LCTL, KC_LGUI, KC_LALT, SPC_FN2, FN_MO13, KC_LEFT, KC_DOWN, KC_RIGHT + ), + + /* + * βββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ + * β ~ β 1 β 2 β 3 β 4 β 5 β 6 β 7 β 8 β 9 β 0 β βΏ β + * βββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄ββββ€ + * β βΏ β β β β β-_ β=+ β[{ β]} β\| β βΏ β + * ββββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄βββ¬β΄βββ¬ββββ€ + * β βΏ β β β;: β'" β,< β.> β/? β βΏ βPUpβInsβ + * ββββββ¬β΄βββ¬β΄ββββΌββββ΄ββββ΄ββ¬ββ΄ββββ΄ββββΌββ¬ββββΌββββΌββββ€ + * β βΏ β βΏ β βΏ β Fn3 β βΏ β βHomβPdnβEndβ + * ββββββ΄ββββ΄βββββ΄ββββββββββ΄ββββββββββ βββββ΄ββββ΄ββββ + */ + [1] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, _______, + _______, XXXXXXX, XXXXXXX, KC_SCLN, KC_QUOT, KC_COMM, KC_DOT, KC_SLSH, _______, KC_PGUP, KC_INS, + _______, _______, _______, MO(3), _______, KC_HOME, KC_PGDN, KC_END + ), + + /* + * βββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ + * βEscβF1 βF2 βF3 βF4 βF5 βF6 βF7 βF8 βF9 βF10β βΏ β + * βββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄ββββ€ + * β βΏ β β β β βF11βF12βPscβSLkβPauβ βΏ β + * ββββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄βββ¬β΄βββ¬ββββ€ + * β βΏ β β β β β β β βMenu βVl+βMutβ + * ββββββ¬β΄βββ¬β΄ββββΌββββ΄ββββ΄ββ¬ββ΄ββββ΄ββββΌββ¬ββββΌββββΌββββ€ + * β βΏ β βΏ β βΏ β βΏ β βΏ β βStoβVl-βPlyβ + * ββββββ΄ββββ΄βββββ΄ββββββββββ΄ββββββββββ βββββ΄ββββ΄ββββ + */ + [2] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, _______, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_APP, KC_VOLU, KC_MUTE, + KC_RCTL, KC_RGUI, KC_RALT, _______, _______, KC_MSTP, KC_VOLD, KC_MPLY + ), + + /* + * βββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ + * β βΏ β β β βRstβ β β β β β β βΏ β + * βββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄ββββ€ + * β βΏ βTogβModβHu-βHu+βSt-βSt+β β β β βΏ β + * ββββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄βββ¬β΄βββ¬ββββ€ + * β βΏ βmodβ β β β βNROβ β βBr+β β + * ββββββ¬β΄βββ¬β΄ββββΌββββ΄ββββ΄ββ¬ββ΄ββββ΄ββββΌββ¬ββββΌββββΌββββ€ + * β βΏ β βΏ β βΏ β βΏ β βΏ β βSp-βBr-βSp+β + * ββββββ΄ββββ΄βββββ΄ββββββββββ΄ββββββββββ βββββ΄ββββ΄ββββ + */ + [3] = LAYOUT( + _______, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, XXXXXXX, XXXXXXX, XXXXXXX, _______, + _______, RGB_RMOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, NK_TOGG, XXXXXXX, XXXXXXX, RGB_VAI, XXXXXXX, + _______, _______, _______, _______, _______, RGB_SPD, RGB_VAD, RGB_SPI + ), +}; diff --git a/keyboards/idobao/id42/keymaps/via/rules.mk b/keyboards/idobao/id42/keymaps/via/rules.mk new file mode 100644 index 0000000000..974ef99660 --- /dev/null +++ b/keyboards/idobao/id42/keymaps/via/rules.mk @@ -0,0 +1,3 @@ + +LTO_ENABLE = yes +VIA_ENABLE = yes diff --git a/keyboards/idobao/id42/readme.md b/keyboards/idobao/id42/readme.md new file mode 100644 index 0000000000..5921bffca1 --- /dev/null +++ b/keyboards/idobao/id42/readme.md @@ -0,0 +1,35 @@ +# IDOBAO Abacus ID42 + +![IDOBAO Abacus ID42](https://idobao.github.io/assets/img/idobao-id42.png) + +Sized just right at 40% β with a compact configuration the IDOBAO Abacus ID42 makes a great fit for any desk. + +## 42 Keys + +* Keyboard Maintainer: [Vino Rodrigues](https://github.com/vinorodrigues) +* Hardware Supported: **IDOBAO Abacus ID42** +* Hardware Availability: [IDOBAO.net](https://idobao.net/search?type=product&q=ID42*) + +## Layout + +![](https://cdn.jsdelivr.net/gh/Idobao/idobao.github.io/kle/idobao-id42-all.png) + +## Compiling and Flashing + +Make example for this keyboard (after setting up your build environment): + + make idobao/id42:default + +Flashing example for this keyboard: + + make idobao/id42: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. <br>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 [Esc] key and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB +* **Keycode in layout**: Press the key mapped to *`RESET`* *(Default = `[Fn]`+`[R]`)* if it is available diff --git a/keyboards/idobao/id42/rules.mk b/keyboards/idobao/id42/rules.mk new file mode 100755 index 0000000000..eab741fd0a --- /dev/null +++ b/keyboards/idobao/id42/rules.mk @@ -0,0 +1,5 @@ +# This file intentionally left blank +# ** settings are data driven & stored in `info.json` ** + +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812 diff --git a/keyboards/idobao/id63/config.h b/keyboards/idobao/id63/config.h new file mode 100644 index 0000000000..10fb9d5f08 --- /dev/null +++ b/keyboards/idobao/id63/config.h @@ -0,0 +1,102 @@ +// Copyright 2022 Vino Rodrigues (@vinorodrigues) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "config_common.h" + +/* NB: Most configuration information resides in `info.json` */ + +/* ---------------- + * RGB Matrix stuff + * ---------------- */ + +#define RGB_DI_PIN B7 + +// RGB Matrix config +#if defined(RGB_DI_PIN) && defined(RGB_MATRIX_ENABLE) + + /* Denwir case is solid back. Please disable underglow at compile with compile command line: + * + * `make idobao/id63:default UNDERGLOW=off` + * + * */ + #ifndef ID63_DISABLE_UNDERGLOW + #define DRIVER_LED_TOTAL 75 + #else + #define DRIVER_LED_TOTAL (75 - 12) + #endif + + #define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended + #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // limits maximum brightness of LEDs to x out of 255. If not defined maximum brightness is set to 255 + + #define RGB_MATRIX_KEYPRESSES + // do not enable RGB_MATRIX_FRAMEBUFFER_EFFECTS as these effects don't work will with this LED placement + + // changes to this list will break the sequence set in the VIA `json` file. + /* Standard animation set */ + #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 + // #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL // ** do not enable + // #define ENABLE_RGB_MATRIX_PIXEL_FLOW // ** do not enable + // #define ENABLE_RGB_MATRIX_PIXEL_RAIN // ** do not enable + + /* RGB_MATRIX_FRAMEBUFFER_EFFECTS */ + // #define ENABLE_RGB_MATRIX_TYPING_HEATMAP // ** do not enable + // #define ENABLE_RGB_MATRIX_DIGITAL_RAIN // ** do not enable + + /* RGB_MATRIX_KEYPRESSES */ + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE // Pulses keys hit to hue & value then fades value out + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE // Static single hue, pulses keys hit to shifted hue then fades to current hue + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE // Hue & value pulse near a single key hit then fades value out + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE // Hue & value pulse near multiple key hits then fades value out + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS // Hue & value pulse the same column and row of a single key hit then fades value out + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS // Hue & value pulse the same column and row of multiple key hits then fades value out + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS // Hue & value pulse away on the same column and row of a single key hit then fades value out + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS // Hue & value pulse away on the same column and row of multiple key hits then fades value out + #define ENABLE_RGB_MATRIX_SPLASH // Full gradient & value pulse away from a single key hit then fades value out + #define ENABLE_RGB_MATRIX_MULTISPLASH // Full gradient & value pulse away from multiple key hits then fades value out + #define ENABLE_RGB_MATRIX_SOLID_SPLASH // Hue & value pulse away from a single key hit then fades value out + #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH // Hue & value pulse away from multiple key hits then fades value out +#endif // RGB_MATRIX_ENABLE + +/* ----------------------- + * Feature disable options + * These options are also useful to firmware size reduction. + * ----------------------- */ + +/* disable debug print */ +// #define NO_DEBUG + +/* disable print */ +// #define NO_PRINT + +/* disable action features */ +// #define NO_ACTION_LAYER +// #define NO_ACTION_TAPPING +// #define NO_ACTION_ONESHOT diff --git a/keyboards/idobao/id63/id63.c b/keyboards/idobao/id63/id63.c new file mode 100644 index 0000000000..d9b7fdef39 --- /dev/null +++ b/keyboards/idobao/id63/id63.c @@ -0,0 +1,68 @@ +// Copyright 2022 Vino Rodrigues (@vinorodrigues) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "id63.h" + +#define __ NO_LED + +#ifdef RGB_MATRIX_ENABLE + +/* Pre-key LED addresses + * βββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββββββ + * β62 β61 β60 β59 β58 β57 β56 β55 β54 β53 β52 β51 β50 β 49 β + * βββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββββββ€ + * β 48 β47 β46 β45 β44 β43 β42 β41 β40 β39 β38 β37 β36 β 35 β + * βββββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄ββββββ€ + * β 34 β33 β32 β31 β30 β29 β28 β27 β26 β25 β24 β23 β 22 β + * ββββββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββββ΄β¬ββββ¬ββββ€ + * β 21 β20 β19 β18 β17 β16 β15 β14 β13 β12 β 11 β10 β 9 β + * ββββββ¬ββββ΄β¬βββ΄ββ¬ββ΄ββββ΄ββββ΄ββββ΄ββββ΄ββββ΄βββ¬β΄βββ¬β΄βββ¬ββββΌββββΌββββ€ + * β 8 β 7 β 6 β 5 β 4 β 3 β 2 β 1 β 0 β + * ββββββ΄βββββ΄βββββ΄βββββββββββββββββββββββββ΄ββββ΄ββββ΄ββββ΄ββββ΄ββββ + * + * Underglow LED addresses (as seen from top / [Esc] = top left) + * ββββββ¬βββββ¬βββββ¬βββββ¬βββββ¬βββββ + * β 63 β 64 β 65 β 66 β 67 β 68 β + * ββββββ΄βββββ΄βββββ΄βββββ΄βββββ΄βββββ€ + * ββββββ¬βββββ¬βββββ¬βββββ¬βββββ¬βββββ€ + * β 74 β 73 β 72 β 71 β 70 β 69 β + * ββββββ΄βββββ΄βββββ΄βββββ΄βββββ΄βββββ + */ + +led_config_t g_led_config = { { + // Key Matrix to LED Index + { 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49 }, + { 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35 }, + { 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, __, 22 }, + { 21, __, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9 }, + { 8, 7, __, 6, __, __, 5, __, __, 4, 3, 2, 1, 0 }, +}, { + // LED Index to Physical Position + // generated from: https://xelus.netlify.app/guides/KLE_to_RGB_parser + /* NB: Reverse & upside-down order! */ + {224,64 }, {208,64 }, {192,64 }, {176,64 }, {160,64 }, {102,64 }, { 42,64 }, { 22,64 }, { 2,64 }, + {224,48 }, {208,48 }, {186,48 }, {164,48 }, {148,48 }, {132,48 }, {116,48 }, {100,48 }, { 84,48 }, { 68,48 }, { 52,48 }, { 36,48 }, { 10,48 }, + {214,32 }, {188,32 }, {172,32 }, {156,32 }, {140,32 }, {124,32 }, {108,32 }, { 92,32 }, { 76,32 }, { 60,32 }, { 44,32 }, { 28,32 }, { 6,32 }, + {220,16 }, {200,16 }, {184,16 }, {168,16 }, {152,16 }, {136,16 }, {120,16 }, {104,16 }, { 88,16 }, { 72,16 }, { 56,16 }, { 40,16 }, { 24,16 }, { 4,16 }, + {216,0 }, {192,0 }, {176,0 }, {160,0 }, {144,0 }, {128,0 }, {112,0 }, { 96,0 }, { 80,0 }, { 64,0 }, { 48,0 }, { 32,0 }, { 16,0 }, { 0,0 } + // underglow LEDs (positions pushed to nearest edge to match edge key colors) + #ifndef ID63_DISABLE_UNDERGLOW + , { 0,0 }, { 45,0 }, { 90,0 }, {134,0 }, {179,0 }, {224,0 }, + {224,64 }, {179,64 }, {134,64 }, { 90,64 }, { 45,64 }, { 0,64 } + #endif +}, { + // LED Index to Flag + /* NB: Reverse & upside-down order! */ + 4, 4, 4, 1, 1, 4, 1, 1, 1, + 1, 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 9, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 + // underglow LEDs + #ifndef ID63_DISABLE_UNDERGLOW + , 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2 + #endif +} }; + +#endif // RGB_MATRIX_ENABLE diff --git a/keyboards/idobao/id63/id63.h b/keyboards/idobao/id63/id63.h new file mode 100644 index 0000000000..d9bef6d021 --- /dev/null +++ b/keyboards/idobao/id63/id63.h @@ -0,0 +1,6 @@ +// Copyright 2022 Vino Rodrigues (@vinorodrigues) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "quantum.h" diff --git a/keyboards/idobao/id63/info.json b/keyboards/idobao/id63/info.json new file mode 100644 index 0000000000..ab34c2a676 --- /dev/null +++ b/keyboards/idobao/id63/info.json @@ -0,0 +1,106 @@ +{ + "manufacturer": "IDOBAO", + "keyboard_name": "ID63", + "maintainer": "vinorodrigues", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "debounce": 5, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "backlight": false, + "rgblight": false + }, + "matrix_pins": { + "cols": ["C7", "F6", "F5", "F4", "F1", "B3", "D0", "D1", "D2", "D3", "D4", "D5", "D6", "D7"], + "rows": ["B0", "B1", "B2", "E6", "F7"] + }, + "processor": "atmega32u4", + "url": "https://idobao.net/search?type=product&q=id63*", + "usb": { + "device_version": "1.0.0", + "pid": "0x0063", + "vid": "0x6964" + }, + "layout_aliases": { + "LAYOUT_63_ansi": "LAYOUT_60_ansi_arrow" + }, + "community_layouts": ["60_ansi_arrow"], + "layouts": { + "LAYOUT_60_ansi_arrow": { + "layout": [ + { "label": "Esc", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "1!", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "2@", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "3#", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "4$", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "5%", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "6^", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "7&", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "8*", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "9(", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": "0)", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "-_", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "=+", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + { "label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + { "label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1 }, + { "label": "W", "matrix": [1, 2], "x": 2.5, "y": 1 }, + { "label": "E", "matrix": [1, 3], "x": 3.5, "y": 1 }, + { "label": "R", "matrix": [1, 4], "x": 4.5, "y": 1 }, + { "label": "T", "matrix": [1, 5], "x": 5.5, "y": 1 }, + { "label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1 }, + { "label": "U", "matrix": [1, 7], "x": 7.5, "y": 1 }, + { "label": "I", "matrix": [1, 8], "x": 8.5, "y": 1 }, + { "label": "O", "matrix": [1, 9], "x": 9.5, "y": 1 }, + { "label": "P", "matrix": [1, 10], "x": 10.5, "y": 1 }, + { "label": "[{", "matrix": [1, 11], "x": 11.5, "y": 1 }, + { "label": "]}", "matrix": [1, 12], "x": 12.5, "y": 1 }, + { "label": "\\|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5 }, + + { "label": "Caps Lock", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "A", "matrix": [2, 1], "x": 1.75, "y": 2 }, + { "label": "S", "matrix": [2, 2], "x": 2.75, "y": 2 }, + { "label": "D", "matrix": [2, 3], "x": 3.75, "y": 2 }, + { "label": "F", "matrix": [2, 4], "x": 4.75, "y": 2 }, + { "label": "G", "matrix": [2, 5], "x": 5.75, "y": 2 }, + { "label": "H", "matrix": [2, 6], "x": 6.75, "y": 2 }, + { "label": "J", "matrix": [2, 7], "x": 7.75, "y": 2 }, + { "label": "K", "matrix": [2, 8], "x": 8.75, "y": 2 }, + { "label": "L", "matrix": [2, 9], "x": 9.75, "y": 2 }, + { "label": ";:", "matrix": [2, 10], "x": 10.75, "y": 2 }, + { "label": "'\"", "matrix": [2, 11], "x": 11.75, "y": 2 }, + { "label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25 }, + + { "label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25 }, + { "label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "label": "X", "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "label": "C", "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "label": "V", "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "label": "B", "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "label": "N", "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "label": "M", "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "label": ",<", "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "label": ".>", "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "label": "Shift", "matrix": [3, 11], "x": 11.25, "y": 3, "w": 1.75 }, + { "label": "\u2191", "matrix": [3, 12], "x": 13, "y": 3 }, + { "label": "/?", "matrix": [3, 13], "x": 14, "y": 3 }, + + { "label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25 }, + { "label": "GUI", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25 }, + { "label": "Alt", "matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.25 }, + { "label": "Space", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25 }, + { "label": "Fn", "matrix": [4, 9], "x": 10, "y": 4 }, + { "label": "Menu", "matrix": [4, 10], "x": 11, "y": 4 }, + { "label": "\u2190", "matrix": [4, 11], "x": 12, "y": 4 }, + { "label": "\u2193", "matrix": [4, 12], "x": 13, "y": 4 }, + { "label": "\u2192", "matrix": [4, 13], "x": 14, "y": 4 } + ] + } + } +} diff --git a/keyboards/idobao/id63/keymaps/default/keymap.c b/keyboards/idobao/id63/keymaps/default/keymap.c new file mode 100644 index 0000000000..617a876b80 --- /dev/null +++ b/keyboards/idobao/id63/keymaps/default/keymap.c @@ -0,0 +1,48 @@ +// Copyright 2022 Vino Rodrigues (@vinorodrigues) +// 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 β - β = βBackspcβ + * βββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββββββ€ + * β 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 βUp β / β + * ββββββ¬ββββ΄β¬βββ΄ββ¬ββ΄ββββ΄ββββ΄ββββ΄ββββ΄ββββ΄βββ¬β΄βββ¬β΄βββ¬ββββΌββββΌββββ€ + * βCtrlβWin βAlt β βFn βMnuβLf βDn βRt β + * ββββββ΄βββββ΄βββββ΄βββββββββββββββββββββββββ΄ββββ΄ββββ΄ββββ΄ββββ΄ββββ + */ + [0] = LAYOUT_60_ansi_arrow( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_SLSH, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_APP, KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* + * βββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββββββ + * β ~ βF1 βF2 βF3 βF4 βF5 βF6 βF7 βF8 βF9 βF10βF11βF12β Del β + * βββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββββββ€ + * β βtogβup βmodβhu+βhu-βsa+βsa-βbr+βbr-βprnβslkβpusβ Ins β + * βββββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄ββββββ€ + * β βlf βdn βrt β β β β βsp+βsp-β β β β + * ββββββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββββ΄β¬ββββ¬ββββ€ + * β β β β β βRstβNKRβ β β β βPUpβ β + * ββββββ¬ββββ΄β¬βββ΄ββ¬ββ΄ββββ΄ββββ΄ββββ΄ββββ΄ββββ΄βββ¬β΄βββ¬β΄βββ¬ββββΌββββΌββββ€ + * β β β β β β βHomβPDnβEndβ + * ββββββ΄βββββ΄βββββ΄βββββββββββββββββββββββββ΄ββββ΄ββββ΄ββββ΄ββββ΄ββββ + */ + [1] = LAYOUT_60_ansi_arrow( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + _______, RGB_TOG, KC_UP, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_PSCR, KC_SLCK, KC_PAUS, KC_INS, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, RGB_SPI, RGB_SPD, _______, _______, _______, + _______, _______, _______, _______, _______, QK_BOOT, NK_TOGG, _______, _______, _______, _______, KC_PGUP, _______, + _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END + ) +}; diff --git a/keyboards/idobao/id63/keymaps/idobao/config.h b/keyboards/idobao/id63/keymaps/idobao/config.h new file mode 100644 index 0000000000..01d96f9dcd --- /dev/null +++ b/keyboards/idobao/id63/keymaps/idobao/config.h @@ -0,0 +1,7 @@ +// Copyright 2022 Vino Rodrigues (@vinorodrigues) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* Denwir D60 has solid back case - no underglow LED's are visible. */ +#define ID63_DISABLE_UNDERGLOW diff --git a/keyboards/idobao/id63/keymaps/idobao/keymap.c b/keyboards/idobao/id63/keymaps/idobao/keymap.c new file mode 100644 index 0000000000..f49304fb24 --- /dev/null +++ b/keyboards/idobao/id63/keymaps/idobao/keymap.c @@ -0,0 +1,359 @@ +// Copyright 2022 Vino Rodrigues (@vinorodrigues) +// Copyright 2022 IDOBAO (@idobaokb) +// SPDX-License-Identifier: GPL-2.0-or-later + +/* ------------------------------------------------------------------ + * This is the IDOBAO factory default keymap ;) + * ------------------------------------------------------------------ */ + +#include QMK_KEYBOARD_H +#include "version.h" + +#ifdef RGB_MATRIX_ENABLE + +typedef union { + uint32_t raw; + struct { + bool rgb_disable_perkey:1; + #ifndef ID63_DISABLE_UNDERGLOW + bool rgb_disable_underglow:1; + #endif // ID63_DISABLE_UNDERGLOW + }; +} user_config_t; + +#endif // RGB_MATRIX_ENABLE + +enum { + _BASE = 0, + _FN1, + _FN2, + _FN3 +}; + +enum { + KC_MCON = USER00, // macOS Open Mission Control + KC_LPAD, // macOS Open Launchpad + #ifdef RGB_MATRIX_ENABLE + RGB_TPK, // Toggle Per-Key + #ifndef ID63_DISABLE_UNDERGLOW + RGB_TUG, // Toggle Underglow + #endif // ID63_DISABLE_UNDERGLOW + #endif // RGB_MATRIX_ENABLE + KB_VRSN = USER09 // debug, type version +}; + +#ifndef RGB_MATRIX_ENABLE + #define RGB_TPK _______ + #define RGB_TUG _______ +#else + #ifdef ID63_DISABLE_UNDERGLOW + #define RGB_TUG _______ + #endif // ID63_DISABLE_UNDERGLOW +#endif // RGB_MATRIX_ENABLE + +enum macos_consumer_usages { + _AC_SHOW_ALL_WINDOWS = 0x29F, // mapped to KC_MCON + _AC_SHOW_ALL_APPS = 0x2A0 // mapped to KC_LPAD +}; + +/* Special Keys */ +#define SK_LT1C LT(_FN1, KC_CAPS) // Layer Tap 1, i.e., Tap = Caps Lock, Hold = Layer 1 +#define SK_LT2A LT(_FN2, KC_APP) // Layer Tap 2, i.e., Tap = Menu, Hold = Layer 2 + +/* key matrix */ +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * βββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββββββ + * βEscβ 1 β 2 β 3 β 4 β 5 β 6 β 7 β 8 β 9 β 0 β - β = βBackspcβ + * βββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββββββ€ + * β Tab β Q β W β E β R β T β Y β U β I β O β P β [ β ] β \ β + * βββββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄ββββββ€ + * β*Caps*β A β S β D β F β G β H β J β K β L β ; β ' β Enter β *Caps* => Tap = Caps Lock, Hold = Layer 1 (Fn1) + * ββββββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββββ΄β¬ββββ¬ββββ€ + * β Shift β Z β X β C β V β B β N β M β , β . βShift βUp β / β + * ββββββ¬ββββ΄β¬βββ΄ββ¬ββ΄ββββ΄ββββ΄ββββ΄ββββ΄ββββ΄βββ¬β΄βββ¬β΄βββ¬ββββΌββββΌββββ€ + * βCtrlβWin βAlt β βFn1β*M*βLf βDn βRt β *M* => Tap = Menu, Hold = Layer 2 (Fn2) + * ββββββ΄βββββ΄βββββ΄βββββββββββββββββββββββββ΄ββββ΄ββββ΄ββββ΄ββββ΄ββββ + */ + [_BASE] = LAYOUT_60_ansi_arrow( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + SK_LT1C, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_SLSH, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, FN_MO13, SK_LT2A, KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* + * βββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββββββ + * β ~ βF1 βF2 βF3 βF4 βF5 βF6 βF7 βF8 βF9 βF10βF11βF12β Del β + * βββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββββββ€ + * β β β β β β βTogβHu+βSa+βBr+βSp+βprnβslkβpusβ Ins β + * βββββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄ββββββ€ + * β Caps β β β β β β β βModβHu-βSa-βBr-βSp-β β β β + * ββββββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββββ΄β¬ββββ¬ββββ€ + * β β β β βVerβRstβNKRβ β β β βPUpβ / β + * ββββββ¬ββββ΄β¬βββ΄ββ¬ββ΄ββββ΄ββββ΄ββββ΄ββββ΄ββββ΄βββ¬β΄βββ¬β΄βββ¬ββββΌββββΌββββ€ + * β β β β β β βHomβPDnβEndβ + * ββββββ΄βββββ΄βββββ΄βββββββββββββββββββββββββ΄ββββ΄ββββ΄ββββ΄ββββ΄ββββ + */ + [_FN1] = LAYOUT_60_ansi_arrow( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + _______, _______, KC_UP, _______, _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_PSCR, KC_SLCK, KC_PAUS, KC_INS, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, + _______, _______, _______, _______, KB_VRSN, QK_BOOT, NK_TOGG, _______, _______, _______, _______, KC_PGUP, _______, + _______, _______, _______, _______, _______, MO(_FN3), KC_HOME, KC_PGDN, KC_END + ), + + [_FN2] = LAYOUT_60_ansi_arrow( + KC_ESC, KC_BRID, KC_BRIU, KC_MCON, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_POWER, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, MO(_FN3), _______, _______, _______, _______ + ), + + [_FN3] = LAYOUT_60_ansi_arrow( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; + +uint8_t mod_state; +bool delkey_registered; + +#ifdef RGB_MATRIX_ENABLE + +/* + * RGB Stuff + */ + +#define ID63_CAPS_LOCK_KEY_INDEX 34 // position of Caps Lock key + +#define ID63_CAPS_LOCK_MAX_BRIGHTNESS 0xFF +#ifdef RGB_MATRIX_MAXIMUM_BRIGHTNESS + #undef ID63_CAPS_LOCK_MAX_BRIGHTNESS + #define ID63_CAPS_LOCK_MAX_BRIGHTNESS RGB_MATRIX_MAXIMUM_BRIGHTNESS +#endif + +#define ID63_CAPS_LOCK_VAL_STEP 8 +#ifdef RGB_MATRIX_VAL_STEP + #undef ID63_CAPS_LOCK_VAL_STEP + #define ID63_CAPS_LOCK_VAL_STEP RGB_MATRIX_VAL_STEP +#endif + +user_config_t user_config; + +void id63_update_rgb_mode(void) { + uint8_t flags = LED_FLAG_ALL; + + if (user_config.rgb_disable_perkey + #ifndef ID63_DISABLE_UNDERGLOW + && user_config.rgb_disable_underglow + #endif // ID63_DISABLE_UNDERGLOW + ) { + flags = 0; // All OFF Condition + } else { + if (user_config.rgb_disable_perkey) { + #ifndef ID63_DISABLE_UNDERGLOW + flags = LED_FLAG_UNDERGLOW | 0xF0; + #else + flags = 0xF0; + #endif // ID63_DISABLE_UNDERGLOW + } + #ifndef ID63_DISABLE_UNDERGLOW + if (user_config.rgb_disable_underglow) { + flags = LED_FLAG_MODIFIER | LED_FLAG_KEYLIGHT | LED_FLAG_INDICATOR | 0xF0; + } + #endif // ID63_DISABLE_UNDERGLOW + } + + if (flags == 0) { + rgb_matrix_set_flags(0); + rgb_matrix_set_color_all(HSV_OFF); + } else { + rgb_matrix_set_flags(flags); + rgb_matrix_enable_noeeprom(); + } + + eeconfig_update_kb(user_config.raw); // write back to EEPROM +} + +void id63_get_rgb_mode(void) { + user_config.raw = eeconfig_read_kb(); // read config from EEPROM + id63_update_rgb_mode(); +} + +void keyboard_post_init_user(void) { + id63_get_rgb_mode(); +} + +void eeconfig_init_user(void) { + // EEPROM is getting reset! + user_config.raw = 0; + id63_update_rgb_mode(); +} + +void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { + // Caps Lock key stuff + + if (host_keyboard_led_state().caps_lock) { + uint8_t v = rgb_matrix_get_val(); + if (v < ID63_CAPS_LOCK_VAL_STEP) { + v = ID63_CAPS_LOCK_VAL_STEP; + } else if (v < (ID63_CAPS_LOCK_MAX_BRIGHTNESS - ID63_CAPS_LOCK_VAL_STEP)) { + if (!user_config.rgb_disable_perkey) { + v += ID63_CAPS_LOCK_VAL_STEP; // inc. by one more step than current brightness + } // else leave as current brightness + } else { + v = ID63_CAPS_LOCK_MAX_BRIGHTNESS; + } + rgb_matrix_set_color(ID63_CAPS_LOCK_KEY_INDEX, v, v, v); // white, brightness adjusted + } else if (user_config.rgb_disable_perkey) { + rgb_matrix_set_color(ID63_CAPS_LOCK_KEY_INDEX, HSV_OFF); // off + } +} + +#endif // RGB_MATRIX_ENABLE + +/* + * Extra keys and RGB Toggle handler + */ + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + + mod_state = get_mods(); + + switch (keycode) { + + // handle RGB toggle key - this ensures caps lock always works + #ifdef RGB_MATRIX_ENABLE + + case QK_BOOT: + if (record->event.pressed) { + rgb_matrix_set_color_all(RGB_MATRIX_MAXIMUM_BRIGHTNESS, 0, 0); // All red + rgb_matrix_driver.flush(); + } + return true; + + case RGB_TOG: + /* roll through the LED modes + * | Level | Per-key | Underglow | + * |-------------|---------|-----------| + * | 0 (default) | on | on | + * | 1 | OFF | on | + * | 2 | on | OFF | + * | 3 | OFF | OFF | + * + * for ID63_DISABLE_UNDERGLOW + * | Level | Per-key | + * |-------------|---------| + * | 0 (default) | on | + * | 1 | OFF | + */ + if (record->event.pressed) { + if ( (!user_config.rgb_disable_perkey) + #ifndef ID63_DISABLE_UNDERGLOW + && (!user_config.rgb_disable_underglow) + #endif // ID63_DISABLE_UNDERGLOW + ) { + user_config.rgb_disable_perkey = 1; + + #ifndef ID63_DISABLE_UNDERGLOW + + } else if ( user_config.rgb_disable_perkey && (!user_config.rgb_disable_underglow) ) { + user_config.rgb_disable_perkey = 0; + user_config.rgb_disable_underglow = 1; + + } else if ( (!user_config.rgb_disable_perkey) && user_config.rgb_disable_underglow ) { + user_config.rgb_disable_perkey = 1; + + #endif // ID63_DISABLE_UNDERGLOW + + } else { + user_config.rgb_disable_perkey = 0; + #ifndef ID63_DISABLE_UNDERGLOW + user_config.rgb_disable_underglow = 0; + #endif // ID63_DISABLE_UNDERGLOW + } + id63_update_rgb_mode(); + } + return false; + + case RGB_TPK: + if (record->event.pressed) { + user_config.rgb_disable_perkey ^= 1; + id63_update_rgb_mode(); + } + return false; + + #ifndef ID63_DISABLE_UNDERGLOW + + case RGB_TUG: + if (record->event.pressed) { + user_config.rgb_disable_underglow ^= 1; + id63_update_rgb_mode(); + } + return false; + + #endif // ID63_DISABLE_UNDERGLOW + + case EE_CLR: + if (!record->event.pressed) { // on release + id63_get_rgb_mode(); + } + return true; // let this one pass on + + #endif // RGB_MATRIX_ENABLE + + // print firmware version + case KB_VRSN: + if (!get_mods()) { + if (!record->event.pressed) { + SEND_STRING(QMK_KEYBOARD ":" QMK_KEYMAP " (v" QMK_VERSION ")"); + } + } + return false; + + // @see: https://github.com/qmk/qmk_firmware/issues/10111#issuecomment-752300353 + case KC_MCON: + if (record->event.pressed) { + host_consumer_send(_AC_SHOW_ALL_WINDOWS); + } else { + host_consumer_send(0); + } + return false; + + case KC_LPAD: + if (record->event.pressed) { + host_consumer_send(_AC_SHOW_ALL_APPS); + } else { + host_consumer_send(0); + } + return false; + + // Shift + Backspace = Delete, see: https://docs.qmk.fm/#/feature_advanced_keycodes?id=shift-backspace-for-delete + case KC_BSPC: + if (record->event.pressed) { + if (mod_state & MOD_MASK_SHIFT) { + del_mods(MOD_MASK_SHIFT); + register_code(KC_DEL); + delkey_registered = true; + set_mods(mod_state); + return false; + } + } else { + if (delkey_registered) { + unregister_code(KC_DEL); + delkey_registered = false; + return false; + } + } + return true; + + default: + return true; /* Process all other keycodes normally */ + } +} diff --git a/keyboards/idobao/id63/keymaps/idobao/rules.mk b/keyboards/idobao/id63/keymaps/idobao/rules.mk new file mode 100644 index 0000000000..974ef99660 --- /dev/null +++ b/keyboards/idobao/id63/keymaps/idobao/rules.mk @@ -0,0 +1,3 @@ + +LTO_ENABLE = yes +VIA_ENABLE = yes diff --git a/keyboards/idobao/id63/keymaps/via/keymap.c b/keyboards/idobao/id63/keymaps/via/keymap.c new file mode 100644 index 0000000000..e8ad0eb82a --- /dev/null +++ b/keyboards/idobao/id63/keymaps/via/keymap.c @@ -0,0 +1,64 @@ +// Copyright 2022 Vino Rodrigues (@vinorodrigues) +// 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 β - β = βBackspcβ + * βββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββββββ€ + * β 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 βUp β / β + * ββββββ¬ββββ΄β¬βββ΄ββ¬ββ΄ββββ΄ββββ΄ββββ΄ββββ΄ββββ΄βββ¬β΄βββ¬β΄βββ¬ββββΌββββΌββββ€ + * βCtrlβWin βAlt β βFn βMnuβLf βDn βRt β + * ββββββ΄βββββ΄βββββ΄βββββββββββββββββββββββββ΄ββββ΄ββββ΄ββββ΄ββββ΄ββββ + */ + [0] = LAYOUT_60_ansi_arrow( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_SLSH, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_APP, KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* + * βββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββββββ + * β ~ βF1 βF2 βF3 βF4 βF5 βF6 βF7 βF8 βF9 βF10βF11βF12β Del β + * βββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββββββ€ + * β βtogβup βmodβhu+βhu-βsa+βsa-βbr+βbr-βprnβslkβpusβ Ins β + * βββββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄ββββββ€ + * β Caps βlf βdn βrt β β β β βsp+βsp-β β β β + * ββββββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββββ΄β¬ββββ¬ββββ€ + * β β β β β βRstβNRKβ β β β βPUpβ β + * ββββββ¬ββββ΄β¬βββ΄ββ¬ββ΄ββββ΄ββββ΄ββββ΄ββββ΄ββββ΄βββ¬β΄βββ¬β΄βββ¬ββββΌββββΌββββ€ + * β β β β β β βHomβPDnβEndβ + * ββββββ΄βββββ΄βββββ΄βββββββββββββββββββββββββ΄ββββ΄ββββ΄ββββ΄ββββ΄ββββ + */ + [1] = LAYOUT_60_ansi_arrow( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + _______, RGB_TOG, KC_UP, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_PSCR, KC_SLCK, KC_PAUS, KC_INS, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, RGB_SPI, RGB_SPD, _______, _______, _______, + _______, _______, _______, _______, _______, QK_BOOT, NK_TOGG, _______, _______, _______, _______, KC_PGUP, _______, + _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END + ), + + [2] = LAYOUT_60_ansi_arrow( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [3] = LAYOUT_60_ansi_arrow( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/idobao/id63/keymaps/via/rules.mk b/keyboards/idobao/id63/keymaps/via/rules.mk new file mode 100644 index 0000000000..974ef99660 --- /dev/null +++ b/keyboards/idobao/id63/keymaps/via/rules.mk @@ -0,0 +1,3 @@ + +LTO_ENABLE = yes +VIA_ENABLE = yes diff --git a/keyboards/idobao/id63/post_rules.mk b/keyboards/idobao/id63/post_rules.mk new file mode 100644 index 0000000000..1a465397fd --- /dev/null +++ b/keyboards/idobao/id63/post_rules.mk @@ -0,0 +1,8 @@ +# The Denwir D60 case has a sealed/solid undercase, +# this enables switching off thoes LEDs +# Usage: `make idobao/id63:default UNDERGLOW=off` + +UNDERGLOW ?= yes +ifneq ($(strip $(UNDERGLOW)), yes) + OPT_DEFS += -DID63_DISABLE_UNDERGLOW +endif diff --git a/keyboards/idobao/id63/readme.md b/keyboards/idobao/id63/readme.md new file mode 100644 index 0000000000..a4566f6f20 --- /dev/null +++ b/keyboards/idobao/id63/readme.md @@ -0,0 +1,39 @@ +# IDOBAO ID63 + +![IDOBAO ID63](https://i.imgur.com/DxlOr9xh.png) + +*The ID63 Keyboard Kit brings a tailored gasket-mounted build to an ultra-compact 60% layout with a unique ribbed side texture.* + +## ANSI Support + +* Keyboard Maintainer: [Vino Rodrigues](https://github.com/vinorodrigues) +* Hardware Supported: **IDOBAO ID63** +* Hardware Availability: [Drop.com](https://drop.com/buy/idobao-id63-60-gasket-hot-swappable-aluminum-mechanical-keyboard-kit) & [IDOBAO.net](https://idobao.net/search?type=product&q=id63*) + +## Layout + +![IDOBAO ID63](https://idobao.github.io/kle/idobao-id63.png) + +## Compiling and Flashing + +Make example for this keyboard (after setting up your build environment): + + qmk compile -kb idobao/id63 -km default + +*{..or..}* + + make idobao/id63:default + +Flashing example for this keyboard: + + make idobao/id63: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. <br>Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the [Escape] key and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT`, default is [Fn]+[B] diff --git a/keyboards/idobao/id63/rules.mk b/keyboards/idobao/id63/rules.mk new file mode 100644 index 0000000000..eab741fd0a --- /dev/null +++ b/keyboards/idobao/id63/rules.mk @@ -0,0 +1,5 @@ +# This file intentionally left blank +# ** settings are data driven & stored in `info.json` ** + +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812 diff --git a/keyboards/idobao/id67/config.h b/keyboards/idobao/id67/config.h index f94606c9e7..59e34654b5 100644 --- a/keyboards/idobao/id67/config.h +++ b/keyboards/idobao/id67/config.h @@ -1,49 +1,12 @@ -/* Copyright 2021 Tybera - * Copyright 2021 thewerther - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ +// Copyright 2021 Tybera (@tybera) +// Copyright 2021 Werther (@thewerther) +// Copyright 2022 Vino Rodrigues (@vinorodrigues) +// SPDX-License-Identifier: GPL-2.0-or-later #pragma once #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6964 /* "id" */ -#define PRODUCT_ID 0x0067 -#define DEVICE_VER 0x0002 -#define MANUFACTURER IDOBAO -#define PRODUCT ID67 - -/* key matrix size */ -#define MATRIX_ROWS 5 -#define MATRIX_COLS 15 - -/* - * Keyboard Matrix Assignments - * - * Change this to how you wired your keyboard - * COLS: AVR pins used for columns, left to right - * ROWS: AVR pins used for rows, top to bottom - * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) - * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) - * - */ -#define MATRIX_ROW_PINS { B0, B1, B2, B3, F7 } -#define MATRIX_COL_PINS { C7, F6, F5, F4, F1, B7, D5, D1, D2, D3, D4, D0, D6, D7, B4 } - -#define DIODE_DIRECTION COL2ROW #define RGB_DI_PIN F0 // RGB Matrix config @@ -51,60 +14,73 @@ #ifndef ID67_DISABLE_UNDERGLOW #define DRIVER_LED_TOTAL 77 #else - #define DRIVER_LED_TOTAL 67 + #define DRIVER_LED_TOTAL (77 - 10) #endif #define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended - #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to x out of 255. If not defined maximum brightness is set to 255 + #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // limits maximum brightness of LEDs to x out of 255. If not defined maximum brightness is set to 255 #define RGB_MATRIX_KEYPRESSES - #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 + #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 - // don't need `#if`, animation modes themselves check defines - // #if defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS) + /* RGB_MATRIX_FRAMEBUFFER_EFFECTS -- don't enable */ // #define ENABLE_RGB_MATRIX_TYPING_HEATMAP // #define ENABLE_RGB_MATRIX_DIGITAL_RAIN - // #endif // #if defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS) - // don't need `#if`, animation modes themselves check defines - // #if defined(RGB_MATRIX_KEYPRESSES) || defined(RGB_MATRIX_KEYRELEASES) - #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE// Pulses keys hit to hue & value then fades value out - #define ENABLE_RGB_MATRIX_SOLID_REACTIVE // Static single hue, pulses keys hit to shifted hue then fades to current hue + /* RGB_MATRIX_KEYPRESSES || 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 // #if defined(RGB_MATRIX_KEYPRESSES) || defined(RGB_MATRIX_KEYRELEASES) -#endif // #if defined(RGB_MATRIX_ENABLE) + #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 // RGB_MATRIX_ENABLE + +/* ----------------------- + * Feature disable options + * These options are also useful to firmware size reduction. + * ----------------------- */ + +/* disable debug print */ +// #define NO_DEBUG + +/* disable print */ +// #define NO_PRINT + +/* disable action features */ +// #define NO_ACTION_LAYER +// #define NO_ACTION_TAPPING +// #define NO_ACTION_ONESHOT diff --git a/keyboards/idobao/id67/id67.c b/keyboards/idobao/id67/id67.c index 155cc74087..17bcd9a943 100644 --- a/keyboards/idobao/id67/id67.c +++ b/keyboards/idobao/id67/id67.c @@ -1,19 +1,7 @@ -/* Copyright 2021 Tybera - * Copyright 2021 thewerther - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ +// Copyright 2021 Tybera (@tybera) +// Copyright 2021 Werther (@thewerther) +// Copyright 2022 Vino Rodrigues (@vinorodrigues) +// SPDX-License-Identifier: GPL-2.0-or-later #include "id67.h" @@ -25,6 +13,23 @@ * These "LED Index to *" arrays are in that reversed order! * i.e., Space row on top, listed right to left */ led_config_t g_led_config = { { + /* Under- / Per-Key + * βββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββββββ¬ββββ + * β66 β65 β64 β63 β62 β61 β60 β59 β58 β57 β56 β55 β54 β 53 β52 β + * βββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββββββΌββββ€ + * β 51 β50 β49 β48 β47 β46 β45 β44 β43 β42 β41 β40 β39 β 38 β37 β + * βββββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄ββββββΌββββ€ + * β 36 β35 β34 β33 β32 β31 β30 β29 β28 β27 β26 β25 β 24 β23 β + * ββββββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄βββββ¬ββββΌββββ€ + * β 22 β21 β20 β19 β18 β17 β16 β15 β14 β13 β12 β 11 β10 β 9 β + * ββββββ¬ββββ΄β¬βββ΄ββ¬ββ΄ββββ΄ββββ΄ββββ΄ββββ΄ββββ΄βββ¬β΄ββββΌββββ΄β¬ββ¬ββββΌββββΌββββ€ + * β 8 β 7 β 6 β 5 β 4 β 3 β β 2 β 1 β 0 β + * ββββββ΄βββββ΄βββββ΄βββββββββββββββββββββββββ΄βββββ΄βββββ βββββ΄ββββ΄ββββ + * + * Bottom Side (as seen from top orientation) + * 67 68 69 70 71 + * 76 75 74 73 72 + */ // Key Matrix to LED Index {66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52}, {51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37}, @@ -34,63 +39,30 @@ led_config_t g_led_config = { { }, { // LED Index to Physical Position // based on: https://gist.github.com/vinorodrigues/07fd735683856b2a06c7c52b9b3878cb - {224, 64}, {209, 64}, {194, 64}, {170, 64}, {151, 64}, {95, 64}, {39, 64}, {21, 64}, {2, 64}, - {224, 48}, {209, 48}, {189, 48}, {168, 48}, {153, 48}, {138, 48}, {123, 48}, {108, 48}, {93, 48}, {78, 48}, {63, 48}, {49, 48}, {34, 48}, {9, 48}, - {224, 32}, {200, 32}, {175, 32}, {161, 32}, {146, 32}, {131, 32}, {116, 32}, {101, 32}, {86, 32}, {71, 32}, {56, 32}, {41, 32}, {26, 32}, {6, 32}, - {224, 16}, {205, 16}, {187, 16}, {172, 16}, {157, 16}, {142, 16}, {127, 16}, {112, 16}, {97, 16}, {82, 16}, {67, 16}, {52, 16}, {37, 16}, {22, 16}, {4, 16}, - {224, 0}, {202, 0}, {179, 0}, {164, 0}, {149, 0}, {134, 0}, {119, 0}, {105, 0}, {90, 0}, {75, 0}, {60, 0}, {45, 0}, {30, 0}, {15, 0}, {0, 0} - #ifndef ID67_DISABLE_UNDERGLOW + // **NB: In reverse order** + {224,64 }, {209,64 }, {194,64 }, {170,64 }, {151,64 }, { 95,64 }, { 39,64 }, { 21,64 }, { 2,64 }, + {224,48 }, {209,48 }, {189,48 }, {168,48 }, {153,48 }, {138,48 }, {123,48 }, {108,48 }, { 93,48 }, { 78,48 }, { 63,48 }, { 49,48 }, { 34,48 }, { 9,48 }, + {224,32 }, {200,32 }, {175,32 }, {161,32 }, {146,32 }, {131,32 }, {116,32 }, {101,32 }, { 86,32 }, { 71,32 }, { 56,32 }, { 41,32 }, { 26,32 }, { 6,32 }, + {224,16 }, {205,16 }, {187,16 }, {172,16 }, {157,16 }, {142,16 }, {127,16 }, {112,16 }, { 97,16 }, { 82,16 }, { 67,16 }, { 52,16 }, { 37,16 }, { 22,16 }, { 4,16 }, + {224,0 }, {202,0 }, {179,0 }, {164,0 }, {149,0 }, {134,0 }, {119,0 }, {105,0 }, { 90,0 }, { 75,0 }, { 60,0 }, { 45,0 }, { 30,0 }, { 15,0 }, { 0,0 } // underglow LEDs + #ifndef ID67_DISABLE_UNDERGLOW , {0, 0}, {56, 0}, {112, 0}, {168, 0}, {224, 0}, {224, 64}, {168, 64}, {112, 64}, {56, 64}, {0, 64} #endif }, { // LED Index to Flag - 4, 4, 4, 1, 1, 4, 1, 1, 1, // first row - 1, 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, // second row + // **NB: In reverse order** + 1, 1, 1, 1, 1, 4, 1, 1, 1, // fifth/bottom row + 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, // fourth row 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 9, // third row - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, // fourth row - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 // fifth row + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, // second row + 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1 // first/top row // underglow LEDs #ifndef ID67_DISABLE_UNDERGLOW - , 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 + , 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2 #endif } }; -#endif // #ifdef RGB_MATRIX_ENABLE - - -/* Use `#define ID67_CAPS_LOCK_KEY_INDEX 36` in `keymaps/yourkeymap/config.h` - * if you want to enable Caps-Lock LED mode */ -#if defined(RGB_MATRIX_ENABLE) && defined(ID67_CAPS_LOCK_KEY_INDEX) - -#define ID67_CAPS_LOCK_MAX_BRIGHTNESS 0xFF -#ifdef RGB_MATRIX_MAXIMUM_BRIGHTNESS - #undef ID67_CAPS_LOCK_MAX_BRIGHTNESS - #define ID67_CAPS_LOCK_MAX_BRIGHTNESS RGB_MATRIX_MAXIMUM_BRIGHTNESS -#endif - -#define ID67_CAPS_LOCK_VAL_STEP 8 -#ifdef RGB_MATRIX_VAL_STEP - #undef ID67_CAPS_LOCK_VAL_STEP - #define ID67_CAPS_LOCK_VAL_STEP RGB_MATRIX_VAL_STEP -#endif - -/* This function is defined as weak, so if you create your own in keymap then - * that will compile, not this */ -__attribute__((weak)) -void rgb_matrix_indicators_user(void) { - if (host_keyboard_led_state().caps_lock) { - uint8_t b = rgb_matrix_get_val(); - if (b < ID67_CAPS_LOCK_VAL_STEP) { - b = ID67_CAPS_LOCK_VAL_STEP; - } else if (b < (ID67_CAPS_LOCK_MAX_BRIGHTNESS - ID67_CAPS_LOCK_VAL_STEP)) { - b += ID67_CAPS_LOCK_VAL_STEP; // one step more than current brightness - } else { - b = ID67_CAPS_LOCK_MAX_BRIGHTNESS; - } - rgb_matrix_set_color(ID67_CAPS_LOCK_KEY_INDEX, b, b, b); // white, with the adjusted brightness - } -} - -#endif // #ifdef ID67_CAPS_LOCK_KEY_INDEX +#endif // RGB_MATRIX_ENABLE diff --git a/keyboards/idobao/id67/id67.h b/keyboards/idobao/id67/id67.h index a8eead92a0..cd5ab8de09 100644 --- a/keyboards/idobao/id67/id67.h +++ b/keyboards/idobao/id67/id67.h @@ -1,36 +1,8 @@ -/* Copyright 2021 Tybera - * Copyright 2021 thewerther - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ +// Copyright 2021 Tybera (@tybera) +// Copyright 2021 Werther (@thewerther) +// Copyright 2022 Vino Rodrigues (@vinorodrigues) +// SPDX-License-Identifier: GPL-2.0-or-later #pragma once #include "quantum.h" - -#define ___ KC_NO - -#define LAYOUT_65_ansi_blocker( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \ - K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ - K40, K41, K43, K46, K4A, K4B, K4C, K4D, K4E \ -) { \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ - { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ - { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, ___, K2D, K2E }, \ - { K30, ___, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ - { K40, K41, ___, K43, ___, ___, K46, ___, ___, ___, K4A, K4B, K4C, K4D, K4E }, \ -} diff --git a/keyboards/idobao/id67/info.json b/keyboards/idobao/id67/info.json index 545cd863d8..5d70e19cd8 100644 --- a/keyboards/idobao/id67/info.json +++ b/keyboards/idobao/id67/info.json @@ -1,84 +1,105 @@ { + "manufacturer": "IDOBAO", "keyboard_name": "ID67", - "url": "https://idobao.net", "maintainer": "thewerther", - "layout_aliases": { - "LAYOUT": "LAYOUT_65_ansi_blocker" + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "debounce": 5, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "command": false, + "console": false, + "nkro": true, + "backlight": false, + "rgblight": false + }, + "matrix_pins": { + "cols": ["C7", "F6", "F5", "F4", "F1", "B7", "D5", "D1", "D2", "D3", "D4", "D0", "D6", "D7", "B4"], + "rows": ["B0", "B1", "B2", "B3", "F7"] + }, + "processor": "atmega32u4", + "url": "https://idobao.net/search?type=product&q=ID67*", + "usb": { + "vid": "0x6964", + "pid": "0x0267", + "device_version": "2.0.0" }, "layouts": { "LAYOUT_65_ansi_blocker": { "layout": [ - {"label":"K00 (B0,C7)", "x":0, "y":0}, - {"label":"K01 (B0,F6)", "x":1, "y":0}, - {"label":"K02 (B0,F5)", "x":2, "y":0}, - {"label":"K03 (B0,F4)", "x":3, "y":0}, - {"label":"K04 (B0,F1)", "x":4, "y":0}, - {"label":"K05 (B0,B7)", "x":5, "y":0}, - {"label":"K06 (B0,D5)", "x":6, "y":0}, - {"label":"K07 (B0,D1)", "x":7, "y":0}, - {"label":"K08 (B0,D2)", "x":8, "y":0}, - {"label":"K09 (B0,D3)", "x":9, "y":0}, - {"label":"K0A (B0,D4)", "x":10, "y":0}, - {"label":"K0B (B0,D0)", "x":11, "y":0}, - {"label":"K0C (B0,D6)", "x":12, "y":0}, - {"label":"K0D (B0,D7)", "x":13, "y":0, "w":2}, - {"label":"K0E (B0,B4)", "x":15, "y":0}, + { "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": [0, 14], "x":15, "y":0 }, - {"label":"K10 (B1,C7)", "x":0, "y":1, "w":1.5}, - {"label":"K11 (B1,F6)", "x":1.5, "y":1}, - {"label":"K12 (B1,F5)", "x":2.5, "y":1}, - {"label":"K13 (B1,F4)", "x":3.5, "y":1}, - {"label":"K14 (B1,F1)", "x":4.5, "y":1}, - {"label":"K15 (B1,B7)", "x":5.5, "y":1}, - {"label":"K16 (B1,D5)", "x":6.5, "y":1}, - {"label":"K17 (B1,D1)", "x":7.5, "y":1}, - {"label":"K18 (B1,D2)", "x":8.5, "y":1}, - {"label":"K19 (B1,D3)", "x":9.5, "y":1}, - {"label":"K1A (B1,D4)", "x":10.5, "y":1}, - {"label":"K1B (B1,D0)", "x":11.5, "y":1}, - {"label":"K1C (B1,D6)", "x":12.5, "y":1}, - {"label":"K1D (B1,D7)", "x":13.5, "y":1, "w":1.5}, - {"label":"K1E (B1,B4)", "x":15, "y":1}, + { "matrix": [1, 0], "x":0, "y":1, "w":1.5 }, + { "matrix": [1, 1], "x":1.5, "y":1 }, + { "matrix": [1, 2], "x":2.5, "y":1 }, + { "matrix": [1, 3], "x":3.5, "y":1 }, + { "matrix": [1, 4], "x":4.5, "y":1 }, + { "matrix": [1, 5], "x":5.5, "y":1 }, + { "matrix": [1, 6], "x":6.5, "y":1 }, + { "matrix": [1, 7], "x":7.5, "y":1 }, + { "matrix": [1, 8], "x":8.5, "y":1 }, + { "matrix": [1, 9], "x":9.5, "y":1 }, + { "matrix": [1, 10], "x":10.5, "y":1 }, + { "matrix": [1, 11], "x":11.5, "y":1 }, + { "matrix": [1, 12], "x":12.5, "y":1 }, + { "matrix": [1, 13], "x":13.5, "y":1, "w":1.5 }, + { "matrix": [1, 14], "x":15, "y":1 }, - {"label":"K20 (B2,C7)", "x":0, "y":2, "w":1.75}, - {"label":"K21 (B2,F6)", "x":1.75, "y":2}, - {"label":"K22 (B2,F5)", "x":2.75, "y":2}, - {"label":"K23 (B2,F4)", "x":3.75, "y":2}, - {"label":"K24 (B2,F1)", "x":4.75, "y":2}, - {"label":"K25 (B2,B7)", "x":5.75, "y":2}, - {"label":"K26 (B2,D5)", "x":6.75, "y":2}, - {"label":"K27 (B2,D1)", "x":7.75, "y":2}, - {"label":"K28 (B2,D2)", "x":8.75, "y":2}, - {"label":"K29 (B2,D3)", "x":9.75, "y":2}, - {"label":"K2A (B2,D4)", "x":10.75, "y":2}, - {"label":"K2B (B2,D0)", "x":11.75, "y":2}, - {"label":"K2D (B2,D7)", "x":12.75, "y":2, "w":2.25}, - {"label":"K2E (B2,B4)", "x":15, "y":2}, + { "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": [2, 14], "x":15, "y":2 }, - {"label":"K30 (B3,C7)", "x":0, "y":3, "w":2.25}, - {"label":"K32 (B3,F5)", "x":2.25, "y":3}, - {"label":"K33 (B3,F4)", "x":3.25, "y":3}, - {"label":"K34 (B3,F1)", "x":4.25, "y":3}, - {"label":"K35 (B3,B7)", "x":5.25, "y":3}, - {"label":"K36 (B3,D5)", "x":6.25, "y":3}, - {"label":"K37 (B3,D1)", "x":7.25, "y":3}, - {"label":"K38 (B3,D2)", "x":8.25, "y":3}, - {"label":"K39 (B3,D3)", "x":9.25, "y":3}, - {"label":"K3A (B3,D4)", "x":10.25, "y":3}, - {"label":"K3B (B3,D0)", "x":11.25, "y":3}, - {"label":"K3C (B3,D6)", "x":12.25, "y":3, "w":1.75}, - {"label":"K3D (B3,D7)", "x":14, "y":3}, - {"label":"K3E (B3,B4)", "x":15, "y":3}, + { "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": [3, 14], "x":15, "y":3 }, - {"label":"K40 (F7,C7)", "x":0, "y":4, "w":1.25}, - {"label":"K41 (F7,F6)", "x":1.25, "y":4, "w":1.25}, - {"label":"K43 (F7,F4)", "x":2.5, "y":4, "w":1.25}, - {"label":"K46 (F7,D5)", "x":3.75, "y":4, "w":6.25}, - {"label":"K4A (F7,D4)", "x":10, "y":4, "w":1.25}, - {"label":"K4B (F7,D0)", "x":11.25, "y":4, "w":1.25}, - {"label":"K4C (F7,D6)", "x":13, "y":4}, - {"label":"K4D (F7,D7)", "x":14, "y":4}, - {"label":"K4E (F7,B4)", "x":15, "y":4} + { "matrix": [4, 0], "x":0, "y":4, "w":1.25 }, + { "matrix": [4, 1], "x":1.25, "y":4, "w":1.25 }, + { "matrix": [4, 3], "x":2.5, "y":4, "w":1.25 }, + { "matrix": [4, 6], "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":13, "y":4 }, + { "matrix": [4, 13], "x":14, "y":4 }, + { "matrix": [4, 14], "x":15, "y":4 } ] } } diff --git a/keyboards/idobao/id67/keymaps/default/keymap.c b/keyboards/idobao/id67/keymaps/default/keymap.c index 54b39ad4a7..55e6fd88cd 100644 --- a/keyboards/idobao/id67/keymaps/default/keymap.c +++ b/keyboards/idobao/id67/keymaps/default/keymap.c @@ -1,23 +1,22 @@ -/* Copyright 2021 Tybera - * Copyright 2022 thewerther - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General 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/>. - */ +// Copyright 2021 Tybera (@tybera) +// 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 β - β = βBackspcβ ~ β + * βββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββββββΌββββ€ + * β Tab β Q β W β E β R β T β Y β U β I β O β P β [ β ] β \ βDelβ + * βββββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄ββββββΌββββ€ + * β Caps β A β S β D β F β G β H β J β K β L β ; β ' β Enter βPUpβ + * ββββββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄βββββ¬ββββΌββββ€ + * β Shift β Z β X β C β V β B β N β M β , β . β / β Shft βUp βPDnβ + * ββββββ¬ββββ΄β¬βββ΄ββ¬ββ΄ββββ΄ββββ΄ββββ΄ββββ΄ββββ΄βββ¬β΄ββββΌββββ΄β¬ββ¬ββββΌββββΌββββ€ + * βCtrlβWin βAlt β βFn1 βCtrlβ βLf βDn βRt β + * ββββββ΄βββββ΄βββββ΄βββββββββββββββββββββββββ΄βββββ΄βββββ βββββ΄ββββ΄ββββ + */ [0] = LAYOUT_65_ansi_blocker( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_TILD, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, @@ -25,12 +24,25 @@ 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_PGDN, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), + + /* + * βββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββββββ¬ββββ + * β βF1 βF2 βF3 βF4 βF5 βF6 βF7 βF8 βF9 βF10βF11βF12β β β + * βββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββββββΌββββ€ + * β βTogβUp βModβHu+βHu-βSa+βSa-βBr+βBr-β β β β β β + * βββββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄ββββββΌββββ€ + * β βLf βDn βRt β β β β β βInsβHomβPUpβ β β + * ββββββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄βββββ¬ββββΌββββ€ + * β βRSTβSp+βSp-β βVl-βMutβVl+βDelβEndβPDnβ β β β + * ββββββ¬ββββ΄β¬βββ΄ββ¬ββ΄ββββ΄ββββ΄ββββ΄ββββ΄ββββ΄βββ¬β΄ββββΌββββ΄β¬ββ¬ββββΌββββΌββββ€ + * β β β β β β β β β β β + * ββββββ΄βββββ΄βββββ΄βββββββββββββββββββββββββ΄βββββ΄βββββ βββββ΄ββββ΄ββββ + */ [1] = LAYOUT_65_ansi_blocker( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, RGB_TOG, KC_UP, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, KC_INS, KC_HOME, KC_PGUP, _______, _______, - _______, QK_BOOT, RGB_SPI, RGB_SPD, _______, KC_VOLD, KC_MUTE, KC_VOLU, _______, KC_DEL, KC_END, KC_PGDN, _______, _______, + _______, QK_BOOT, RGB_SPI, RGB_SPD, _______, KC_VOLD, KC_MUTE, KC_VOLU, KC_DEL, KC_END, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - + ) }; diff --git a/keyboards/idobao/id67/keymaps/idobao/keymap.c b/keyboards/idobao/id67/keymaps/idobao/keymap.c new file mode 100644 index 0000000000..55ff6e5730 --- /dev/null +++ b/keyboards/idobao/id67/keymaps/idobao/keymap.c @@ -0,0 +1,341 @@ +// Copyright 2022 Vino Rodrigues (@vinorodrigues) +// Copyright 2022 IDOBAO (@idobaokb) +// SPDX-License-Identifier: GPL-2.0-or-later + +/* ------------------------------------------------------------------ + * This is the IDOBAO factory default keymap ;) + * ------------------------------------------------------------------ */ + +#include QMK_KEYBOARD_H +#include "version.h" + +#ifdef RGB_MATRIX_ENABLE + +typedef union { + uint32_t raw; + struct { + bool rgb_disable_perkey:1; + #ifndef ID67_DISABLE_UNDERGLOW + bool rgb_disable_underglow:1; + #endif // ID67_DISABLE_UNDERGLOW + }; +} user_config_t; + +#endif // RGB_MATRIX_ENABLE + +enum { + KC_MCON = USER00, // macOS Open Mission Control + KC_LPAD, // macOS Open Launchpad + #ifdef RGB_MATRIX_ENABLE + RGB_TPK, // Toggle Per-Key + #ifndef ID67_DISABLE_UNDERGLOW + RGB_TUG, // Toggle Underglow + #endif // ID67_DISABLE_UNDERGLOW + #endif //RGB_MATRIX_ENABLE + KB_VRSN = USER09 // debug, type version +}; + +#ifndef RGB_MATRIX_ENABLE + #define RGB_TPK _______ + #define RGB_TUG _______ +#else + #ifdef ID67_DISABLE_UNDERGLOW + #define RGB_TUG _______ + #endif // ID67_DISABLE_UNDERGLOW +#endif // RGB_MATRIX_ENABLE + +enum macos_consumer_usages { + _AC_SHOW_ALL_WINDOWS = 0x29F, // mapped to KC_MCON + _AC_SHOW_ALL_APPS = 0x2A0 // mapped to KC_LPAD +}; + +/* Special Keys */ +#define SK_LT1C LT(1, KC_CAPS) // Layer Tap 1, i.e., Tap = Caps Lock, Hold = Layer 1 +#define SK_LT2A LT(2, KC_APP) // Layer Tap 2, i.e., Tap = Menu, Hold = Layer 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * βββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββββββ¬ββββ + * βEscβ 1 β 2 β 3 β 4 β 5 β 6 β 7 β 8 β 9 β 0 β - β = βBackspcβ ~ β + * βββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββββββΌββββ€ + * β Tab β Q β W β E β R β T β Y β U β I β O β P β [ β ] β \ βDelβ + * βββββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄ββββββΌββββ€ + * β*Caps*β A β S β D β F β G β H β J β K β L β ; β ' β Enter βPUpβ *Caps* => `LT(1, KC_CAPS)` + * ββββββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄βββββ¬ββββΌββββ€ + * β Shift β Z β X β C β V β B β N β M β , β . β / β Shft βUp βPDnβ + * ββββββ¬ββββ΄β¬βββ΄ββ¬ββ΄ββββ΄ββββ΄ββββ΄ββββ΄ββββ΄βββ¬β΄ββββΌββββ΄β¬ββ¬ββββΌββββΌββββ€ + * βCtrlβWin βAlt β βFn1 β*Mn*β βLf βDn βRt β *Mn* => `LT(2, KC_APP)` + * ββββββ΄βββββ΄βββββ΄βββββββββββββββββββββββββ΄βββββ΄βββββ βββββ΄ββββ΄ββββ + */ + [0] = LAYOUT_65_ansi_blocker( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_TILD, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, + SK_LT1C, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), SK_LT2A, KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* + * βββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββββββ¬ββββ + * β βF1 βF2 βF3 βF4 βF5 βF6 βF7 βF8 βF9 βF10βF11βF12β β β + * βββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββββββΌββββ€ + * β βTogβUp βModβHu+βHu-βSa+βSa-βBr+βBr-β βTUGβTPKβ β β + * βββββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄ββββββΌββββ€ + * β βLf βDn βRt β β β β β βInsβHomβPUpβ β β + * ββββββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄βββββ¬ββββΌββββ€ + * β βRSTβSp+βSp-β βVl-βMutβVl+βDelβEndβPDnβ β β β + * ββββββ¬ββββ΄β¬βββ΄ββ¬ββ΄ββββ΄ββββ΄ββββ΄ββββ΄ββββ΄βββ¬β΄ββββΌββββ΄β¬ββ¬ββββΌββββΌββββ€ + * β β β β β β β β β β β + * ββββββ΄βββββ΄βββββ΄βββββββββββββββββββββββββ΄βββββ΄βββββ βββββ΄ββββ΄ββββ + */ + [1] = LAYOUT_65_ansi_blocker( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, + _______, RGB_TOG, KC_UP, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, RGB_TUG, RGB_TPK, _______, _______, + KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, KC_INS, KC_HOME, KC_PGUP, _______, _______, + _______, QK_BOOT, RGB_SPI, RGB_SPD, KB_VRSN, KC_VOLD, KC_MUTE, KC_VOLU, KC_DEL, KC_END, KC_PGDN, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + /* + * βββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββββββ¬ββββ + * β β β β β β β β β β β β β β β β + * βββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββββββΌββββ€ + * β β β β β β β β β β β β β β β β + * βββββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄ββββββΌββββ€ + * β β β β β β β β β β β β β β β + * ββββββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄βββββ¬ββββΌββββ€ + * β β β β β β β β β β β β β β β + * ββββββ¬ββββ΄β¬βββ΄ββ¬ββ΄ββββ΄ββββ΄ββββ΄ββββ΄ββββ΄βββ¬β΄ββββΌββββ΄β¬ββ¬ββββΌββββΌββββ€ + * β β β β β β β β β β β + * ββββββ΄βββββ΄βββββ΄βββββββββββββββββββββββββ΄βββββ΄βββββ βββββ΄ββββ΄ββββ + */ + [2] = LAYOUT_65_ansi_blocker( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [3] = LAYOUT_65_ansi_blocker( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; + +#ifdef RGB_MATRIX_ENABLE + +/* + * RGB Stuff + */ + +#define ID67_CAPS_LOCK_KEY_INDEX 36 // position of Caps Lock key + +#define ID67_CAPS_LOCK_MAX_BRIGHTNESS 0xFF +#ifdef RGB_MATRIX_MAXIMUM_BRIGHTNESS + #undef ID67_CAPS_LOCK_MAX_BRIGHTNESS + #define ID67_CAPS_LOCK_MAX_BRIGHTNESS RGB_MATRIX_MAXIMUM_BRIGHTNESS +#endif + +#define ID67_CAPS_LOCK_VAL_STEP 8 +#ifdef RGB_MATRIX_VAL_STEP + #undef ID67_CAPS_LOCK_VAL_STEP + #define ID67_CAPS_LOCK_VAL_STEP RGB_MATRIX_VAL_STEP +#endif + +user_config_t user_config; + +void id67_update_rgb_mode(void) { + uint8_t flags = LED_FLAG_ALL; + + if (user_config.rgb_disable_perkey + #ifndef ID67_DISABLE_UNDERGLOW + && user_config.rgb_disable_underglow + #endif // ID67_DISABLE_UNDERGLOW + ) { + flags = 0; // All OFF Condition + } else { + if (user_config.rgb_disable_perkey) { + #ifndef ID67_DISABLE_UNDERGLOW + flags = LED_FLAG_UNDERGLOW | 0xF0; + #else + flags = 0xF0; + #endif // ID67_DISABLE_UNDERGLOW + } + #ifndef ID67_DISABLE_UNDERGLOW + if (user_config.rgb_disable_underglow) { + flags = LED_FLAG_MODIFIER | LED_FLAG_KEYLIGHT | LED_FLAG_INDICATOR | 0xF0; + } + #endif // ID67_DISABLE_UNDERGLOW + } + + if (flags == 0) { + rgb_matrix_set_flags(0); + rgb_matrix_set_color_all(HSV_OFF); + } else { + rgb_matrix_set_flags(flags); + rgb_matrix_enable_noeeprom(); + } + + eeconfig_update_kb(user_config.raw); // write back to EEPROM +} + +void id67_get_rgb_mode(void) { + user_config.raw = eeconfig_read_kb(); // read config from EEPROM + id67_update_rgb_mode(); +} + +void keyboard_post_init_user(void) { + id67_get_rgb_mode(); +} + +void eeconfig_init_user(void) { + // EEPROM is getting reset! + user_config.raw = 0; + id67_update_rgb_mode(); +} + +void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { + // Caps Lock key stuff + + if (host_keyboard_led_state().caps_lock) { + uint8_t v = rgb_matrix_get_val(); + if (v < ID67_CAPS_LOCK_VAL_STEP) { + v = ID67_CAPS_LOCK_VAL_STEP; + } else if (v < (ID67_CAPS_LOCK_MAX_BRIGHTNESS - ID67_CAPS_LOCK_VAL_STEP)) { + if (!user_config.rgb_disable_perkey) { + v += ID67_CAPS_LOCK_VAL_STEP; // inc. by one more step than current brightness + } // else leave as current brightness + } else { + v = ID67_CAPS_LOCK_MAX_BRIGHTNESS; + } + rgb_matrix_set_color(ID67_CAPS_LOCK_KEY_INDEX, v, v, v); // white, brightness adjusted + } else if (user_config.rgb_disable_perkey) { + rgb_matrix_set_color(ID67_CAPS_LOCK_KEY_INDEX, HSV_OFF); // off + } +} + +#endif // RGB_MATRIX_ENABLE + +/* + * Extra keys and RGB Toggle handler + */ + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + + switch (keycode) { + + // handle RGB toggle key - this ensures caps lock always works + #ifdef RGB_MATRIX_ENABLE + + case QK_BOOT: + if (record->event.pressed) { + rgb_matrix_set_color_all(RGB_MATRIX_MAXIMUM_BRIGHTNESS, 0, 0); // All red + rgb_matrix_driver.flush(); + } + return true; + + case RGB_TOG: + /* roll through the LED modes + * | Level | Per-key | Underglow | + * |-------------|---------|-----------| + * | 0 (default) | on | on | + * | 1 | OFF | on | + * | 2 | on | OFF | + * | 3 | OFF | OFF | + * + * for ID67_DISABLE_UNDERGLOW + * | Level | Per-key | + * |-------------|---------| + * | 0 (default) | on | + * | 1 | OFF | + */ + if (record->event.pressed) { + if ((!user_config.rgb_disable_perkey) + #ifndef ID67_DISABLE_UNDERGLOW + && (!user_config.rgb_disable_underglow) + #endif // ID67_DISABLE_UNDERGLOW + ) { + user_config.rgb_disable_perkey = 1; + + #ifndef ID67_DISABLE_UNDERGLOW + + } else if (user_config.rgb_disable_perkey && (!user_config.rgb_disable_underglow)) { + user_config.rgb_disable_perkey = 0; + user_config.rgb_disable_underglow = 1; + + } else if ((!user_config.rgb_disable_perkey) && user_config.rgb_disable_underglow) { + user_config.rgb_disable_perkey = 1; + + #endif // ID67_DISABLE_UNDERGLOW + + } else { + user_config.rgb_disable_perkey = 0; + #ifndef ID67_DISABLE_UNDERGLOW + user_config.rgb_disable_underglow = 0; + #endif // ID67_DISABLE_UNDERGLOW + } + + id67_update_rgb_mode(); + } + return false; + + case RGB_TPK: + if (record->event.pressed) { + user_config.rgb_disable_perkey ^= 1; + id67_update_rgb_mode(); + } + return false; + + #ifndef ID67_DISABLE_UNDERGLOW + + case RGB_TUG: + if (record->event.pressed) { + user_config.rgb_disable_underglow ^= 1; + id67_update_rgb_mode(); + } + return false; + + #endif // ID67_DISABLE_UNDERGLOW + + case EE_CLR: + if (!record->event.pressed) { // on release + id67_get_rgb_mode(); + } + return true; // let this one pass on + + #endif // RGB_MATRIX_ENABLE + + // print firmware version + case KB_VRSN: + if (!get_mods()) { + if (!record->event.pressed) { + SEND_STRING(QMK_KEYBOARD ":" QMK_KEYMAP " (v" QMK_VERSION ")"); + } + } + return false; + + // @see: https://github.com/qmk/qmk_firmware/issues/10111#issuecomment-752300353 + case KC_MCON: + if (record->event.pressed) { + host_consumer_send(_AC_SHOW_ALL_WINDOWS); + } else { + host_consumer_send(0); + } + return false; + + case KC_LPAD: + if (record->event.pressed) { + host_consumer_send(_AC_SHOW_ALL_APPS); + } else { + host_consumer_send(0); + } + return false; + + default: + return true; /* Process all other keycodes normally */ + } +} diff --git a/keyboards/idobao/id80/v1/ansi/keymaps/via/rules.mk b/keyboards/idobao/id67/keymaps/idobao/rules.mk index ca9fed0e6b..ca9fed0e6b 100644 --- a/keyboards/idobao/id80/v1/ansi/keymaps/via/rules.mk +++ b/keyboards/idobao/id67/keymaps/idobao/rules.mk diff --git a/keyboards/idobao/id67/keymaps/thewerther/config.h b/keyboards/idobao/id67/keymaps/thewerther/config.h index a63a92b171..4cd526feea 100644 --- a/keyboards/idobao/id67/keymaps/thewerther/config.h +++ b/keyboards/idobao/id67/keymaps/thewerther/config.h @@ -1,23 +1,11 @@ -/* Copyright 2021 thewerther - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ +// Copyright 2021 Werther (@thewerther) +// SPDX-License-Identifier: GPL-2.0-or-later #pragma once #define DRIVER_LED_UNDERGLOW 10 #define TAPPING_TERM 500 +#define PERMISSIVE_HOLD #if defined(RGB_MATRIX_ENABLE) #undef RGB_MATRIX_MAXIMUM_BRIGHTNESS diff --git a/keyboards/idobao/id67/keymaps/thewerther/keymap.c b/keyboards/idobao/id67/keymaps/thewerther/keymap.c index 8af720755f..ef37b210f5 100644 --- a/keyboards/idobao/id67/keymaps/thewerther/keymap.c +++ b/keyboards/idobao/id67/keymaps/thewerther/keymap.c @@ -1,19 +1,5 @@ -/* Copyright 2021 Tybera - * Copyright 2021 thewerther - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ +// Copyright 2021 Werther (@thewerther) +// SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H @@ -36,14 +22,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_MPLY, KC_MPRV, KC_MNXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, - _______, RESET, RGB_SPI, RGB_SPD, _______, KC_VOLD, KC_MUTE, KC_VOLU, _______, _______, _______, _______, _______, KC_END, + _______, QK_BOOT, RGB_SPI, RGB_SPD, _______, KC_VOLD, KC_MUTE, KC_VOLU, _______, _______, _______, _______, _______, KC_END, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; void matrix_scan_user(void) { -# if defined(RGB_MATRIX_ENABLE) + #if defined(RGB_MATRIX_ENABLE) int current_effect = rgb_matrix_get_mode(); if (current_effect >= RGB_MATRIX_SOLID_REACTIVE_SIMPLE && current_effect <= RGB_MATRIX_SOLID_MULTISPLASH) { // set all underglow leds to current color @@ -52,6 +38,5 @@ void matrix_scan_user(void) { rgb_matrix_set_color(i, current_color.r, current_color.g, current_color.b); } } -# endif + #endif } - diff --git a/keyboards/idobao/id67/keymaps/via/keymap.c b/keyboards/idobao/id67/keymaps/via/keymap.c index ff0bfff745..0014fb3bbf 100644 --- a/keyboards/idobao/id67/keymaps/via/keymap.c +++ b/keyboards/idobao/id67/keymaps/via/keymap.c @@ -1,22 +1,22 @@ -/* Copyright 2021 Tybera - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ +// Copyright 2021 Tybera (@tybera) +// 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 β - β = βBackspcβ ~ β + * βββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββββββΌββββ€ + * β Tab β Q β W β E β R β T β Y β U β I β O β P β [ β ] β \ βDelβ + * βββββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄ββββββΌββββ€ + * β Caps β A β S β D β F β G β H β J β K β L β ; β ' β Enter βPUpβ + * ββββββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄βββββ¬ββββΌββββ€ + * β Shift β Z β X β C β V β B β N β M β , β . β / β Shft βUp βPDnβ + * ββββββ¬ββββ΄β¬βββ΄ββ¬ββ΄ββββ΄ββββ΄ββββ΄ββββ΄ββββ΄βββ¬β΄ββββΌββββ΄β¬ββ¬ββββΌββββΌββββ€ + * βCtrlβWin βAlt β βFn1 βCtrlβ βLf βDn βRt β + * ββββββ΄βββββ΄βββββ΄βββββββββββββββββββββββββ΄βββββ΄βββββ βββββ΄ββββ΄ββββ + */ [0] = LAYOUT_65_ansi_blocker( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_TILD, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, @@ -24,13 +24,41 @@ 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_PGDN, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), + + /* + * βββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββββββ¬ββββ + * β βF1 βF2 βF3 βF4 βF5 βF6 βF7 βF8 βF9 βF10βF11βF12β β β + * βββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββββββΌββββ€ + * β βTogβUp βModβHu+βHu-βSa+βSa-βBr+βBr-β β β β β β + * βββββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄ββββββΌββββ€ + * β βLf βDn βRt β β β β β βInsβHomβPUpβ β β + * ββββββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄βββββ¬ββββΌββββ€ + * β βRSTβSp+βSp-β βVl-βMutβVl+βDelβEndβPDnβ β β β + * ββββββ¬ββββ΄β¬βββ΄ββ¬ββ΄ββββ΄ββββ΄ββββ΄ββββ΄ββββ΄βββ¬β΄ββββΌββββ΄β¬ββ¬ββββΌββββΌββββ€ + * β β β β β β β β β β β + * ββββββ΄βββββ΄βββββ΄βββββββββββββββββββββββββ΄βββββ΄βββββ βββββ΄ββββ΄ββββ + */ [1] = LAYOUT_65_ansi_blocker( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, RGB_TOG, KC_UP, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, KC_INS, KC_HOME, KC_PGUP, _______, _______, - _______, QK_BOOT, BL_DEC, BL_TOGG, BL_INC, KC_VOLD, KC_MUTE, KC_VOLU, _______, KC_DEL, KC_END, KC_PGDN, _______, _______, + _______, QK_BOOT, RGB_SPI, RGB_SPD, _______, KC_VOLD, KC_MUTE, KC_VOLU, KC_DEL, KC_END, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), + + /* + * βββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββββββ¬ββββ + * β β β β β β β β β β β β β β β β + * βββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββββββΌββββ€ + * β β β β β β β β β β β β β β β β + * βββββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄ββββββΌββββ€ + * β β β β β β β β β β β β β β β + * ββββββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄βββββ¬ββββΌββββ€ + * β β β β β β β β β β β β β β β + * ββββββ¬ββββ΄β¬βββ΄ββ¬ββ΄ββββ΄ββββ΄ββββ΄ββββ΄ββββ΄βββ¬β΄ββββΌββββ΄β¬ββ¬ββββΌββββΌββββ€ + * β β β β β β β β β β β + * ββββββ΄βββββ΄βββββ΄βββββββββββββββββββββββββ΄βββββ΄βββββ βββββ΄ββββ΄ββββ + */ [2] = LAYOUT_65_ansi_blocker( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -38,11 +66,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), + [3] = LAYOUT_65_ansi_blocker( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), + ) }; diff --git a/keyboards/idobao/id67/keymaps/vinorodrigues/config.h b/keyboards/idobao/id67/keymaps/vinorodrigues/config.h index 92b3ec0658..f7ada65953 100644 --- a/keyboards/idobao/id67/keymaps/vinorodrigues/config.h +++ b/keyboards/idobao/id67/keymaps/vinorodrigues/config.h @@ -1,26 +1,14 @@ +// Copyright 2022 Vino Rodrigues (@vinorodrigues) +// SPDX-License-Identifier: GPL-2.0-or-later + /* * IDOBAO ID67 Keymap for a ID67 Bestype, built for Mac use - * Copyright (C) 2022 Vino Rodrigues - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <https://www.gnu.org/licenses/>. */ #pragma once -#if defined(RGB_MATRIX_ENABLE) - #define VIA_QMK_RGBLIGHT_ENABLE - #define ID67_DISABLE_UNDERGLOW // personal choice, I use a ID67 Bestype +#ifdef RGB_MATRIX_ENABLE + #define ID67_DISABLE_UNDERGLOW #ifdef RGB_MATRIX_MAXIMUM_BRIGHTNESS #undef RGB_MATRIX_MAXIMUM_BRIGHTNESS diff --git a/keyboards/idobao/id67/keymaps/vinorodrigues/keymap.c b/keyboards/idobao/id67/keymaps/vinorodrigues/keymap.c index c62db2c724..1bf6971730 100644 --- a/keyboards/idobao/id67/keymaps/vinorodrigues/keymap.c +++ b/keyboards/idobao/id67/keymaps/vinorodrigues/keymap.c @@ -1,19 +1,8 @@ +// Copyright 2022 Vino Rodrigues (@vinorodrigues) +// SPDX-License-Identifier: GPL-2.0-or-later + /* * IDOBAO ID67 Keymap for a ID67 Bestype, built for Mac use - * Copyright (C) 2022 Vino Rodrigues - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include QMK_KEYBOARD_H @@ -44,30 +33,85 @@ enum macos_consumer_usages { #endif const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * βββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββββββ¬ββββ + * βEscβ 1 β 2 β 3 β 4 β 5 β 6 β 7 β 8 β 9 β 0 β - β = βBackspcβ ~ β + * βββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββββββΌββββ€ + * β Tab β Q β W β E β R β T β Y β U β I β O β P β [ β ] β \ βDelβ + * βββββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄ββββββΌββββ€ + * β*Caps*β A β S β D β F β G β H β J β K β L β ; β ' β Enter βPUpβ *Caps* => `LT(1, KC_CAPS)` + * ββββββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄βββββ¬ββββΌββββ€ + * β Shift β Z β X β C β V β B β N β M β , β . β / β Shft βUp βPDnβ + * ββββββ¬ββββ΄β¬βββ΄ββ¬ββ΄ββββ΄ββββ΄ββββ΄ββββ΄ββββ΄βββ¬β΄ββββΌββββ΄β¬ββ¬ββββΌββββΌββββ€ + * βCtrlβOpt βCommβ βFn1 βFn2 β βLf βDn βRt β + * ββββββ΄βββββ΄βββββ΄βββββββββββββββββββββββββ΄βββββ΄βββββ βββββ΄ββββ΄ββββ + */ [_BASE] = LAYOUT_65_ansi_blocker( KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_GRAVE, \ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLASH, KC_DELETE, \ LT1_C_L, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, \ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, \ KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, FN_MO13, FN_MO23, KC_LEFT, KC_DOWN, KC_RIGHT), + + /* + * βββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββββββ¬ββββ + * β ~ βF1 βF2 βF3 βF4 βF5 βF6 βF7 βF8 βF9 βF10βF11βF12β ERASE βF13β + * βββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββββββΌββββ€ + * β β βUp β β β β β β β βPScβHomβEndβEjectβInsβ + * βββββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄ββββββΌββββ€ + * β Caps βLf βDn βRt β β β β β β βPUpβPDnβ enter βHomβ + * ββββββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄βββββ¬ββββΌββββ€ + * β Shft β β β β β β β β βInsβDelβShift β βEndβ + * ββββββ¬ββββ΄β¬βββ΄ββ¬ββ΄ββββ΄ββββ΄ββββ΄ββββ΄ββββ΄βββ¬β΄ββββΌββββ΄β¬ββ¬ββββΌββββΌββββ€ + * βctrlβopt βcommβ β βFn3 β β β β β + * ββββββ΄βββββ΄βββββ΄βββββββββββββββββββββββββ΄βββββ΄βββββ βββββ΄ββββ΄ββββ + */ [_FN1] = LAYOUT_65_ansi_blocker( KC_GRAVE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_ERAS, KC_F13, \ _______, XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSCR, KC_HOME, KC_END, KC_EJCT, KC_INS, \ KC_CAPS, KC_LEFT, KC_DOWN, KC_RIGHT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PGUP, KC_PGDN, KC_PENT, KC_HOME, \ KC_RSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_INS, KC_DELETE, KC_LSFT, _______, KC_END, \ KC_RCTL, KC_RALT, KC_RGUI, _______, _______, _______, _______, _______, _______), + + /* + * βββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββββββ¬ββββ + * βEscβSB-βSB+βmMCβmLPβBr-βBr+βPrvβPlyβNxtβMutβVl-βVl+β out βF14β + * βββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββββββΌββββ€ + * β Tog βModβ β β β β β β β β β β β βPScβ + * βββββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄ββββββΌββββ€ + * β βmodβ β β β β β β β βHu+βSa+β βSLkβ + * ββββββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄βββββ¬ββββΌββββ€ + * β β β β β β β β β βHu-βSa-β βBr+βPauβ + * ββββββ¬ββββ΄β¬βββ΄ββ¬ββ΄ββββ΄ββββ΄ββββ΄ββββ΄ββββ΄βββ¬β΄ββββΌββββ΄β¬ββ¬ββββΌββββΌββββ€ + * β β β β βFn3 β β βSp-βBr-βSp+β + * ββββββ΄βββββ΄βββββ΄βββββββββββββββββββββββββ΄βββββ΄βββββ βββββ΄ββββ΄ββββ + */ [_FN2] = LAYOUT_65_ansi_blocker( KC_ESC, KC_BRID, KC_BRIU, KC_MCON, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_OUT, KC_F14, \ RGB_TOG, RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSCR, \ XXXXXXX, RGB_RMOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUI, RGB_SAI, XXXXXXX, KC_SLCK, \ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUD, RGB_SAD, XXXXXXX, RGB_VAI, KC_PAUS, \ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_SPD, RGB_VAD, RGB_SPI), + + /* + * βββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββββββ¬ββββ + * βRSTβM01βM02βM03βM04βM05βM06βM07βM08βM09βM10βM11βM12β Power βF15β + * βββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββββββΌββββ€ + * β β β β β β β β β β β β β βSleepβ β + * βββββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄ββββββΌββββ€ + * β β β β β β β β β β β β β Debug β β + * ββββββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄βββββ¬ββββΌββββ€ + * β β β β βVerβ β β β β β β βM00β β + * ββββββ¬ββββ΄β¬βββ΄ββ¬ββ΄ββββ΄ββββ΄ββββ΄ββββ΄ββββ΄βββ¬β΄ββββΌββββ΄β¬ββ¬ββββΌββββΌββββ€ + * β β β β Wake β β β βM13βM14βM15β + * ββββββ΄βββββ΄βββββ΄βββββββββββββββββββββββββ΄βββββ΄βββββ βββββ΄ββββ΄ββββ + */ [_FN3] = LAYOUT_65_ansi_blocker( - RESET, MACRO01, MACRO02, MACRO03, MACRO04, MACRO05, MACRO06, MACRO07, MACRO08, MACRO09, MACRO10, MACRO11, MACRO12, KC_POWER, KC_F15, \ + QK_BOOT, MACRO01, MACRO02, MACRO03, MACRO04, MACRO05, MACRO06, MACRO07, MACRO08, MACRO09, MACRO10, MACRO11, MACRO12, KC_POWER, KC_F15, \ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SLEP, XXXXXXX, \ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DEBUG, XXXXXXX, \ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KB_VRSN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MACRO00, XXXXXXX, \ - XXXXXXX, XXXXXXX, XXXXXXX, KC_WAKE, XXXXXXX, XXXXXXX, MACRO13, MACRO14, MACRO15), + XXXXXXX, XXXXXXX, XXXXXXX, KC_WAKE, XXXXXXX, XXXXXXX, MACRO13, MACRO14, MACRO15) }; #ifdef RGB_MATRIX_ENABLE @@ -248,12 +292,16 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { case KC_MCON: if (record->event.pressed) { host_consumer_send(_AC_SHOW_ALL_WINDOWS); + } else { + host_consumer_send(0); } return false; case KC_LPAD: if (record->event.pressed) { host_consumer_send(_AC_SHOW_ALL_APPS); + } else { + host_consumer_send(0); } return false; diff --git a/keyboards/idobao/id67/keymaps/vinorodrigues/rules.mk b/keyboards/idobao/id67/keymaps/vinorodrigues/rules.mk index 24f7bdab9c..cf6371fda0 100644 --- a/keyboards/idobao/id67/keymaps/vinorodrigues/rules.mk +++ b/keyboards/idobao/id67/keymaps/vinorodrigues/rules.mk @@ -1,5 +1,3 @@ LTO_ENABLE = yes VIA_ENABLE = yes - -KEY_LOCK_ENABLE = no # Enable KC_LOCK support -NKRO_ENABLE = no # N-Key Rollover must be OFF for mac keys to work +NKRO_ENABLE = no # N-Key Rollover must be OFF for mac keys to work diff --git a/keyboards/idobao/id67/post_rules.mk b/keyboards/idobao/id67/post_rules.mk index 5eecdef4ce..32832a65b2 100644 --- a/keyboards/idobao/id67/post_rules.mk +++ b/keyboards/idobao/id67/post_rules.mk @@ -2,13 +2,7 @@ # this enables switching off thoes LEDs # Usage: `make idobao/id67:default UNDERGLOW=off` -ifeq ($(findstring off,$(UNDERGLOW)), off) - $(info ** UNDERGLOW OFF) - OPT_DEFS += -DID67_DISABLE_UNDERGLOW -else ifeq ($(findstring no,$(UNDERGLOW)), no) - $(info ** NO UNDERGLOW) - OPT_DEFS += -DID67_DISABLE_UNDERGLOW -else ifeq ($(findstring 0,$(UNDERGLOW)), 0) - $(info ** Nil UNDERGLOW) +UNDERGLOW ?= yes +ifneq ($(strip $(UNDERGLOW)), yes) OPT_DEFS += -DID67_DISABLE_UNDERGLOW endif diff --git a/keyboards/idobao/id67/readme.md b/keyboards/idobao/id67/readme.md index b69e2e60b1..55d5f5b512 100644 --- a/keyboards/idobao/id67/readme.md +++ b/keyboards/idobao/id67/readme.md @@ -1,25 +1,32 @@ # IDOBAO ID67 -![id67](https://idobao.github.io/assets/img/idobao-id67.png) +![id67](https://i.imgur.com/XiEnksS.png) A 65% hotswap keyboard from IDOBAO. ## ANSI support: -* Keyboard Maintainer: Tybera *(fmr.)*, [thewerther](https://github.com/thewerther) *(curr.)* -* Hardware Supported: IDOBAO ID67, ID67V2, ID67 Crystal & ID67 Bestype -* Hardware Availability: IDOBAO website: +* Keyboard Maintainer: + - [Tybera](https://github.com/tybera) *(fmr.)* + - [Werther](https://github.com/thewerther) *(curr.)* + - [Vino Rodrigues](https://github.com/vinorodrigues) *(curr.)* +* Hardware Supported: + - **IDOBAO ID67** + - **ID67v2** + - **ID67 Crystal** + - **ID67 Bestype** +* Hardware Availability: [IDOBAO.net](https://idobao.net/search?type=product&q=ID67*): * [ID67](https://www.idobao.net/products/idobao-id67-65-hot-swappable-mechanical-keyboard-kit-1) - * [ID67V2](https://idobao.net/products/idobao-id67v2-65-hot-swappable-mechanical-keyboard-kit) + * [ID67v2](https://idobao.net/products/idobao-id67v2-65-hot-swappable-mechanical-keyboard-kit) * [ID67 Crystal](https://idobao.net/products/idobao-id67-crystal-keyboard-kit-gasket-mount-version) * [ID67 Bestype](https://idobao.net/products/idobao-id67-bestype-keyboard-kit-aluminum-with-brass-weight) -## Layout +## ANSI Layout -![ID67 layout](https://idobao.github.io/kle/idobao-id67.png) +![ID67 Layout](https://idobao.github.io/kle/idobao-id67.png) -## Compiling and flashing +## Compiling and Flashing Make example for this keyboard (after setting up your build environment): @@ -37,4 +44,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the `Escape` key and plug in the keyboard. * **Physical reset button**: Briefly press the button on the back of the PCB. -* **Keycode in layout**: Press the key mapped to `RESET` (FN+Z). +* **Keycode in layout**: Press the key mapped to `QK_BOOT` (FN+Z). diff --git a/keyboards/idobao/id67/rules.mk b/keyboards/idobao/id67/rules.mk index 729e1ca67c..ce58b87be5 100644 --- a/keyboards/idobao/id67/rules.mk +++ b/keyboards/idobao/id67/rules.mk @@ -1,21 +1,5 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = atmel-dfu - # Build Options # change yes to no to disable # -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output RGB_MATRIX_ENABLE = yes # Enable RGB Matrix feature RGB_MATRIX_DRIVER = WS2812 # ID67 uses WS2812 driver -LAYOUTS = 65_ansi_blocker diff --git a/keyboards/idobao/id75/keymaps/drewdobo/keymap.c b/keyboards/idobao/id75/keymaps/drewdobo/keymap.c index 9dfc335e82..1fc047edcc 100644 --- a/keyboards/idobao/id75/keymaps/drewdobo/keymap.c +++ b/keyboards/idobao/id75/keymaps/drewdobo/keymap.c @@ -48,7 +48,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_FN] = LAYOUT_ortho_5x15( /* FUNCTION */ - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, XXXXXXX, RESET, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, XXXXXXX, QK_BOOT, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PGDN, KC_PGUP, XXXXXXX, XXXXXXX, XXXXXXX, \ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, XXXXXXX, \ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, Z_MAC, _______, XXXXXXX, KC_HOME, KC_END, XXXXXXX, XXXXXXX, XXXXXXX, \ diff --git a/keyboards/idobao/id75/keymaps/egstad/keymap.c b/keyboards/idobao/id75/keymaps/egstad/keymap.c index febbad7c6e..9bd350aa7e 100644 --- a/keyboards/idobao/id75/keymaps/egstad/keymap.c +++ b/keyboards/idobao/id75/keymaps/egstad/keymap.c @@ -100,7 +100,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_BSLS, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, TD_BRAC, \ _______, 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, MT_SHFT, \ - LG_ZMOT, LG_ZMIN, KC_LCTL, KC_LALT, KC_LGUI, KC_BSPC, _______, RESET, _______, FN_SPC, KC_ENT, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT \ + LG_ZMOT, LG_ZMIN, KC_LCTL, KC_LALT, KC_LGUI, KC_BSPC, _______, QK_BOOT, _______, FN_SPC, KC_ENT, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT \ ), @@ -114,7 +114,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| * | RGB | | | | | | RGB VD | RGB VI | | | | | | | | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | RESET | | | | | | RGB RMD| RGB MD | | | PLAY | PREV | VOL UP | VOL DN | NEXT | + * | QK_BOOT | | | | | | RGB RMD| RGB MD | | | PLAY | PREV | VOL UP | VOL DN | NEXT | * '--------------------------------------------------------------------------------------------------------------------------------------' */ @@ -123,7 +123,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_HUI, _______, _______, _______, _______, _______, _______, _______, \ KC_ASTG, _______, _______, _______, _______, _______, RGB_SAD, RGB_SAI, _______, _______, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, _______, \ RGB_TOG, _______, _______, _______, _______, _______, RGB_VAD, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, \ - RESET, _______, _______, _______, _______, _______, RGB_RMOD,RGB_MOD, _______, _______, KC_MPLY, KC_MRWD, KC_VOLU, KC_VOLD, KC_MFFD \ + QK_BOOT, _______, _______, _______, _______, _______, RGB_RMOD,RGB_MOD, _______, _______, KC_MPLY, KC_MRWD, KC_VOLU, KC_VOLD, KC_MFFD \ ), }; diff --git a/keyboards/idobao/id75/keymaps/gkbd/keymap.c b/keyboards/idobao/id75/keymaps/gkbd/keymap.c index 16e16cd855..b4dec42cad 100644 --- a/keyboards/idobao/id75/keymaps/gkbd/keymap.c +++ b/keyboards/idobao/id75/keymaps/gkbd/keymap.c @@ -32,7 +32,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 ), [2] = LAYOUT_ortho_5x15(/* Function keys */ - RESET, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TG(1), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_TOG, + QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TG(1), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_TOG, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_SLCK, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_NO, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_NO, KC_PAUS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, diff --git a/keyboards/idobao/id75/keymaps/gkbd_75/keymap.c b/keyboards/idobao/id75/keymaps/gkbd_75/keymap.c index be67aead4e..b7f7477904 100644 --- a/keyboards/idobao/id75/keymaps/gkbd_75/keymap.c +++ b/keyboards/idobao/id75/keymaps/gkbd_75/keymap.c @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_PGDN, KC_PSCR, KC_INS, KC_DEL, LT(1,KC_F11), KC_BSPC, KC_LSFT, KC_RCTL, KC_SPC, LT(1,KC_F12), KC_HOME, KC_END, KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT_ortho_5x15( - RESET, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_TOG, + 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, RGB_TOG, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, KC_SLCK, KC_NO, KC_NO, KC_PAUS, KC_BSLS, KC_PIPE, KC_SCLN, KC_COLN, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, diff --git a/keyboards/idobao/id75/keymaps/gkbd_orthon/keymap.c b/keyboards/idobao/id75/keymaps/gkbd_orthon/keymap.c index a603eae657..8fa10b0ac2 100644 --- a/keyboards/idobao/id75/keymaps/gkbd_orthon/keymap.c +++ b/keyboards/idobao/id75/keymaps/gkbd_orthon/keymap.c @@ -73,6 +73,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_SLCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_NO, KC_TRNS, KC_NO, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_PAUS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - RESET, KC_NO, KC_NO, KC_NO, KC_NO, KC_F11, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12, KC_NO, KC_NO, KC_NO, KC_NO, RGB_TOG + QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_F11, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12, KC_NO, KC_NO, KC_NO, KC_NO, RGB_TOG ) }; diff --git a/keyboards/idobao/id75/keymaps/greenshadowmaker/keymap.c b/keyboards/idobao/id75/keymaps/greenshadowmaker/keymap.c index d23bc7c7df..ffe2c6053b 100644 --- a/keyboards/idobao/id75/keymaps/greenshadowmaker/keymap.c +++ b/keyboards/idobao/id75/keymaps/greenshadowmaker/keymap.c @@ -81,7 +81,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* ADJUST * .--------------------------------------------------------------------------------------------------------------------------------------. - * | RESET | | | | | | | | |rgbplain|rgbtest | rgbmode| | | | + * | QK_BOOT | | | | | | | | |rgbplain|rgbtest | rgbmode| | | | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| * | | | | |rgb tog | bl_tog | | | | | | | | | | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| @@ -93,7 +93,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * '--------------------------------------------------------------------------------------------------------------------------------------' */ [_ADJUST] = LAYOUT_ortho_5x15( - RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_M_P, RGB_M_T, RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, + QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_M_P, RGB_M_T, RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, BL_TOGG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RAISE, XXXXXXX, RGB_HUI, RGB_SAI, RGB_VAI, BL_INC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, EEP_RST, XXXXXXX, RGB_HUD, RGB_SAD, RGB_VAD, BL_DEC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/keyboards/idobao/id75/keymaps/pathnirvana/keymap.c b/keyboards/idobao/id75/keymaps/pathnirvana/keymap.c index ea6831d6da..e622660d96 100644 --- a/keyboards/idobao/id75/keymaps/pathnirvana/keymap.c +++ b/keyboards/idobao/id75/keymaps/pathnirvana/keymap.c @@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [2] = LAYOUT_ortho_5x15( KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_MUTE, KC_VOLD, KC_VOLU, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_MSEL, BL_BRTG, RGB_HUD, RGB_HUI, KC_NO, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, LSFT(KC_LEFT), LSFT(KC_DOWN), LSFT(KC_UP), LSFT(KC_RGHT), KC_NO, KC_NO, - KC_SLEP, BL_STEP, RGB_SAD, RGB_SAI, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, RESET, + KC_SLEP, BL_STEP, RGB_SAD, RGB_SAI, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, QK_BOOT, KC_NO, BL_TOGG, RGB_VAD, RGB_VAI, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_NO, LCTL(KC_LEFT), LCTL(KC_DOWN), LCTL(KC_UP), LCTL(KC_RGHT), KC_NO, KC_NO, KC_NO, RGB_TOG, RGB_RMOD, RGB_MOD, KC_NO, KC_NO, KC_WBAK, KC_NO, KC_WFWD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO), [3] = LAYOUT_ortho_5x15( diff --git a/keyboards/idobao/id75/keymaps/revok75/keymap.c b/keyboards/idobao/id75/keymaps/revok75/keymap.c index a380240326..3c23bfff5a 100644 --- a/keyboards/idobao/id75/keymaps/revok75/keymap.c +++ b/keyboards/idobao/id75/keymaps/revok75/keymap.c @@ -70,7 +70,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * .--------------------------------------------------------------------------------------------------------------------------------------. * | ESC | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | VOLDN | VOLUP | MUTE | DEL | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| - * | TAB | - | WIN | - | - | RGB_TOG| - | - | OPTION | RESET | - | [ | ] | - | - | + * | TAB | - | WIN | - | - | RGB_TOG| - | - | OPTION | QK_BOOT | - | [ | ] | - | - | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------| * | CAP LK | MAC | RAINBOW| PLAIN | - | - | - | - | - | - | ; | ' | ENTER | ENTER | REF | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------| @@ -82,7 +82,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_FN] = LAYOUT_ortho_5x15( /* OSLAYOUT + NUMPAD + MEDIA + LIGHTING */ KC_TRNS, 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_DEL, \ - KC_TRNS, KC_NO, DF(_QW_W), KC_NO, KC_NO, RGB_TOG, KC_NO, KC_NO, KC_RALT, RESET, KC_NO, KC_LBRC, KC_RBRC, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_NO, DF(_QW_W), KC_NO, KC_NO, RGB_TOG, KC_NO, KC_NO, KC_RALT, QK_BOOT, KC_NO, KC_LBRC, KC_RBRC, KC_TRNS, KC_TRNS, \ KC_TRNS, DF(_QW_M), RGB_MODE_RAINBOW, RGB_MODE_PLAIN, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ KC_TRNS, RGB_VAI, RGB_VAD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_NO, KC_NO, KC_DOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_TRNS, \ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_END, KC_PGDN \ diff --git a/keyboards/idobao/id75/keymaps/xaceofspaidsx/keymap.c b/keyboards/idobao/id75/keymaps/xaceofspaidsx/keymap.c index c157317e2d..fee0df2b4b 100644 --- a/keyboards/idobao/id75/keymaps/xaceofspaidsx/keymap.c +++ b/keyboards/idobao/id75/keymaps/xaceofspaidsx/keymap.c @@ -49,7 +49,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| * | SELECT | CALC | UP | | | NEXT | P7 | P8 | P9 | - | | | PR SCR | SCR LK | PAUSE | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | PREV | LEFT | DOWN | RIGHT | DEL | PLAY | P4 | P5 | P6 | + | | RESET | | | | + * | PREV | LEFT | DOWN | RIGHT | DEL | PLAY | P4 | P5 | P6 | + | | QK_BOOT | | | | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| * | VOL- | MUTE | VOL+ | APP | | STOP | P1 | P2 | P3 | PENT | | | | | | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| @@ -60,7 +60,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_FN] = LAYOUT_ortho_5x15( /* FUNCTION */ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_NLCK, KC_SLSH, KC_ASTR, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ KC_MSEL, KC_CALC, KC_UP , _______, _______, KC_MNXT, KC_P7, KC_P8, KC_P9, KC_MINS, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, \ - KC_MPRV, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL , KC_MPLY, KC_P4, KC_P5, KC_P6, KC_PLUS, _______, RESET, _______, _______, _______, \ + KC_MPRV, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL , KC_MPLY, KC_P4, KC_P5, KC_P6, KC_PLUS, _______, QK_BOOT, _______, _______, _______, \ KC_VOLD, KC_MUTE, KC_VOLU, KC_APP, _______, KC_MSTP, KC_P1, KC_P2, KC_P3, KC_PENT, _______, _______, _______, _______, _______, \ _______, _______, RGB_TOG, MO(_FN), RGB_RMOD,RGB_MOD, KC_P0, _______, KC_PDOT, KC_PENT, KC_PENT, MO(_FN), _______, _______, _______ \ ), diff --git a/keyboards/idobao/id75/v1/config.h b/keyboards/idobao/id75/v1/config.h index 918dc16481..0bb05a810c 100644 --- a/keyboards/idobao/id75/v1/config.h +++ b/keyboards/idobao/id75/v1/config.h @@ -19,13 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6964 // ID -#define PRODUCT_ID 0x0075 -#define DEVICE_VER 0x0001 -#define MANUFACTURER IDOBAO -#define PRODUCT ID75 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 @@ -42,7 +35,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */ #define MATRIX_ROW_PINS { B0, B3, C7, B6, C6 } #define MATRIX_COL_PINS { F6, F5, F4, F1, E6, D5, D3, D2, D1, D0, D4, D6, D7, B4, B5 } -#define UNUSED_PINS /* COL2ROW, ROW2COL*/ #define DIODE_DIRECTION COL2ROW @@ -53,11 +45,22 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #define RGB_DI_PIN F0 #ifdef RGB_DI_PIN -#define RGBLIGHT_ANIMATIONS -#define RGBLED_NUM 16 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 + // RGBLIGHT_ANIMATIONS + #define RGBLIGHT_EFFECT_ALTERNATING + #define RGBLIGHT_EFFECT_BREATHING + #define RGBLIGHT_EFFECT_CHRISTMAS + #define RGBLIGHT_EFFECT_KNIGHT + #define RGBLIGHT_EFFECT_RAINBOW_MOOD + #define RGBLIGHT_EFFECT_RAINBOW_SWIRL + #define RGBLIGHT_EFFECT_RGB_TEST + #define RGBLIGHT_EFFECT_SNAKE + #define RGBLIGHT_EFFECT_STATIC_GRADIENT + #define RGBLIGHT_EFFECT_TWINKLE + + #define RGBLED_NUM 16 + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 #endif /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ diff --git a/keyboards/idobao/id75/v1/info.json b/keyboards/idobao/id75/v1/info.json index bacdc42235..cb1e21e554 100644 --- a/keyboards/idobao/id75/v1/info.json +++ b/keyboards/idobao/id75/v1/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "IDOBO", + "keyboard_name": "ID75", + "manufacturer": "IDOBAO", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x6964", + "pid": "0x0075", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_5x15": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":12, "y":2}, {"x":13, "y":2}, {"x":14, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}, {"x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"x":0, "y":4}, {"x":1, "y":4}, {"x":2, "y":4}, {"x":3, "y":4}, {"x":4, "y":4}, {"x":5, "y":4}, {"x":6, "y":4}, {"x":7, "y":4}, {"x":8, "y":4}, {"x":9, "y":4}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}] diff --git a/keyboards/idobao/id75/v2/config.h b/keyboards/idobao/id75/v2/config.h index c2e54f611d..4029d80bf8 100644 --- a/keyboards/idobao/id75/v2/config.h +++ b/keyboards/idobao/id75/v2/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6964 // ID -#define PRODUCT_ID 0x0075 -#define DEVICE_VER 0x0002 -#define MANUFACTURER IDOBAO -#define PRODUCT ID75 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 @@ -41,7 +34,6 @@ */ #define MATRIX_ROW_PINS { B0, B3, C7, B6, C6 } #define MATRIX_COL_PINS { F6, F5, F4, F1, E6, D5, D3, D2, D1, D0, D4, D6, D7, B4, B5 } -#define UNUSED_PINS /* COL2ROW, ROW2COL*/ #define DIODE_DIRECTION COL2ROW diff --git a/keyboards/idobao/id75/v2/info.json b/keyboards/idobao/id75/v2/info.json index fe24920f81..b1afe268de 100644 --- a/keyboards/idobao/id75/v2/info.json +++ b/keyboards/idobao/id75/v2/info.json @@ -1,10 +1,96 @@ { - "keyboard_name": "idobao/id75/v2", - "url": "", - "maintainer": "qmk", - "layouts": { - "LAYOUT_ortho_5x15": { - "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":12, "y":2}, {"x":13, "y":2}, {"x":14, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}, {"x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"x":0, "y":4}, {"x":1, "y":4}, {"x":2, "y":4}, {"x":3, "y":4}, {"x":4, "y":4}, {"x":5, "y":4}, {"x":6, "y":4}, {"x":7, "y":4}, {"x":8, "y":4}, {"x":9, "y":4}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}] - } - } + "keyboard_name": "ID75", + "manufacturer": "IDOBAO", + "url": "", + "maintainer": "peepeetee", + "usb": { + "vid": "0x6964", + "pid": "0x0075", + "device_version": "0.0.2" + }, + "layouts": { + "LAYOUT_ortho_5x15": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + + {"x":0, "y":1}, + {"x":1, "y":1}, + {"x":2, "y":1}, + {"x":3, "y":1}, + {"x":4, "y":1}, + {"x":5, "y":1}, + {"x":6, "y":1}, + {"x":7, "y":1}, + {"x":8, "y":1}, + {"x":9, "y":1}, + {"x":10, "y":1}, + {"x":11, "y":1}, + {"x":12, "y":1}, + {"x":13, "y":1}, + {"x":14, "y":1}, + + {"x":0, "y":2}, + {"x":1, "y":2}, + {"x":2, "y":2}, + {"x":3, "y":2}, + {"x":4, "y":2}, + {"x":5, "y":2}, + {"x":6, "y":2}, + {"x":7, "y":2}, + {"x":8, "y":2}, + {"x":9, "y":2}, + {"x":10, "y":2}, + {"x":11, "y":2}, + {"x":12, "y":2}, + {"x":13, "y":2}, + {"x":14, "y":2}, + + {"x":0, "y":3}, + {"x":1, "y":3}, + {"x":2, "y":3}, + {"x":3, "y":3}, + {"x":4, "y":3}, + {"x":5, "y":3}, + {"x":6, "y":3}, + {"x":7, "y":3}, + {"x":8, "y":3}, + {"x":9, "y":3}, + {"x":10, "y":3}, + {"x":11, "y":3}, + {"x":12, "y":3}, + {"x":13, "y":3}, + {"x":14, "y":3}, + + {"x":0, "y":4}, + {"x":1, "y":4}, + {"x":2, "y":4}, + {"x":3, "y":4}, + {"x":4, "y":4}, + {"x":5, "y":4}, + {"x":6, "y":4}, + {"x":7, "y":4}, + {"x":8, "y":4}, + {"x":9, "y":4}, + {"x":10, "y":4}, + {"x":11, "y":4}, + {"x":12, "y":4}, + {"x":13, "y":4}, + {"x":14, "y":4} + ] + } + } } diff --git a/keyboards/idobao/id75/v2/readme.md b/keyboards/idobao/id75/v2/readme.md index 76a94ae38c..6e6209b467 100644 --- a/keyboards/idobao/id75/v2/readme.md +++ b/keyboards/idobao/id75/v2/readme.md @@ -24,4 +24,4 @@ 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 `RESET` if it is available +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/idobao/id80/v1/ansi/config.h b/keyboards/idobao/id80/v1/ansi/config.h deleted file mode 100644 index 253c0757b8..0000000000 --- a/keyboards/idobao/id80/v1/ansi/config.h +++ /dev/null @@ -1,27 +0,0 @@ -/* -Copyright 2020 Sergey Vlasov <sigprof@gmail.com> - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -#pragma once - -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6964 /* "id" */ -#define PRODUCT_ID 0x0080 -#define DEVICE_VER 0x0001 -#define MANUFACTURER IDOBAO -#define PRODUCT ID80 diff --git a/keyboards/idobao/id80/v1/ansi/keymaps/default/readme.md b/keyboards/idobao/id80/v1/ansi/keymaps/default/readme.md deleted file mode 100644 index 8ae9f656cd..0000000000 --- a/keyboards/idobao/id80/v1/ansi/keymaps/default/readme.md +++ /dev/null @@ -1 +0,0 @@ -# The default keymap for id80 diff --git a/keyboards/idobao/id80/v1/ansi/keymaps/via/keymap.c b/keyboards/idobao/id80/v1/ansi/keymaps/via/keymap.c deleted file mode 100644 index 669eb702d8..0000000000 --- a/keyboards/idobao/id80/v1/ansi/keymaps/via/keymap.c +++ /dev/null @@ -1,51 +0,0 @@ -/* Copyright 2020 Sergey Vlasov <sigprof@gmail.com> - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ -#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, MO(1), KC_INS, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - [1] = LAYOUT( - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RGB_TOG, _______, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, NK_TOGG, _______, _______, _______, _______, _______, BL_INC, - _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DEC, BL_STEP - ), - [2] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - [3] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), -}; diff --git a/keyboards/idobao/id80/v1/ansi/readme.md b/keyboards/idobao/id80/v1/ansi/readme.md deleted file mode 100644 index 1bfae43735..0000000000 --- a/keyboards/idobao/id80/v1/ansi/readme.md +++ /dev/null @@ -1 +0,0 @@ -# The ANSI variant of the id80 diff --git a/keyboards/idobao/id80/v1/iso/config.h b/keyboards/idobao/id80/v1/iso/config.h deleted file mode 100644 index cd9c497442..0000000000 --- a/keyboards/idobao/id80/v1/iso/config.h +++ /dev/null @@ -1,27 +0,0 @@ -/* -Copyright 2020 Sergey Vlasov <sigprof@gmail.com> - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -#pragma once - -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6964 /* "id" */ -#define PRODUCT_ID 0x0081 -#define DEVICE_VER 0x0001 -#define MANUFACTURER IDOBAO -#define PRODUCT ID80 ISO diff --git a/keyboards/idobao/id80/v1/iso/keymaps/default/readme.md b/keyboards/idobao/id80/v1/iso/keymaps/default/readme.md deleted file mode 100644 index 8ae9f656cd..0000000000 --- a/keyboards/idobao/id80/v1/iso/keymaps/default/readme.md +++ /dev/null @@ -1 +0,0 @@ -# The default keymap for id80 diff --git a/keyboards/idobao/id80/v1/iso/readme.md b/keyboards/idobao/id80/v1/iso/readme.md deleted file mode 100644 index 3e0d8ce231..0000000000 --- a/keyboards/idobao/id80/v1/iso/readme.md +++ /dev/null @@ -1 +0,0 @@ -# The ISO variant of the id80 diff --git a/keyboards/idobao/id80/v1/readme.md b/keyboards/idobao/id80/v1/readme.md index 8a26378b3b..c9c446e1b7 100644 --- a/keyboards/idobao/id80/v1/readme.md +++ b/keyboards/idobao/id80/v1/readme.md @@ -1,27 +1,27 @@ # IDOBAO ID80 -![ID80](https://ae01.alicdn.com/kf/H0f617c6129c24cfaa26a8c9e8e54851aj.jpg) +![ID80](https://i.imgur.com/977ENjph.png) A 75% hotswap keyboard from IDOBAO. -## ANSI support: - * Keyboard Maintainer: [Sergey Vlasov](https://github.com/sigprof) * Hardware Supported: IDOBAO ID80 -* Hardware Availability: [AliExpress](https://www.aliexpress.com/item/4000590804514.html), [Drop](https://drop.com/buy/idobao-id80-75-hot-swappable-mechanical-keyboard-kit?mode=guest_open) +* Hardware Availability: [Drop](https://drop.com/buy/idobao-id80-75-hot-swappable-mechanical-keyboard-kit?mode=guest_open) + +--- +> ⚠ **Please note:** The source folder for this keyboard has moved to `../v2`. +--- Make example for this keyboard (after setting up your build environment): - make idobao/id80/v1/ansi:default + make idobao/id80/v2:default BACKLIGHT_ENABLE=no -## ISO support: - -* Keyboard Maintainer: [Carsten Rose](https://github.com/cwr10010) -* Hardware Supported: IDOBAO ID80v2 -* Hardware Availability: [IDOBAO](https://www.idobao.net/products/idobao-id80v2-75-hot-swappable-mechanical-keyboard-kit) +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). -Make example for this keyboard (after setting up your build environment): +## Bootloader - make idobao/id80/v1/iso:default +Enter the bootloader in 3 ways: -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). +* **Bootmagic reset**: Hold down the Escape key and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/idobao/id80/v1/rules.mk b/keyboards/idobao/id80/v1/rules.mk index 0baebd07fc..20283f04be 100644 --- a/keyboards/idobao/id80/v1/rules.mk +++ b/keyboards/idobao/id80/v1/rules.mk @@ -1,24 +1,2 @@ # Defalt to the ansi version -DEFAULT_FOLDER = idobao/id80/v1/ansi - -# 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 = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - -# partially generated by KBFirmware JSON to QMK Parser -# https://noroadsleft.github.io/kbf_qmk_converter/ +DEFAULT_FOLDER = idobao/id80/v2/ansi diff --git a/keyboards/idobao/id80/v2/ansi/info.json b/keyboards/idobao/id80/v2/ansi/info.json new file mode 100644 index 0000000000..e44e5f8b00 --- /dev/null +++ b/keyboards/idobao/id80/v2/ansi/info.json @@ -0,0 +1,6 @@ +{ + "keyboard_name": "ID80 ANSI", + "usb": { + "pid": "0x0080", + } +} diff --git a/keyboards/idobao/id80/v1/ansi/keymaps/default/keymap.c b/keyboards/idobao/id80/v2/ansi/keymaps/default/keymap.c index ac2fb15b83..b09718dda0 100644 --- a/keyboards/idobao/id80/v1/ansi/keymaps/default/keymap.c +++ b/keyboards/idobao/id80/v2/ansi/keymaps/default/keymap.c @@ -16,7 +16,7 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [0] = LAYOUT_ansi( KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MO(1), KC_INS, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, @@ -24,8 +24,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT( - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, + [1] = LAYOUT_ansi( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/idobao/id80/v1/ansi/keymaps/msf/config.h b/keyboards/idobao/id80/v2/ansi/keymaps/msf/config.h index 4f3cc95f30..4f3cc95f30 100644 --- a/keyboards/idobao/id80/v1/ansi/keymaps/msf/config.h +++ b/keyboards/idobao/id80/v2/ansi/keymaps/msf/config.h diff --git a/keyboards/idobao/id80/v1/ansi/keymaps/msf/keymap.c b/keyboards/idobao/id80/v2/ansi/keymaps/msf/keymap.c index 6bb91f0f19..bc31cfb0b8 100644 --- a/keyboards/idobao/id80/v1/ansi/keymaps/msf/keymap.c +++ b/keyboards/idobao/id80/v2/ansi/keymaps/msf/keymap.c @@ -16,7 +16,7 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [0] = LAYOUT_ansi( KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_VOLD, KC_VOLU, KC_F8, KC_F9, KC_F10, KC_PSTE, KC_PSCR, KC_DEL, MO(1), KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END, @@ -24,15 +24,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, KC_RSFT, KC_UP, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT( - RESET, KC_CALC, _______, _______, _______, KC_MUTE, KC_F6, KC_F7, KC_MPLY, KC_MSTP, KC_BRID, KC_BRIU, KC_F11, KC_F12, _______, + [1] = LAYOUT_ansi( + QK_BOOT, KC_CALC, _______, _______, _______, KC_MUTE, KC_F6, KC_F7, KC_MPLY, KC_MSTP, KC_BRID, KC_BRIU, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, _______, RGB_TOG, _______, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, NK_TOGG, _______, _______, _______, _______, _______, BL_INC, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DEC, BL_STEP ), - [2] = LAYOUT( + [2] = LAYOUT_ansi( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/idobao/id80/v1/ansi/keymaps/msf/readme.md b/keyboards/idobao/id80/v2/ansi/keymaps/msf/readme.md index 7ab300f672..7ab300f672 100644 --- a/keyboards/idobao/id80/v1/ansi/keymaps/msf/readme.md +++ b/keyboards/idobao/id80/v2/ansi/keymaps/msf/readme.md diff --git a/keyboards/idobao/id80/v1/ansi/keymaps/msf/rules.mk b/keyboards/idobao/id80/v2/ansi/keymaps/msf/rules.mk index ab1e438182..ab1e438182 100644 --- a/keyboards/idobao/id80/v1/ansi/keymaps/msf/rules.mk +++ b/keyboards/idobao/id80/v2/ansi/keymaps/msf/rules.mk diff --git a/keyboards/idobao/id80/v1/ansi/keymaps/rverst/keymap.c b/keyboards/idobao/id80/v2/ansi/keymaps/rverst/keymap.c index 3656f48dfe..1e751e751d 100644 --- a/keyboards/idobao/id80/v1/ansi/keymaps/rverst/keymap.c +++ b/keyboards/idobao/id80/v2/ansi/keymaps/rverst/keymap.c @@ -20,7 +20,7 @@ // clang-format off const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [0] = LAYOUT_ansi( KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , MO(4) , KC_DEL , KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_PGUP, KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, @@ -28,7 +28,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC , OSL(1) , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT( + [1] = LAYOUT_ansi( RV_SNAP, KC_F13 , KC_F14 , KC_F15 , KC_F16 , KC_F17 , KC_F18 , KC_F19 , KC_F20 , KC_F21 , KC_F22 , KC_F23 , KC_F24 , KC_TRNS, KC_MUTE, RV_DEG , RV_SUP1, RV_SUP2, RV_SUP3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RV_UNEQ, RV_PM , KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, RV_EUR , RV_RT , RV_TM , KC_TRNS, RV_UUML, KC_TRNS, RV_OUML, KC_TRNS, RV_VDEC, RV_VINC, RV_SEQU, KC_VOLD, @@ -36,7 +36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, RV_CC , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RV_SDEC, KC_TRNS, KC_MSTP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RGUI, KC_MPRV, KC_MPLY, KC_MNXT ), - [2] = LAYOUT( + [2] = LAYOUT_ansi( KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_TRNS, MO(4) , KC_MUTE, KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_VOLU, KC_TAB , KC_Q , KC_W , KC_F , KC_P , KC_G , KC_J , KC_L , KC_U , KC_Y , KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_VOLD, @@ -44,7 +44,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_K , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC , OSL(3) , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [3] = LAYOUT( + [3] = LAYOUT_ansi( RV_SNAP, KC_F13 , KC_F14 , KC_F15 , KC_F16 , KC_F17 , KC_F18 , KC_F19 , KC_F20 , KC_F21 , KC_F22 , KC_F23 , KC_F24 , KC_TRNS, KC_MUTE, RV_DEG , RV_SUP1, RV_SUP2, RV_SUP3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RV_UNEQ, RV_PM , KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RV_LOCK, RV_UUML, KC_TRNS, KC_TRNS, RV_VDEC, RV_VINC, RV_SEQU, KC_VOLD, @@ -52,7 +52,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, RV_CC , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RV_SDEC, KC_TRNS, KC_MSTP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RGUI, KC_MPRV, KC_MPLY, KC_MNXT ), - [4] = LAYOUT( + [4] = LAYOUT_ansi( DEBUG , RV_SM0 , RV_SM1 , RV_SM2 , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , DF(0) , DF(2) , KC_TRNS, MO(5) , RV_SAYM, RV_SM3 , RV_SM4 , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , @@ -60,8 +60,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , RGB_TOG, KC_NO , KC_NO , GUI_ON , KC_NO , KC_NO , RCG_SWP, RGB_RMOD,RGB_M_P, RGB_MOD ), - [5] = LAYOUT( - RESET , RV_SM0S, RV_SM1S, RV_SM2S, KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_TRNS, + [5] = LAYOUT_ansi( + QK_BOOT, RV_SM0S, RV_SM1S, RV_SM2S, KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_TRNS, KC_NO , RV_SM3S, RV_SM4S, KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , diff --git a/keyboards/idobao/id80/v1/ansi/keymaps/rverst/readme.md b/keyboards/idobao/id80/v2/ansi/keymaps/rverst/readme.md index ba33980edb..66dd2b5287 100644 --- a/keyboards/idobao/id80/v1/ansi/keymaps/rverst/readme.md +++ b/keyboards/idobao/id80/v2/ansi/keymaps/rverst/readme.md @@ -1,6 +1,6 @@ -# idobao id80 +# IDOBAO ID80 -This is my layout for the idobao id80. It depends of my [user files](../../../../users/rverst) +This is my layout for the IDOBAO ID80. It depends of my [user files](../../../../users/rverst) and the main goal is to give an convenient and unified access to some special keys (umlauts, Γ, β¬) for different operating systems (Mac, Windows and Linux). diff --git a/keyboards/idobao/id80/v1/ansi/keymaps/rverst/rverst.json b/keyboards/idobao/id80/v2/ansi/keymaps/rverst/rverst.json index 50235498fe..07a7b16229 100644 --- a/keyboards/idobao/id80/v1/ansi/keymaps/rverst/rverst.json +++ b/keyboards/idobao/id80/v2/ansi/keymaps/rverst/rverst.json @@ -1,7 +1,7 @@ { - "keyboard": "id80", + "keyboard": "ID80", "keymap": "rverst", - "layout": "LAYOUT", + "layout": "LAYOUT_ansi", "layers": [ [ "KC_ESC", @@ -414,7 +414,7 @@ "RGB_MOD" ], [ - "RESET", + "QK_BOOT", "RV_SM0S", "RV_SM1S", "RV_SM2S", diff --git a/keyboards/idobao/id80/v3/keymaps/via/keymap.c b/keyboards/idobao/id80/v2/ansi/keymaps/via/keymap.c index 19787b6b89..4fc88dc592 100644 --- a/keyboards/idobao/id80/v3/keymaps/via/keymap.c +++ b/keyboards/idobao/id80/v2/ansi/keymaps/via/keymap.c @@ -16,7 +16,7 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [0] = LAYOUT_ansi( KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MO(1), KC_INS, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, @@ -24,15 +24,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, KC_RSFT, KC_UP, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT( - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, + [1] = LAYOUT_ansi( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, NK_TOGG, _______, _______, _______, _______, _______, BL_INC, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DEC, BL_STEP ), - [2] = LAYOUT( + [2] = LAYOUT_ansi( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -40,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [3] = LAYOUT( + [3] = LAYOUT_ansi( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -49,4 +49,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______ ), }; - diff --git a/keyboards/idobao/id80/v1/iso/keymaps/via/rules.mk b/keyboards/idobao/id80/v2/ansi/keymaps/via/rules.mk index ca9fed0e6b..ca9fed0e6b 100644 --- a/keyboards/idobao/id80/v1/iso/keymaps/via/rules.mk +++ b/keyboards/idobao/id80/v2/ansi/keymaps/via/rules.mk diff --git a/keyboards/idobao/id80/v1/ansi/rules.mk b/keyboards/idobao/id80/v2/ansi/rules.mk index 323c12fc6e..323c12fc6e 100644 --- a/keyboards/idobao/id80/v1/ansi/rules.mk +++ b/keyboards/idobao/id80/v2/ansi/rules.mk diff --git a/keyboards/idobao/id80/v1/config.h b/keyboards/idobao/id80/v2/config.h index c6cf667382..a007cff40c 100644 --- a/keyboards/idobao/id80/v1/config.h +++ b/keyboards/idobao/id80/v2/config.h @@ -53,9 +53,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #define DIODE_DIRECTION COL2ROW -#define BACKLIGHT_PIN B6 -#define BACKLIGHT_BREATHING -#define BACKLIGHT_LEVELS 3 +#ifdef BACKLIGHT_ENABLE + #define BACKLIGHT_PIN B6 + #define BACKLIGHT_BREATHING + #define BACKLIGHT_LEVELS 3 +#endif #define LED_CAPS_LOCK_PIN C7 #define LED_PIN_ON_STATE 0 @@ -66,20 +68,20 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ + #define RGBLIGHT_LIMIT_VAL 180 /* The maximum brightness level */ #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -/*== all animations enable ==*/ - #define RGBLIGHT_ANIMATIONS -/*== or choose animations ==*/ -// #define RGBLIGHT_EFFECT_BREATHING -// #define RGBLIGHT_EFFECT_RAINBOW_MOOD -// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL -// #define RGBLIGHT_EFFECT_SNAKE -// #define RGBLIGHT_EFFECT_KNIGHT -// #define RGBLIGHT_EFFECT_CHRISTMAS -// #define RGBLIGHT_EFFECT_STATIC_GRADIENT -// #define RGBLIGHT_EFFECT_RGB_TEST -// #define RGBLIGHT_EFFECT_ALTERNATING + + // RGBLIGHT_ANIMATIONS + #define RGBLIGHT_EFFECT_ALTERNATING + #define RGBLIGHT_EFFECT_BREATHING + #define RGBLIGHT_EFFECT_CHRISTMAS + #define RGBLIGHT_EFFECT_KNIGHT + #define RGBLIGHT_EFFECT_RAINBOW_MOOD + #define RGBLIGHT_EFFECT_RAINBOW_SWIRL + #define RGBLIGHT_EFFECT_RGB_TEST + #define RGBLIGHT_EFFECT_SNAKE + #define RGBLIGHT_EFFECT_STATIC_GRADIENT + #define RGBLIGHT_EFFECT_TWINKLE #endif /* Bootmagic Lite key configuration: use the Esc key */ diff --git a/keyboards/idobao/id80/v1/info.json b/keyboards/idobao/id80/v2/info.json index 072b4ca4db..391460b3b2 100644 --- a/keyboards/idobao/id80/v1/info.json +++ b/keyboards/idobao/id80/v2/info.json @@ -1,9 +1,13 @@ { - "keyboard_name": "ID80", + "manufacturer": "IDOBAO", "url": "", - "maintainer": "qmk", + "maintainer": "IDOBAOKB", + "usb": { + "vid": "0x6964", + "device_version": "0.0.1" + }, "layouts": { - "LAYOUT": { + "LAYOUT_ansi": { "layout": [ {"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, diff --git a/keyboards/idobao/id80/v2/iso/info.json b/keyboards/idobao/id80/v2/iso/info.json new file mode 100644 index 0000000000..7512d696e2 --- /dev/null +++ b/keyboards/idobao/id80/v2/iso/info.json @@ -0,0 +1,6 @@ +{ + "keyboard_name": "ID80 ISO", + "usb": { + "pid": "0x0081", + } +} diff --git a/keyboards/idobao/id80/v1/iso/keymaps/default/keymap.c b/keyboards/idobao/id80/v2/iso/keymaps/default/keymap.c index 9784ce8253..01eaa2a44f 100644 --- a/keyboards/idobao/id80/v1/iso/keymaps/default/keymap.c +++ b/keyboards/idobao/id80/v2/iso/keymaps/default/keymap.c @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT_iso( - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/idobao/id80/v1/iso/keymaps/via/keymap.c b/keyboards/idobao/id80/v2/iso/keymaps/via/keymap.c index 808c4d3c89..25ff6b084d 100644 --- a/keyboards/idobao/id80/v1/iso/keymaps/via/keymap.c +++ b/keyboards/idobao/id80/v2/iso/keymaps/via/keymap.c @@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT_iso( - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/idobao/id80/v3/keymaps/via/rules.mk b/keyboards/idobao/id80/v2/iso/keymaps/via/rules.mk index ca9fed0e6b..ca9fed0e6b 100644 --- a/keyboards/idobao/id80/v3/keymaps/via/rules.mk +++ b/keyboards/idobao/id80/v2/iso/keymaps/via/rules.mk diff --git a/keyboards/idobao/id80/v1/iso/rules.mk b/keyboards/idobao/id80/v2/iso/rules.mk index 323c12fc6e..323c12fc6e 100644 --- a/keyboards/idobao/id80/v1/iso/rules.mk +++ b/keyboards/idobao/id80/v2/iso/rules.mk diff --git a/keyboards/idobao/id80/v2/readme.md b/keyboards/idobao/id80/v2/readme.md new file mode 100644 index 0000000000..333de28523 --- /dev/null +++ b/keyboards/idobao/id80/v2/readme.md @@ -0,0 +1,41 @@ +# IDOBAO ID80 + +![ID80](https://i.imgur.com/977ENjph.png) + +A 75% hotswap keyboard from IDOBAO. + +## ANSI support *(v1 & v2)*: + +* Keyboard Maintainer: [Sergey Vlasov](https://github.com/sigprof) +* Hardware Supported: + * IDOBAO ID80v1 + * IDOBAO ID80v2 +* Hardware Availability: [IDOBAO.net](https://idobao.net/search?type=product&q=ID80*), [AliExpress](https://www.aliexpress.com/store/5072109/search?origin=y&SearchText=ID80) + +Make example for this keyboard (after setting up your build environment): + + make idobao/id80/v2/ansi:default + +To compile for the **v1** please use: + + make idobao/id80/v2:default BACKLIGHT_ENABLE=no + +## ISO support *(v2-iso)*: + +* Keyboard Maintainer: [Carsten Rose](https://github.com/cwr10010) +* Hardware Supported: IDOBAO ID80v2 +* Hardware Availability: [IDOBAO](https://www.idobao.net/products/idobao-id80v2-75-hot-swappable-mechanical-keyboard-kit) + +Make example for this keyboard (after setting up your build environment): + + make idobao/id80/v2/iso:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the Escape key and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available *(default is [Fn]+[Esc])* diff --git a/keyboards/idobao/id80/v2/rules.mk b/keyboards/idobao/id80/v2/rules.mk new file mode 100644 index 0000000000..3966212230 --- /dev/null +++ b/keyboards/idobao/id80/v2/rules.mk @@ -0,0 +1,19 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = 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 +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BACKLIGHT_ENABLE = yes # Enable underkey LED backlight + +DEFAULT_FOLDER = idobao/id80/v2/ansi diff --git a/keyboards/idobao/id80/v1/v1.c b/keyboards/idobao/id80/v2/v2.c index 7147b6163e..f92f5e0629 100644 --- a/keyboards/idobao/id80/v1/v1.c +++ b/keyboards/idobao/id80/v2/v2.c @@ -13,4 +13,5 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "v1.h" + +#include "v2.h" diff --git a/keyboards/idobao/id80/v1/v1.h b/keyboards/idobao/id80/v2/v2.h index a016e39083..d45b75853b 100644 --- a/keyboards/idobao/id80/v1/v1.h +++ b/keyboards/idobao/id80/v2/v2.h @@ -13,11 +13,12 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ + #pragma once #include "quantum.h" -#define LAYOUT( \ +#define LAYOUT_ansi( \ K50, K51, K52, K53, K54, K55, K56, K57, K58, KA7, KA5, KA4, KA3, KA6, KA2, \ K40, K41, K42, K43, K44, K45, K46, K47, K48, K98, K97, K95, K94, K96, K92, \ K30, K31, K32, K33, K34, K35, K36, K37, K38, K88, K87, K85, K84, K83, K82, \ diff --git a/keyboards/idobao/id80/v3/ansi/ansi.c b/keyboards/idobao/id80/v3/ansi/ansi.c new file mode 100644 index 0000000000..2b298924cf --- /dev/null +++ b/keyboards/idobao/id80/v3/ansi/ansi.c @@ -0,0 +1,76 @@ +// Copyright 2022 Vino Rodrigues (@vinorodrigues) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "ansi.h" + +#define __ NO_LED + +#ifdef RGB_MATRIX_ENABLE + +/* Per-key LED's + * ββββββββββ¬ββββ¬ββββ¬βββββββββ¬ββββ¬ββββ¬βββββββββ¬ββββ¬ββββ¬ββββββββββββββ + * β79 ββ78 β77 β76 β75 ββ74 β73 β72 β71 ββ70 β69 β68 β67 ββ66 ββ65 β + * βββββΌβ΄βββ¬β΄βββ¬β΄βββ¬β΄βββ¬β΄β΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄β΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β΄ββββ€βββββ€ + * β64 β63 β62 β61 β60 β59 β58 β57 β56 β55 β54 β53 β52 β 51 ββ50 β + * βββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββββββ€βββββ€ + * β 49 β48 β47 β46 β45 β44 β43 β42 β41 β40 β39 β38 β37 β 36 ββ35 β + * βββββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄ββββββ€βββββ + * β 34 β33 β32 β31 β30 β29 β28 β27 β26 β25 β24 β23 β 22 β + * ββββββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄βββββ¬ββββ + * β 21 β20 β19 β18 β17 β16 β15 β14 β13 β12 β11 β 10 ββββββ + * ββββββ¬ββββ΄β¬βββ΄ββ¬ββ΄ββββ΄ββββ΄ββββ΄ββββ΄ββββ΄βββ¬β΄ββββ΄β¬βββ΄βββ¬βββββ 9 β + * β 8 β 7 β 6 β 5 β 4 β 3 ββββββΌββββΌββββ + * ββββββ΄βββββ΄βββββ΄βββββββββββββββββββββββββ΄ββββββ΄βββββββ 2 β 1 β 0 β + * βββββ΄ββββ΄ββββ + * Underglow (as seen from top) + * ββββββ¬βββββ¬βββββ¬βββββ¬βββββ¬βββββ + * β 80 β 81 β 82 β 83 β 84 β 85 β + * ββββββΌβββββ΄βββββ΄βββββ΄βββββΌβββββ€ + * β 93 β β 86 β + * ββββββΌβββββ¬βββββ¬βββββ¬βββββΌβββββ€ + * β 92 β 91 β 90 β 89 β 88 β 87 β + * ββββββ΄βββββ΄βββββ΄βββββ΄βββββ΄βββββ + */ + +led_config_t g_led_config = { { + // Key Matrix to LED Index + /* Generated with: https://xelus.netlify.app/guides/KLE_to_RGB_parser */ + { 8, 21, 34, 49, 64, 79, __, __, __, __, __ }, + { 7, __, 33, 48, 63, 78, __, __, __, __, __ }, + { 6, 20, 32, 47, 62, 77, __, __, 35, 50, 65 }, + { 0, 19, 31, 46, 61, 76, 9, __, 36, __, 67 }, + { 1, 18, 30, 45, 60, 75, 10, 22, 37, 52, 68 }, + { 2, 17, 29, 44, 59, 74, 11, 23, 38, 53, 69 }, + { 5, 16, 28, 43, 58, 73, __, __, __, 51, 66 }, + { 3, 15, 27, 42, 57, 72, 12, 24, 39, 54, 70 }, + { 4, 14, 26, 41, 56, 71, 13, 25, 40, 55, __ }, +}, { + /* NB: Reversed order */ + // per-key + {224,64 }, {209,64 }, {195,64 }, {173,61 }, {151,61 }, { 94,61 }, { 39,61 }, { 20,61 }, { 2,61 }, + {209,52 }, {185,49 }, {165,49 }, {151,49 }, {136,49 }, {121,49 }, {106,49 }, { 92,49 }, { 77,49 }, { 62,49 }, { 48,49 }, { 33,49 }, { 9,49 }, + {196,38 }, {173,38 }, {158,38 }, {143,38 }, {129,38 }, {114,38 }, { 99,38 }, { 84,38 }, { 70,38 }, { 55,38 }, { 40,38 }, { 26,38 }, { 6,38 }, + {224,26 }, {202,26 }, {184,26 }, {169,26 }, {154,26 }, {140,26 }, {125,26 }, {110,26 }, { 95,26 }, { 81,26 }, { 66,26 }, { 51,26 }, { 37,26 }, { 22,26 }, { 4,26 }, + {224,15 }, {198,15 }, {176,15 }, {162,15 }, {147,15 }, {132,15 }, {118,15 }, {103,15 }, { 88,15 }, { 73,15 }, { 59,15 }, { 44,15 }, { 29,15 }, { 15,15 }, { 0,15 }, + {224,0 }, {206,0 }, {187,0 }, {173,0 }, {158,0 }, {143,0 }, {125,0 }, {110,0 }, { 95,0 }, { 81,0 }, { 62,0 }, { 48,0 }, { 33,0 }, { 18,0 }, { 0,0 }, + // underglow + { 0,0 }, { 45,0 }, { 90,0 }, {134,0 }, {179,0 }, {224,0 }, + {224,32 }, + {224,64 }, {179,64 }, {134,64 }, { 90,64 }, { 45,64 }, { 0,64 }, + { 0,32 } +}, { + /* NB: Reversed order */ + 4, 4, 4, 4, 4, 1, 4, 4, 4, + 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, + 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, + 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, + 4, 4, 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, 4, 4, 4, + // + 2, 2, 2, 2, 2, 2, + 2, + 2, 2, 2, 2, 2, 2, + 2 +} }; + +#endif diff --git a/keyboards/idobao/id80/v3/ansi/ansi.h b/keyboards/idobao/id80/v3/ansi/ansi.h new file mode 100644 index 0000000000..d9bef6d021 --- /dev/null +++ b/keyboards/idobao/id80/v3/ansi/ansi.h @@ -0,0 +1,6 @@ +// Copyright 2022 Vino Rodrigues (@vinorodrigues) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "quantum.h" diff --git a/keyboards/idobao/id80/v3/ansi/config.h b/keyboards/idobao/id80/v3/ansi/config.h new file mode 100644 index 0000000000..1b99fd7908 --- /dev/null +++ b/keyboards/idobao/id80/v3/ansi/config.h @@ -0,0 +1,97 @@ +// Copyright 2022 Vino Rodrigues (@vinorodrigues) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "config_common.h" + +/* -------------------------------- + * Bootmagic Lite key configuration + * use the Esc key + * -------------------------------- */ + +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 5 + +/* ---------------- + * RGB Matrix stuff + * ---------------- */ + +#define RGB_DI_PIN E2 + +// RGB Matrix config +#if defined(RGB_DI_PIN) && defined(RGB_MATRIX_ENABLE) + + #define DRIVER_LED_TOTAL 94 + + #define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended + #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // limits maximum brightness of LEDs to x out of 255. If not defined maximum brightness is set to 255 + + #define RGB_MATRIX_KEYPRESSES + + #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 + + /* don't need `#if`, animation modes themselves check defines + * #if defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS) */ + // #define ENABLE_RGB_MATRIX_TYPING_HEATMAP + // #define ENABLE_RGB_MATRIX_DIGITAL_RAIN + /* #endif // RGB_MATRIX_FRAMEBUFFER_EFFECTS */ + + /* don't need `#if`, animation modes themselves check defines + * #if defined(RGB_MATRIX_KEYPRESSES) || defined(RGB_MATRIX_KEYRELEASES) */ + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE // Pulses keys hit to hue & value then fades value out + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE // Static single hue, pulses keys hit to shifted hue then fades to current hue + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE // Hue & value pulse near a single key hit then fades value out + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE // Hue & value pulse near multiple key hits then fades value out + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS // Hue & value pulse the same column and row of a single key hit then fades value out + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS // Hue & value pulse the same column and row of multiple key hits then fades value out + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS // Hue & value pulse away on the same column and row of a single key hit then fades value out + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS // Hue & value pulse away on the same column and row of multiple key hits then fades value out + #define ENABLE_RGB_MATRIX_SPLASH // Full gradient & value pulse away from a single key hit then fades value out + #define ENABLE_RGB_MATRIX_MULTISPLASH // Full gradient & value pulse away from multiple key hits then fades value out + #define ENABLE_RGB_MATRIX_SOLID_SPLASH // Hue & value pulse away from a single key hit then fades value out + #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH // Hue & value pulse away from multiple key hits then fades value out + /* #endif // RGB_MATRIX_KEYPRESSES | RGB_MATRIX_KEYRELEASES */ +#endif // RGB_MATRIX_ENABLE + +/* ----------------------- + * Feature disable options + * These options are also useful to firmware size reduction. + * ----------------------- */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT diff --git a/keyboards/idobao/id80/v3/ansi/info.json b/keyboards/idobao/id80/v3/ansi/info.json new file mode 100644 index 0000000000..fccff8efda --- /dev/null +++ b/keyboards/idobao/id80/v3/ansi/info.json @@ -0,0 +1,121 @@ +{ + "manufacturer": "IDOBAO", + "keyboard_name": "IDOBAO ID80v3", + "maintainer": "vinorodrigues", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": false, + "command": false, + "nkro": true, + "backlight": false, + "rgblight": false + }, + "matrix_pins": { + "cols": ["B7", "B3", "B2", "B1", "B0", "E6", "F1", "F4", "F5", "F6", "F7"], + "rows": ["D0", "D1", "D2", "D3", "D5", "D4", "D6", "D7", "B4"] + }, + "processor": "atmega32u4", + "url": "https://idobao.net/search?type=product&q=id80*", + "usb": { + "vid": "0x6964", + "pid": "0x0380", + "device_version": "3.0.0" + }, + "layouts": { + "LAYOUT_80_ansi": { + "layout": [ + { "matrix": [0, 5], "x": 0, "y": 0 }, + { "matrix": [1, 5], "x": 1.25, "y": 0 }, + { "matrix": [2, 5], "x": 2.25, "y": 0 }, + { "matrix": [3, 5], "x": 3.25, "y": 0 }, + { "matrix": [4, 5], "x": 4.25, "y": 0 }, + { "matrix": [5, 5], "x": 5.5, "y": 0 }, + { "matrix": [6, 5], "x": 6.5, "y": 0 }, + { "matrix": [7, 5], "x": 7.5, "y": 0 }, + { "matrix": [8, 5], "x": 8.5, "y": 0 }, + { "matrix": [7, 10], "x": 9.75, "y": 0 }, + { "matrix": [5, 10], "x": 10.75, "y": 0 }, + { "matrix": [4, 10], "x": 11.75, "y": 0 }, + { "matrix": [3, 10], "x": 12.75, "y": 0 }, + { "matrix": [6, 10], "x": 14, "y": 0 }, + { "matrix": [2, 10], "x": 15.25, "y": 0 }, + + { "matrix": [0, 4], "x": 0, "y": 1.25 }, + { "matrix": [1, 4], "x": 1, "y": 1.25 }, + { "matrix": [2, 4], "x": 2, "y": 1.25 }, + { "matrix": [3, 4], "x": 3, "y": 1.25 }, + { "matrix": [4, 4], "x": 4, "y": 1.25 }, + { "matrix": [5, 4], "x": 5, "y": 1.25 }, + { "matrix": [6, 4], "x": 6, "y": 1.25 }, + { "matrix": [7, 4], "x": 7, "y": 1.25 }, + { "matrix": [8, 4], "x": 8, "y": 1.25 }, + { "matrix": [8, 9], "x": 9, "y": 1.25 }, + { "matrix": [7, 9], "x": 10, "y": 1.25 }, + { "matrix": [5, 9], "x": 11, "y": 1.25 }, + { "matrix": [4, 9], "x": 12, "y": 1.25 }, + { "matrix": [6, 9], "x": 13, "y": 1.25, "w": 2 }, + { "matrix": [2, 9], "x": 15.25, "y": 1.25 }, + + { "matrix": [0, 3], "x":0, "y":2.25, "w":1.5}, + { "matrix": [1, 3], "x":1.5, "y":2.25}, + { "matrix": [2, 3], "x":2.5, "y":2.25}, + { "matrix": [3, 3], "x":3.5, "y":2.25}, + { "matrix": [4, 3], "x":4.5, "y":2.25}, + { "matrix": [5, 3], "x":5.5, "y":2.25}, + { "matrix": [6, 3], "x":6.5, "y":2.25}, + { "matrix": [7, 3], "x":7.5, "y":2.25}, + { "matrix": [8, 3], "x":8.5, "y":2.25}, + { "matrix": [8, 8], "x":9.5, "y":2.25}, + { "matrix": [7, 8], "x":10.5, "y":2.25}, + { "matrix": [5, 8], "x":11.5, "y":2.25}, + { "matrix": [4, 8], "x":12.5, "y":2.25}, + { "matrix": [3, 8], "x":13.5, "y":2.25, "w":1.5}, + { "matrix": [2, 8], "x":15.25, "y":2.25}, + + { "matrix": [0, 2], "x":0, "y":3.25, "w":1.75}, + { "matrix": [1, 2], "x":1.75, "y":3.25}, + { "matrix": [2, 2], "x":2.75, "y":3.25}, + { "matrix": [3, 2], "x":3.75, "y":3.25}, + { "matrix": [4, 2], "x":4.75, "y":3.25}, + { "matrix": [5, 2], "x":5.75, "y":3.25}, + { "matrix": [6, 2], "x":6.75, "y":3.25}, + { "matrix": [7, 2], "x":7.75, "y":3.25}, + { "matrix": [8, 2], "x":8.75, "y":3.25}, + { "matrix": [8, 7], "x":9.75, "y":3.25}, + { "matrix": [7, 7], "x":10.75, "y":3.25}, + { "matrix": [5, 7], "x":11.75, "y":3.25}, + { "matrix": [4, 7], "x":12.75, "y":3.25, "w":2.25}, + + { "matrix": [0, 1], "x":0, "y":4.25, "w":2.25}, + { "matrix": [2, 1], "x":2.25, "y":4.25}, + { "matrix": [3, 1], "x":3.25, "y":4.25}, + { "matrix": [4, 1], "x":4.25, "y":4.25}, + { "matrix": [5, 1], "x":5.25, "y":4.25}, + { "matrix": [6, 1], "x":6.25, "y":4.25}, + { "matrix": [7, 1], "x":7.25, "y":4.25}, + { "matrix": [8, 1], "x":8.25, "y":4.25}, + { "matrix": [8, 6], "x":9.25, "y":4.25}, + { "matrix": [7, 6], "x":10.25, "y":4.25}, + { "matrix": [5, 6], "x":11.25, "y":4.25}, + { "matrix": [4, 6], "x":12.25, "y":4.25, "w":1.75}, + + { "matrix": [3, 6], "x":14.25, "y":4.5}, + + { "matrix": [0, 0], "x":0, "y":5.25, "w":1.25}, + { "matrix": [1, 0], "x":1.25, "y":5.25, "w":1.25}, + { "matrix": [2, 0], "x":2.5, "y":5.25, "w":1.25}, + { "matrix": [6, 0], "x":3.75, "y":5.25, "w":6.25}, + { "matrix": [8, 0], "x":10, "y":5.25, "w":1.5}, + { "matrix": [7, 0], "x":11.5, "y":5.25, "w":1.5}, + + { "matrix": [5, 0], "x":13.25, "y":5.5}, + { "matrix": [4, 0], "x":14.25, "y":5.5}, + { "matrix": [3, 0], "x":15.25, "y":5.5} + ] + } + } +} diff --git a/keyboards/idobao/id80/v3/ansi/keymaps/default/keymap.c b/keyboards/idobao/id80/v3/ansi/keymaps/default/keymap.c new file mode 100644 index 0000000000..127647c664 --- /dev/null +++ b/keyboards/idobao/id80/v3/ansi/keymaps/default/keymap.c @@ -0,0 +1,56 @@ +// Copyright 2022 Vino Rodrigues (@vinorodrigues) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ββββββββββ¬ββββ¬ββββ¬βββββββββ¬ββββ¬ββββ¬βββββββββ¬ββββ¬ββββ¬ββββββββββββββ + * βEscββF1 βF2 βF3 βF4 ββF5 βF6 βF7 βF8 ββF9 βF10βF11βF12ββFn1ββInsβ + * βββββΌβ΄βββ¬β΄βββ¬β΄βββ¬β΄βββ¬β΄β΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄β΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β΄ββββ€βββββ€ + * β`~ β 1 β 2 β 3 β 4 β 5 β 6 β 7 β 8 β 9 β 0 β-_ β=+ βBackspcββHomβ + * βββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββββββ€βββββ€ + * β Tab β Q β W β E β R β T β Y β U β I β O β P β[{ β]} β \| ββDelβ + * βββββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄ββββββ€βββββ + * β Caps β A β S β D β F β G β H β J β K β L β;: β'" β Enter β + * ββββββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄βββββ¬ββββ + * β Shift β Z β X β C β V β B β N β M β,< β.> β/? βShift ββββββ + * ββββββ¬ββββ΄β¬βββ΄ββ¬ββ΄ββββ΄ββββ΄ββββ΄ββββ΄ββββ΄βββ¬β΄ββββ΄β¬βββ΄βββ¬βββββ β β + * βCtrlβWin βAlt β Space β Alt βCtrl ββββββΌββββΌββββ + * ββββββ΄βββββ΄βββββ΄βββββββββββββββββββββββββ΄ββββββ΄βββββββ β β β β β β + * βββββ΄ββββ΄ββββ + */ + [0] = LAYOUT_80_ansi( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MO(1), KC_INS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* + * ββββββββββ¬ββββ¬ββββ¬βββββββββ¬ββββ¬ββββ¬βββββββββ¬ββββ¬ββββ¬ββββββββββββββ + * βRstββ β β β ββ β β β ββ βPScβSLkβPauββ ββMutβ + * βββββΌβ΄βββ¬β΄βββ¬β΄βββ¬β΄βββ¬β΄β΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄β΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β΄ββββ€βββββ€ + * β β β β β β β β β β β β β β ββVl+β + * βββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββββββ€βββββ€ + * β βTogβ βModβHu+βHu-βSa+βSa-βBr+βBr-βSp+βSp-β β ββVl-β + * βββββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄ββββββ€βββββ + * β β β β β β β β β β β β β β + * ββββββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄βββββ¬ββββ + * β β β βmodβ β βNKRβ β β β β ββββββ + * ββββββ¬ββββ΄β¬βββ΄ββ¬ββ΄ββββ΄ββββ΄ββββ΄ββββ΄ββββ΄βββ¬β΄ββββ΄β¬βββ΄βββ¬βββββPUpβ + * β β β β β β ββββββΌββββΌββββ + * ββββββ΄βββββ΄βββββ΄βββββββββββββββββββββββββ΄ββββββ΄βββββββHomβPDnβEndβ + * βββββ΄ββββ΄ββββ + */ + [1] = LAYOUT_80_ansi( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, KC_MUTE, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, + _______, RGB_TOG, _______, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, _______, _______, KC_VOLD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, RGB_RMOD, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_PGUP, + _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END + ) +}; diff --git a/keyboards/idobao/id80/v3/ansi/keymaps/idobao/keymap.c b/keyboards/idobao/id80/v3/ansi/keymaps/idobao/keymap.c new file mode 100644 index 0000000000..e0d786e5e2 --- /dev/null +++ b/keyboards/idobao/id80/v3/ansi/keymaps/idobao/keymap.c @@ -0,0 +1,315 @@ +// Copyright 2022 Vino Rodrigues (@vinorodrigues) +// Copyright 2022 IDOBAO (@idobaokb) +// SPDX-License-Identifier: GPL-2.0-or-later + +/* ------------------------------------------------------------------ + * This is the IDOBAO factory default keymap ;) + * ------------------------------------------------------------------ */ + +#include QMK_KEYBOARD_H +#include "version.h" + +#ifdef RGB_MATRIX_ENABLE + +typedef union { + uint32_t raw; + struct { + bool rgb_disable_perkey:1; + bool rgb_disable_underglow:1; + }; +} user_config_t; + +#endif // RGB_MATRIX_ENABLE + +enum { + _BASE = 0, + _FN1, + _FN2, + _FN3 +}; + +enum { + KC_MCON = USER00, // macOS Open Mission Control + KC_LPAD, // macOS Open Launchpad + #ifdef RGB_MATRIX_ENABLE + RGB_TPK, // Toggle Per-Key + RGB_TUG, // Toggle Underglow + #endif // RGB_MATRIX_ENABLE + KB_VRSN = USER09 // debug, type version +}; + +#ifndef RGB_MATRIX_ENABLE + #define RGB_TPK _______ + #define RGB_TUG _______ +#endif // RGB_MATRIX_ENABLE + +enum macos_consumer_usages { + _AC_SHOW_ALL_WINDOWS = 0x29F, // mapped to KC_MCON + _AC_SHOW_ALL_APPS = 0x2A0 // mapped to KC_LPAD +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ββββββββββ¬ββββ¬ββββ¬βββββββββ¬ββββ¬ββββ¬βββββββββ¬ββββ¬ββββ¬ββββββββββββββ + * βEscββF1 βF2 βF3 βF4 ββF5 βF6 βF7 βF8 ββF9 βF10βF11βF12ββFn1ββInsβ + * βββββΌβ΄βββ¬β΄βββ¬β΄βββ¬β΄βββ¬β΄β΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄β΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β΄ββββ€βββββ€ + * β`~ β 1 β 2 β 3 β 4 β 5 β 6 β 7 β 8 β 9 β 0 β-_ β=+ βBackspcββHomβ + * βββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββββββ€βββββ€ + * β Tab β Q β W β E β R β T β Y β U β I β O β P β[{ β]} β \| ββDelβ + * βββββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄ββββββ€βββββ + * β Caps β A β S β D β F β G β H β J β K β L β;: β'" β Enter β + * ββββββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄βββββ¬ββββ + * β Shift β Z β X β C β V β B β N β M β,< β.> β/? βShift ββββββ + * ββββββ¬ββββ΄β¬βββ΄ββ¬ββ΄ββββ΄ββββ΄ββββ΄ββββ΄ββββ΄βββ¬β΄ββββ΄β¬βββ΄βββ¬βββββ β β + * βCtrlβWin βAlt β Space β Alt βCtrl ββββββΌββββΌββββ + * ββββββ΄βββββ΄βββββ΄βββββββββββββββββββββββββ΄ββββββ΄βββββββ β β β β β β + * βββββ΄ββββ΄ββββ + */ + [_BASE] = LAYOUT_80_ansi( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MO(_FN1), KC_INS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* + * ββββββββββ¬ββββ¬ββββ¬βββββββββ¬ββββ¬ββββ¬βββββββββ¬ββββ¬ββββ¬ββββββββββββββ + * βRstββ β β β ββ β β β ββ βPScβSLkβPauββ ββMutβ + * βββββΌβ΄βββ¬β΄βββ¬β΄βββ¬β΄βββ¬β΄β΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄β΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β΄ββββ€βββββ€ + * β β β β β β β β β β β β β β ββVl+β + * βββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββββββ€βββββ€ + * β βTogβ βModβHu+βHu-βSa+βSa-βBr+βBr-βSp+βSp-β β ββVl-β + * βββββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄ββββββ€βββββ + * β β β β β β β β β β β β β β + * ββββββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄βββββ¬ββββ + * β β β βmodβVerβ βNKRβ β β β β ββββββ + * ββββββ¬ββββ΄β¬βββ΄ββ¬ββ΄ββββ΄ββββ΄ββββ΄ββββ΄ββββ΄βββ¬β΄ββββ΄β¬βββ΄βββ¬βββββPUpβ + * β β β β β β ββββββΌββββΌββββ + * ββββββ΄βββββ΄βββββ΄βββββββββββββββββββββββββ΄ββββββ΄βββββββHomβPDnβEndβ + * βββββ΄ββββ΄ββββ + */ + [_FN1] = LAYOUT_80_ansi( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, KC_MUTE, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, + _______, RGB_TOG, _______, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, _______, _______, KC_VOLD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, RGB_RMOD, KB_VRSN, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_PGUP, + _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END + ), + + /* + * ββββββββββ¬ββββ¬ββββ¬βββββββββ¬ββββ¬ββββ¬βββββββββ¬ββββ¬ββββ¬ββββββββββββββ + * β ββ β β β ββ β β β ββ β β β ββ ββ β + * βββββΌβ΄βββ¬β΄βββ¬β΄βββ¬β΄βββ¬β΄β΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄β΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β΄ββββ€βββββ€ + * β β β β β β β β β β β β β β ββ β + * βββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββββββ€βββββ€ + * β β β β β β β β β β β β β β ββ β + * βββββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄ββββββ€βββββ + * β β β β β β β β β β β β β β + * ββββββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄βββββ¬ββββ + * β β β β β β β β β β β β ββββββ + * ββββββ¬ββββ΄β¬βββ΄ββ¬ββ΄ββββ΄ββββ΄ββββ΄ββββ΄ββββ΄βββ¬β΄ββββ΄β¬βββ΄βββ¬βββββ β + * β β β β β β ββββββΌββββΌββββ + * ββββββ΄βββββ΄βββββ΄βββββββββββββββββββββββββ΄ββββββ΄βββββββ β β β + * βββββ΄ββββ΄ββββ + */ + [_FN2] = LAYOUT_80_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [_FN3] = LAYOUT_80_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; + +#ifdef RGB_MATRIX_ENABLE + +/* + * RGB Stuff + */ + +#define ID80_CAPS_LOCK_KEY_INDEX 34 // position of Caps Lock key + +#define ID80_CAPS_LOCK_MAX_BRIGHTNESS 0xFF +#ifdef RGB_MATRIX_MAXIMUM_BRIGHTNESS + #undef ID80_CAPS_LOCK_MAX_BRIGHTNESS + #define ID80_CAPS_LOCK_MAX_BRIGHTNESS RGB_MATRIX_MAXIMUM_BRIGHTNESS +#endif + +#define ID80_CAPS_LOCK_VAL_STEP 8 +#ifdef RGB_MATRIX_VAL_STEP + #undef ID80_CAPS_LOCK_VAL_STEP + #define ID80_CAPS_LOCK_VAL_STEP RGB_MATRIX_VAL_STEP +#endif + +user_config_t user_config; + +void id80_update_rgb_mode(void) { + uint8_t flags = LED_FLAG_ALL; + + if (user_config.rgb_disable_perkey && user_config.rgb_disable_underglow) { + flags = 0; // All OFF Condition + } else { + if (user_config.rgb_disable_perkey) { + flags = LED_FLAG_UNDERGLOW | 0xF0; + } + if (user_config.rgb_disable_underglow) { + flags = LED_FLAG_MODIFIER | LED_FLAG_KEYLIGHT | LED_FLAG_INDICATOR | 0xF0; + } + } + + if (flags == 0) { + rgb_matrix_set_flags(0); + rgb_matrix_set_color_all(HSV_OFF); + } else { + rgb_matrix_set_flags(flags); + rgb_matrix_enable_noeeprom(); + } + + eeconfig_update_kb(user_config.raw); // write back to EEPROM +} + +void id80_get_rgb_mode(void) { + user_config.raw = eeconfig_read_kb(); // read config from EEPROM + id80_update_rgb_mode(); +} + +void keyboard_post_init_user(void) { + id80_get_rgb_mode(); +} + +void eeconfig_init_user(void) { + // EEPROM is getting reset! + user_config.raw = 0; + id80_update_rgb_mode(); +} + +void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { + // Caps Lock key stuff + + if (host_keyboard_led_state().caps_lock) { + uint8_t v = rgb_matrix_get_val(); + if (v < ID80_CAPS_LOCK_VAL_STEP) { + v = ID80_CAPS_LOCK_VAL_STEP; + } else if (v < (ID80_CAPS_LOCK_MAX_BRIGHTNESS - ID80_CAPS_LOCK_VAL_STEP)) { + if (!user_config.rgb_disable_perkey) { + v += ID80_CAPS_LOCK_VAL_STEP; // inc. by one more step than current brightness + } // else leave as current brightness + } else { + v = ID80_CAPS_LOCK_MAX_BRIGHTNESS; + } + rgb_matrix_set_color(ID80_CAPS_LOCK_KEY_INDEX, v, v, v); // white, brightness adjusted + } else if (user_config.rgb_disable_perkey) { + rgb_matrix_set_color(ID80_CAPS_LOCK_KEY_INDEX, HSV_OFF); // off + } +} + +#endif // RGB_MATRIX_ENABLE + +/* + * Extra keys and RGB Toggle handler + */ + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + + switch (keycode) { + + // handle RGB toggle key - this ensures caps lock always works + #ifdef RGB_MATRIX_ENABLE + + case QK_BOOT: + if (record->event.pressed) { + rgb_matrix_set_color_all(RGB_MATRIX_MAXIMUM_BRIGHTNESS, 0, 0); // All red + rgb_matrix_driver.flush(); + } + return true; + + case RGB_TOG: + /* roll through the LED modes + * | Level | Per-key | Underglow | + * |------------|---------|-----------| + * | 0 (defalt) | on | on | + * | 1 | OFF | on | + * | 2 | on | OFF | + * | 3 | OFF | OFF | + */ + if (record->event.pressed) { + if ( (!user_config.rgb_disable_perkey) && (!user_config.rgb_disable_underglow) ) { + user_config.rgb_disable_perkey = 1; + } else if ( user_config.rgb_disable_perkey && (!user_config.rgb_disable_underglow) ) { + user_config.rgb_disable_perkey = 0; + user_config.rgb_disable_underglow = 1; + } else if ( (!user_config.rgb_disable_perkey) && user_config.rgb_disable_underglow ) { + user_config.rgb_disable_perkey = 1; + } else { + user_config.rgb_disable_perkey = 0; + user_config.rgb_disable_underglow = 0; + } + id80_update_rgb_mode(); + } + return false; + + case RGB_TPK: + if (record->event.pressed) { + user_config.rgb_disable_perkey ^= 1; + id80_update_rgb_mode(); + } + return false; + + case RGB_TUG: + if (record->event.pressed) { + user_config.rgb_disable_underglow ^= 1; + id80_update_rgb_mode(); + } + return false; + + case EE_CLR: + if (!record->event.pressed) { // on release + id80_get_rgb_mode(); + } + return true; // let this one pass on + + #endif // RGB_MATRIX_ENABLE + + // print firmware version + case KB_VRSN: + if (!get_mods()) { + if (!record->event.pressed) { + SEND_STRING(QMK_KEYBOARD ":" QMK_KEYMAP " (v" QMK_VERSION ")"); + } + } + return false; + + // @see: https://github.com/qmk/qmk_firmware/issues/10111#issuecomment-752300353 + case KC_MCON: + if (record->event.pressed) { + host_consumer_send(_AC_SHOW_ALL_WINDOWS); + } else { + host_consumer_send(0); + } + return false; + + case KC_LPAD: + if (record->event.pressed) { + host_consumer_send(_AC_SHOW_ALL_APPS); + } else { + host_consumer_send(0); + } + return false; + + default: + return true; /* Process all other keycodes normally */ + } +} diff --git a/keyboards/idobao/id80/v3/ansi/keymaps/idobao/rules.mk b/keyboards/idobao/id80/v3/ansi/keymaps/idobao/rules.mk new file mode 100644 index 0000000000..ca9fed0e6b --- /dev/null +++ b/keyboards/idobao/id80/v3/ansi/keymaps/idobao/rules.mk @@ -0,0 +1,2 @@ +LTO_ENABLE = yes +VIA_ENABLE = yes diff --git a/keyboards/idobao/id80/v3/ansi/keymaps/via/keymap.c b/keyboards/idobao/id80/v3/ansi/keymaps/via/keymap.c new file mode 100644 index 0000000000..9ca5d285fa --- /dev/null +++ b/keyboards/idobao/id80/v3/ansi/keymaps/via/keymap.c @@ -0,0 +1,90 @@ +// Copyright 2022 Vino Rodrigues (@vinorodrigues) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ββββββββββ¬ββββ¬ββββ¬βββββββββ¬ββββ¬ββββ¬βββββββββ¬ββββ¬ββββ¬ββββββββββββββ + * βEscββF1 βF2 βF3 βF4 ββF5 βF6 βF7 βF8 ββF9 βF10βF11βF12ββFn1ββInsβ + * βββββΌβ΄βββ¬β΄βββ¬β΄βββ¬β΄βββ¬β΄β΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄β΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β΄ββββ€βββββ€ + * β`~ β 1 β 2 β 3 β 4 β 5 β 6 β 7 β 8 β 9 β 0 β-_ β=+ βBackspcββHomβ + * βββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββββββ€βββββ€ + * β Tab β Q β W β E β R β T β Y β U β I β O β P β[{ β]} β \| ββDelβ + * βββββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄ββββββ€βββββ + * β Caps β A β S β D β F β G β H β J β K β L β;: β'" β Enter β + * ββββββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄βββββ¬ββββ + * β Shift β Z β X β C β V β B β N β M β,< β.> β/? βShift ββββββ + * ββββββ¬ββββ΄β¬βββ΄ββ¬ββ΄ββββ΄ββββ΄ββββ΄ββββ΄ββββ΄βββ¬β΄ββββ΄β¬βββ΄βββ¬βββββ β β + * βCtrlβWin βAlt β Space β Alt βCtrl ββββββΌββββΌββββ + * ββββββ΄βββββ΄βββββ΄βββββββββββββββββββββββββ΄ββββββ΄βββββββ β β β β β β + * βββββ΄ββββ΄ββββ + */ + [0] = LAYOUT_80_ansi( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MO(1), KC_INS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* + * ββββββββββ¬ββββ¬ββββ¬βββββββββ¬ββββ¬ββββ¬βββββββββ¬ββββ¬ββββ¬ββββββββββββββ + * βRstββ β β β ββ β β β ββ βPScβSLkβPauββ ββMutβ + * βββββΌβ΄βββ¬β΄βββ¬β΄βββ¬β΄βββ¬β΄β΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄β΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β΄ββββ€βββββ€ + * β β β β β β β β β β β β β β ββVl+β + * βββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββββββ€βββββ€ + * β βTogβ βModβHu+βHu-βSa+βSa-βBr+βBr-βSp+βSp-β β ββVl-β + * βββββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄ββββββ€βββββ + * β β β β β β β β β β β β β β + * ββββββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄βββββ¬ββββ + * β β β βmodβ β βNKRβ β β β β ββββββ + * ββββββ¬ββββ΄β¬βββ΄ββ¬ββ΄ββββ΄ββββ΄ββββ΄ββββ΄ββββ΄βββ¬β΄ββββ΄β¬βββ΄βββ¬βββββPUpβ + * β β β β β β ββββββΌββββΌββββ + * ββββββ΄βββββ΄βββββ΄βββββββββββββββββββββββββ΄ββββββ΄βββββββHomβPDnβEndβ + * βββββ΄ββββ΄ββββ + */ + [1] = LAYOUT_80_ansi( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, KC_MUTE, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, + _______, RGB_TOG, _______, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, _______, _______, KC_VOLD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, RGB_RMOD, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_PGUP, + _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END + ), + + /* + * ββββββββββ¬ββββ¬ββββ¬βββββββββ¬ββββ¬ββββ¬βββββββββ¬ββββ¬ββββ¬ββββββββββββββ + * β ββ β β β ββ β β β ββ β β β ββ ββ β + * βββββΌβ΄βββ¬β΄βββ¬β΄βββ¬β΄βββ¬β΄β΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄β΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β΄ββββ€βββββ€ + * β β β β β β β β β β β β β β ββ β + * βββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββββββ€βββββ€ + * β β β β β β β β β β β β β β ββ β + * βββββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄ββββββ€βββββ + * β β β β β β β β β β β β β β + * ββββββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄βββββ¬ββββ + * β β β β β β β β β β β β ββββββ + * ββββββ¬ββββ΄β¬βββ΄ββ¬ββ΄ββββ΄ββββ΄ββββ΄ββββ΄ββββ΄βββ¬β΄ββββ΄β¬βββ΄βββ¬βββββ β + * β β β β β β ββββββΌββββΌββββ + * ββββββ΄βββββ΄βββββ΄βββββββββββββββββββββββββ΄ββββββ΄βββββββ β β β + * βββββ΄ββββ΄ββββ + */ + [2] = LAYOUT_80_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [3] = LAYOUT_80_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/idobao/id80/v3/ansi/keymaps/via/rules.mk b/keyboards/idobao/id80/v3/ansi/keymaps/via/rules.mk new file mode 100644 index 0000000000..ca9fed0e6b --- /dev/null +++ b/keyboards/idobao/id80/v3/ansi/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +LTO_ENABLE = yes +VIA_ENABLE = yes diff --git a/keyboards/idobao/id80/v3/ansi/rules.mk b/keyboards/idobao/id80/v3/ansi/rules.mk new file mode 100644 index 0000000000..eab741fd0a --- /dev/null +++ b/keyboards/idobao/id80/v3/ansi/rules.mk @@ -0,0 +1,5 @@ +# This file intentionally left blank +# ** settings are data driven & stored in `info.json` ** + +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812 diff --git a/keyboards/idobao/id80/v3/config.h b/keyboards/idobao/id80/v3/config.h deleted file mode 100644 index 4b2fb8d056..0000000000 --- a/keyboards/idobao/id80/v3/config.h +++ /dev/null @@ -1,131 +0,0 @@ -/* -Copyright 2020 Sergey Vlasov <sigprof@gmail.com> -Copyright 2022 peepeetee - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General 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/>. -*/ - -#pragma once - -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6964 /* "id" */ -#define PRODUCT_ID 0x0080 -#define DEVICE_VER 0x0003 -#define MANUFACTURER IDOBAO -#define PRODUCT ID80 v3 - - -/* key matrix size */ -#define MATRIX_ROWS 9 -#define MATRIX_COLS 11 - -/* - * Keyboard Matrix Assignments - * - * Change this to how you wired your keyboard - * COLS: AVR pins used for columns, left to right - * ROWS: AVR pins used for rows, top to bottom - * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) - * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) - * - * The matrix description in the vendor-supplied JSON file for kbfirmware.com - * had 9 columns: - * { D0, D1, D2, D3, D5, D4, D6, D7, B4 } - * and 12 rows: - * { B7, B3, B2, B1, B0, E6, F0, F1, F4, F5, F6, F7 } - * However, the row 6 was completely empty, and the pin F0 was not actually - * routed anywhere on the PCB, therefore this row was removed to save some - * resources (the EEPROM space for dynamic keymaps is especially scarce). - * - * After doing the above change, the matrix was transposed (rows and columns - * were swapped), because a matrix with the COL2ROW layout can be scanned much - * more efficiently than a matrix with the ROW2COL layout (depending on various - * optimizations, the difference in scan rate can be over 2 times). Because of - * this, the "columns" in the matrix layout now mostly correspond to physical - * rows, and the "rows" have mostly vertical physical orientation. - */ -#define MATRIX_ROW_PINS { D0, D1, D2, D3, D5, D4, D6, D7, B4 } -#define MATRIX_COL_PINS { B7, B3, B2, B1, B0, E6, F1, F4, F5, F6, F7 } - -#define DIODE_DIRECTION COL2ROW - -#undef RGB_DI_PIN -#define RGB_DI_PIN B6 -#ifdef RGB_MATRIX_ENABLE -# define DRIVER_LED_TOTAL 96 /* 16 Bottom 80 top*/ -# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // Limit to vendor-recommended value -// RGB Matrix Animation modes. Explicitly enabled -// For full list of effects, see: -// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects -# define RGB_MATRIX_FRAMEBUFFER_EFFECTS -# define RGB_MATRIX_KEYPRESSES -# 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 if 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 - -/* Bootmagic Lite key configuration: use the Esc key */ -#define BOOTMAGIC_LITE_ROW 0 -#define BOOTMAGIC_LITE_COLUMN 5 - -#define ENCODERS_PAD_A { C7 } -#define ENCODERS_PAD_B { C6 } - - - - diff --git a/keyboards/idobao/id80/v3/info.json b/keyboards/idobao/id80/v3/info.json deleted file mode 100644 index 0dc8efaf02..0000000000 --- a/keyboards/idobao/id80/v3/info.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "keyboard_name": "ID80 v3", - "url": "", - "maintainer": "qmk", - "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":"Fn", "x":14, "y":0}, - {"label":"Insert", "x":15.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":"Home", "x":15.25, "y":1.25}, - - {"label":"Tab", "x":0, "y":2.25, "w":1.5}, - {"label":"Q", "x":1.5, "y":2.25}, - {"label":"W", "x":2.5, "y":2.25}, - {"label":"E", "x":3.5, "y":2.25}, - {"label":"R", "x":4.5, "y":2.25}, - {"label":"T", "x":5.5, "y":2.25}, - {"label":"Y", "x":6.5, "y":2.25}, - {"label":"U", "x":7.5, "y":2.25}, - {"label":"I", "x":8.5, "y":2.25}, - {"label":"O", "x":9.5, "y":2.25}, - {"label":"P", "x":10.5, "y":2.25}, - {"label":"[", "x":11.5, "y":2.25}, - {"label":"]", "x":12.5, "y":2.25}, - {"label":"\\", "x":13.5, "y":2.25, "w":1.5}, - {"label":"Delete", "x":15.25, "y":2.25}, - - {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, - {"label":"A", "x":1.75, "y":3.25}, - {"label":"S", "x":2.75, "y":3.25}, - {"label":"D", "x":3.75, "y":3.25}, - {"label":"F", "x":4.75, "y":3.25}, - {"label":"G", "x":5.75, "y":3.25}, - {"label":"H", "x":6.75, "y":3.25}, - {"label":"J", "x":7.75, "y":3.25}, - {"label":"K", "x":8.75, "y":3.25}, - {"label":"L", "x":9.75, "y":3.25}, - {"label":";", "x":10.75, "y":3.25}, - {"label":"'", "x":11.75, "y":3.25}, - {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, - - {"label":"Shift", "x":0, "y":4.25, "w":2.25}, - {"label":"Z", "x":2.25, "y":4.25}, - {"label":"X", "x":3.25, "y":4.25}, - {"label":"C", "x":4.25, "y":4.25}, - {"label":"V", "x":5.25, "y":4.25}, - {"label":"B", "x":6.25, "y":4.25}, - {"label":"N", "x":7.25, "y":4.25}, - {"label":"M", "x":8.25, "y":4.25}, - {"label":",", "x":9.25, "y":4.25}, - {"label":".", "x":10.25, "y":4.25}, - {"label":"/", "x":11.25, "y":4.25}, - {"label":"Shift", "x":12.25, "y":4.25, "w":1.75}, - {"label":"\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, "w":1.5}, - {"label":"Ctrl", "x":11.5, "y":5.25, "w":1.5}, - {"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/idobao/id80/v3/keymaps/default/keymap.c b/keyboards/idobao/id80/v3/keymaps/default/keymap.c deleted file mode 100644 index f7886f1e0e..0000000000 --- a/keyboards/idobao/id80/v3/keymaps/default/keymap.c +++ /dev/null @@ -1,36 +0,0 @@ -/* Copyright 2020 Sergey Vlasov <sigprof@gmail.com> - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ -#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, MO(1), KC_INS, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - [1] = LAYOUT( - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RGB_TOG, _______, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, NK_TOGG, _______, _______, _______, _______, _______, BL_INC, - _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DEC, BL_STEP - ), -}; - diff --git a/keyboards/idobao/id80/v3/keymaps/default/readme.md b/keyboards/idobao/id80/v3/keymaps/default/readme.md deleted file mode 100644 index 8ae9f656cd..0000000000 --- a/keyboards/idobao/id80/v3/keymaps/default/readme.md +++ /dev/null @@ -1 +0,0 @@ -# The default keymap for id80 diff --git a/keyboards/idobao/id80/v3/readme.md b/keyboards/idobao/id80/v3/readme.md index dc6c67b4f4..e4eb50f9e7 100644 --- a/keyboards/idobao/id80/v3/readme.md +++ b/keyboards/idobao/id80/v3/readme.md @@ -1,27 +1,36 @@ -# ID80v3 +# IDOBAO ID80v3 -![ID80v3](https://i.imgur.com/PGvZfQj.jpg) +![IDOBAO ID80](https://i.imgur.com/977ENjp.png) -A 75% hotswap in-switch RGB keyboard with an encoder. +A 75% hotswap keyboard from IDOBAO. -* Keyboard Maintainer: [peepeetee](https://github.com/peepeetee) -* Hardware Supported: ID80v3 -* Hardware Availability: Not avaliable yet +## ANSI Support + +* Keyboard Maintainer: [Vino Rodrigues](https://github.com/vinorodrigues) +* Hardware Supported: **IDOBAO ID80v3** +* Hardware Availability: [IDOBAO.net](https://idobao.net/search?type=product&q=id80*) + +## ANSI Layout + +![](https://idobao.github.io/kle/idobao-id80.png) + +## Compiling and Flashing Make example for this keyboard (after setting up your build environment): - make idobao/id80/v3:default + make idobao/id80/v3/ansi:default Flashing example for this keyboard: - make idobao/id80/v3:default:flash + make idobao/id80/v3/ansi: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). +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 +* **Bootmagic reset**: Hold down the [Escape] key (the top left key) and plug in the keyboard * **Physical reset button**: Briefly press the button on the back of the PCB -* **Keycode in layout**: Press the key mapped to `RESET` if it is available +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/idobao/id80/v3/rules.mk b/keyboards/idobao/id80/v3/rules.mk index 6805b8f0f9..218fc05539 100644 --- a/keyboards/idobao/id80/v3/rules.mk +++ b/keyboards/idobao/id80/v3/rules.mk @@ -1,23 +1,2 @@ -# 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 = 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 -LTO_ENABLE = yes - -RGB_MATRIX_ENABLE = yes -RGB_MATRIX_DRIVER = WS2812 +# Defalt to the ansi version +DEFAULT_FOLDER = idobao/id80/v3/ansi diff --git a/keyboards/idobao/id80/v3/v3.c b/keyboards/idobao/id80/v3/v3.c deleted file mode 100644 index cd05a26a49..0000000000 --- a/keyboards/idobao/id80/v3/v3.c +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright 2022 peepeetee (@peepeetee) -// Copyright 2022 Xelus22 -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "v3.h" - -#ifdef ENCODER_ENABLE -bool encoder_update_kb(uint8_t index, bool clockwise) { - if (!encoder_update_user(index, clockwise)) { return false; } - if (index == 0) { - if (clockwise) { - tap_code_delay(KC_VOLU, 10); - } else { - tap_code_delay(KC_VOLD, 10); - } - } - return true; -} -#endif - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 8, 9, 34, 35, 64, 65, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { 7, NO_LED, 33, 36, 63, 66, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { 6, 10, 32, 37, 62, 67, NO_LED, NO_LED, 49, 50, 79 }, - { 0, 11, 31, 38, 61, 68, 21, NO_LED, 48, NO_LED, 77 }, - { 1, 12, 30, 39, 60, 69, 20, 22, 47, 52, 76 }, - { 2, 13, 29, 40, 59, 70, 19, 23, 46, 53, 75 }, - { 5, 14, 28, 41, 58, 71, NO_LED, NO_LED, NO_LED, 51, 78 }, - { 3, 15, 27, 42, 57, 72, 18, 24, 45, 54, 74 }, - { 4, 16, 26, 43, 56, 73, 17, 25, 44, 55, NO_LED }, -}, { - // LED Index to Physical Position -{224, 64}, {209, 64}, {195, 64}, {173, 61}, {151, 61}, {94 , 61}, {39 , 61}, {20 , 61}, {2 , 61}, {9 , 50}, {33 , 50}, -{48 , 50}, {62 , 50}, {77 , 50}, {92 , 50}, {106, 50}, {121, 50}, {136, 50}, {151, 50}, {165, 50}, {185, 50}, {209, 53}, -{196, 39}, {173, 39}, {158, 39}, {143, 39}, {129, 39}, {114, 39}, {99 , 39}, {84 , 39}, {70 , 39}, {55 , 39}, {40 , 39}, -{26 , 39}, {6 , 39}, {4 , 28}, {22 , 28}, {37 , 28}, {51 , 28}, {66 , 28}, {81 , 28}, {95 , 28}, {110, 28}, {125, 28}, -{140, 28}, {154, 28}, {169, 28}, {184, 28}, {202, 28}, {224, 28}, {224, 17}, {198, 17}, {176, 17}, {162, 17}, {147, 17}, -{132, 17}, {118, 17}, {103, 17}, {88 , 17}, {73 , 17}, {59 , 17}, {44 , 17}, {29 , 17}, {15 , 17}, {0 , 17}, {0 , 0}, -{18 , 0}, {33 , 0}, {48 , 0}, {62 , 0}, {81 , 0}, {95 , 0}, {110, 0}, {125, 0}, {143, 0}, {158, 0}, {173, 0}, -{187, 0}, {206, 0}, {224, 0}, - -{ 207, 13}, -{ 207, 32}, -{ 207, 51},{ 174, 51},{ 141, 51},{ 108, 51},{ 73, 51},{ 40, 51},{ 13, 51 }, -{ 13, 32}, -{ 13, 13},{ 40, 13},{ 73, 13},{ 108, 13},{ 141, 13},{ 174, 13}, - -}, { - // LED Index to Flag -1,1,1,1,1,4,1,1,1, -1,4,4,4,4,4,4,4,4,4,4,1,1, -1,4,4,4,4,4,4,4,4,4,4,4,1, -1,4,4,4,4,4,4,4,4,4,4,4,4,4,1, -1,1,4,4,4,4,4,4,4,4,4,4,4,4,4, -1,4,4,4,4,1,1,1,1,4,4,4,4,1,1, -2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, - -} }; - -#endif diff --git a/keyboards/idobao/id80/v3/v3.h b/keyboards/idobao/id80/v3/v3.h deleted file mode 100644 index 94626fe4f6..0000000000 --- a/keyboards/idobao/id80/v3/v3.h +++ /dev/null @@ -1,37 +0,0 @@ -/* Copyright 2020 Sergey Vlasov <sigprof@gmail.com> - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ -#pragma once - -#include "quantum.h" - -#define LAYOUT( \ - K50, K51, K52, K53, K54, K55, K56, K57, K58, KA7, KA5, KA4, KA3, KA6, KA2, \ - K40, K41, K42, K43, K44, K45, K46, K47, K48, K98, K97, K95, K94, K96, K92, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K88, K87, K85, K84, K83, K82, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K78, K77, K75, K74, \ - K10, K12, K13, K14, K15, K16, K17, K18, K68, K67, K65, K64, K63, \ - K00, K01, K02, K06, K08, K07, K05, K04, K03 \ -) { \ - { K00, K10, K20, K30, K40, K50, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ - { K01, KC_NO, K21, K31, K41, K51, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ - { K02, K12, K22, K32, K42, K52, KC_NO, KC_NO, K82, K92, KA2 }, \ - { K03, K13, K23, K33, K43, K53, K63, KC_NO, K83, KC_NO, KA3 }, \ - { K04, K14, K24, K34, K44, K54, K64, K74, K84, K94, KA4 }, \ - { K05, K15, K25, K35, K45, K55, K65, K75, K85, K95, KA5 }, \ - { K06, K16, K26, K36, K46, K56, KC_NO, KC_NO, KC_NO, K96, KA6 }, \ - { K07, K17, K27, K37, K47, K57, K67, K77, K87, K97, KA7 }, \ - { K08, K18, K28, K38, K48, K58, K68, K78, K88, K98, KC_NO }, \ -} diff --git a/keyboards/idobao/id87/v1/config.h b/keyboards/idobao/id87/v1/config.h index a268091d40..6c2d6fc9ce 100644 --- a/keyboards/idobao/id87/v1/config.h +++ b/keyboards/idobao/id87/v1/config.h @@ -16,13 +16,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6964 // "id" -#define PRODUCT_ID 0x0087 -#define DEVICE_VER 0x0001 -#define MANUFACTURER IDOBAO -#define PRODUCT IDOBAO ID87 - /* key matrix size */ #define MATRIX_ROWS 11 #define MATRIX_COLS 9 @@ -41,7 +34,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #define MATRIX_ROW_PINS { E6, B0, B1, B2, B3, B7, F7, F6, F5, F4, F1 } #define MATRIX_COL_PINS { D0, D1, D2, D3, D5, D4, D6, D7, B4 } -//#define UNUSED_PINS /* COL2ROW, ROW2COL*/ #define DIODE_DIRECTION ROW2COL @@ -58,9 +50,20 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #define RGB_DI_PIN E2 #ifdef RGB_DI_PIN -#define RGBLIGHT_ANIMATIONS -#define RGBLED_NUM 22 /* 16 Bottom 6 top*/ -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 + // RGBLIGHT_ANIMATIONS + #define RGBLIGHT_EFFECT_ALTERNATING + #define RGBLIGHT_EFFECT_BREATHING + #define RGBLIGHT_EFFECT_CHRISTMAS + #define RGBLIGHT_EFFECT_KNIGHT + #define RGBLIGHT_EFFECT_RAINBOW_MOOD + #define RGBLIGHT_EFFECT_RAINBOW_SWIRL + #define RGBLIGHT_EFFECT_RGB_TEST + #define RGBLIGHT_EFFECT_SNAKE + #define RGBLIGHT_EFFECT_STATIC_GRADIENT + #define RGBLIGHT_EFFECT_TWINKLE + + #define RGBLED_NUM 22 /* 16 Bottom 6 top*/ + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 #endif diff --git a/keyboards/idobao/id87/v1/info.json b/keyboards/idobao/id87/v1/info.json index f154bbd940..9f7c94619f 100644 --- a/keyboards/idobao/id87/v1/info.json +++ b/keyboards/idobao/id87/v1/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "ID87", + "manufacturer": "IDOBAO", "url": "https://www.idobao.net/products/idobao-id87-80-hot-swappable-mechanical-keyboard-kit", "maintainer": "qmk", + "usb": { + "vid": "0x6964", + "pid": "0x0087", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_tkl_ansi": { "layout": [ diff --git a/keyboards/idobao/id87/v2/config.h b/keyboards/idobao/id87/v2/config.h index f094ef0638..8f1a9ddf03 100644 --- a/keyboards/idobao/id87/v2/config.h +++ b/keyboards/idobao/id87/v2/config.h @@ -1,144 +1,78 @@ -// Copyright 2022 peepeetee (@peepeetee) +// Copyright 2022 vinorodrigues (@vinorodrigues) // SPDX-License-Identifier: GPL-2.0-or-later #pragma once #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6964 // "id" -#define PRODUCT_ID 0x0087 -#define DEVICE_VER 0x0002 -#define MANUFACTURER IDOBAO -#define PRODUCT ID87 - -/* key matrix size */ -#define MATRIX_ROWS 11 -#define MATRIX_COLS 9 - -/* - * Keyboard Matrix Assignments - * - * Change this to how you wired your keyboard - * COLS: AVR pins used for columns, left to right - * ROWS: AVR pins used for rows, top to bottom - * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) - * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) - * - */ -#define MATRIX_ROW_PINS { E6, B0, B1, B2, B3, B7, F7, F6, F5, F4, F1 } - -#define MATRIX_COL_PINS { D0, D1, D2, D3, D5, D4, D6, D7, B4 } -//#define UNUSED_PINS - -/* COL2ROW, ROW2COL*/ -#define DIODE_DIRECTION ROW2COL - -#define LED_CAPS_LOCK_PIN C7 - -//#define BACKLIGHT_PIN B7 -//#define BACKLIGHT_LEVELS 3 -//#define BACKLIGHT_BREATHING +/* ---------------- + * RGB Matrix stuff + * ---------------- */ #define RGB_DI_PIN E2 -# define DRIVER_LED_TOTAL 103 /* 16 Bottom 87 top*/ -#ifdef RGB_DI_PIN -# define RGBLED_NUM 103 /* 16 Bottom 87 top*/ -# define RGB_MATRIX_KEYPRESSES // reacts to keypresses -#endif -#ifdef RGB_MATRIX_ENABLE -# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // Limit to vendor-recommended value -// RGB Matrix Animation modes. Explicitly enabled -// For full list of effects, see: -// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects -# define RGB_MATRIX_FRAMEBUFFER_EFFECTS -# define RGB_MATRIX_KEYPRESSES -# 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 -// 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 - - -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCE 5 - -/* define if matrix has ghost (lacks anti-ghosting diodes) */ -//#define MATRIX_HAS_GHOST - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE - -/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. - * This is useful for the Windows task manager shortcut (ctrl+shift+esc). - */ -//#define GRAVE_ESC_CTRL_OVERRIDE - -/* - * Force NKRO - * - * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved - * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the - * makefile for this to work.) - * - * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) - * until the next keyboard reset. - * - * NKRO may prevent your keystrokes from being detected in the BIOS, but it is - * fully operational during normal computer usage. - * - * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) - * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by - * bootmagic, NKRO mode will always be enabled until it is toggled again during a - * power-up. - * - */ -#define FORCE_NKRO - -/* + +// RGB Matrix config +#if defined(RGB_MATRIX_ENABLE) + + #define DRIVER_LED_TOTAL 103 + + #define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended + #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // limits maximum brightness of LEDs to x out of 255. If not defined maximum brightness is set to 255 + + #define RGB_MATRIX_KEYPRESSES + + #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 -- do not enable */ + // #define ENABLE_RGB_MATRIX_TYPING_HEATMAP + // #define ENABLE_RGB_MATRIX_DIGITAL_RAIN + + /* RGB_MATRIX_KEYPRESSES | 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 // RGB_MATRIX_ENABLE + + +/* ----------------------- * Feature disable options * These options are also useful to firmware size reduction. - */ + * ----------------------- */ /* disable debug print */ //#define NO_DEBUG @@ -150,7 +84,3 @@ //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT - -/* Bootmagic Lite key configuration */ -//#define BOOTMAGIC_LITE_ROW 0 -//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/idobao/id87/v2/info.json b/keyboards/idobao/id87/v2/info.json index e4e252aa64..7292ce29ca 100644 --- a/keyboards/idobao/id87/v2/info.json +++ b/keyboards/idobao/id87/v2/info.json @@ -1,97 +1,126 @@ { - "keyboard_name": "ID87", - "url": "https://www.idobao.net/products/idobao-id87-80-hot-swappable-mechanical-keyboard-kit", - "maintainer": "qmk", + "manufacturer": "IDOBAO", + "keyboard_name": "ID87v2", + "maintainer": "vinorodrigues", + "bootloader": "atmel-dfu", + "diode_direction": "ROW2COL", + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": false, + "command": false, + "nkro": true, + "backlight": false, + "rgblight": false + }, + "debounce": 5, + "matrix_pins": { + "cols": ["D0", "D1", "D2", "D3", "D5", "D4", "D6", "D7", "B4"], + "rows": ["E6", "B0", "B1", "B2", "B3", "B7", "F7", "F6", "F5", "F4", "F1"] + }, + "processor": "atmega32u4", + "url": "https://idobao.net/search?type=product&q=ID87*", + "usb": { + "vid": "0x6964", + "pid": "0x0287", + "device_version": "2.0.0" + }, "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":"PrtSc", "x":15.25, "y":0}, - {"label":"Scroll Lock", "x":16.25, "y":0}, - {"label":"Pause", "x":17.25, "y":0}, - {"label":"~", "x":0, "y":1.5}, - {"label":"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":"Up", "x":16.25, "y":4.5}, - {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, - {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, - {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, - {"label":"Space", "x":3.75, "y":5.5, "w":6.25}, - {"label":"Alt", "x":10, "y":5.5, "w":1.25}, - {"label":"Win", "x":11.25, "y":5.5, "w":1.25}, - {"label":"LT(1, KC_APP)", "x":12.5, "y":5.5, "w":1.25}, - {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, - {"label":"Left", "x":15.25, "y":5.5}, - {"label":"Down", "x":16.25, "y":5.5}, - {"label":"Right", "x":17.25, "y":5.5} + { "matrix": [0, 0], "x": 0, "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.5, "y": 0 }, + { "matrix": [0, 7], "x": 7.5, "y": 0 }, + { "matrix": [0, 8], "x": 8.5, "y": 0 }, + { "matrix": [6, 8], "x": 9.5, "y": 0 }, + { "matrix": [6, 7], "x": 11, "y": 0 }, + { "matrix": [6, 5], "x": 12, "y": 0 }, + { "matrix": [6, 4], "x": 13, "y": 0 }, + { "matrix": [6, 3], "x": 14, "y": 0 }, + { "matrix": [6, 6], "x": 15.25, "y": 0 }, + { "matrix": [6, 2], "x": 16.25, "y": 0 }, + { "matrix": [6, 1], "x": 17.25, "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": [7, 8], "x": 9, "y": 1.25 }, + { "matrix": [7, 0], "x": 10, "y": 1.25 }, + { "matrix": [7, 7], "x": 11, "y": 1.25 }, + { "matrix": [7, 5], "x": 12, "y": 1.25 }, + { "matrix": [7, 3], "x": 13, "y": 1.25, "w": 2 }, + { "matrix": [7, 6], "x": 15.25, "y": 1.25 }, + { "matrix": [7, 2], "x": 16.25, "y": 1.25 }, + { "matrix": [7, 1], "x": 17.25, "y": 1.25 }, + + { "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.25 }, + { "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": [8, 8], "x": 9.5, "y": 2.25 }, + { "matrix": [8, 7], "x": 10.5, "y": 2.25 }, + { "matrix": [8, 5], "x": 11.5, "y": 2.25 }, + { "matrix": [8, 4], "x": 12.5, "y": 2.25 }, + { "matrix": [8, 3], "w": 1.5, "x": 13.5, "y": 2.25 }, + { "matrix": [8, 6], "x": 15.25, "y": 2.25 }, + { "matrix": [8, 2], "x": 16.25, "y": 2.25 }, + { "matrix": [8, 1], "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 }, + { "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": [9, 8], "x": 9.75, "y": 3.25 }, + { "matrix": [9, 7], "x": 10.75, "y": 3.25 }, + { "matrix": [9, 5], "x": 11.75, "y": 3.25 }, + { "matrix": [9, 3], "x": 12.75, "y": 3.25, "w": 2.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": [10, 8], "x": 9.25, "y": 4.25 }, + { "matrix": [10, 7], "x": 10.25, "y": 4.25 }, + { "matrix": [10, 5], "x": 11.25, "y": 4.25 }, + { "matrix": [10, 4], "x": 12.25, "y": 4.25, "w": 2.75 }, + { "matrix": [9, 2], "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 }, + { "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, 8], "x": 10, "y": 5.25, "w": 1.25 }, + { "matrix": [5, 7], "x": 11.25, "y": 5.25, "w": 1.25 }, + { "matrix": [5, 4], "x": 12.5, "y": 5.25, "w": 1.25 }, + { "matrix": [5, 3], "x": 13.75, "y": 5.25, "w": 1.25 }, + { "matrix": [10, 6], "x": 15.25, "y": 5.25 }, + { "matrix": [10, 2], "x": 16.25, "y": 5.25 }, + { "matrix": [10, 1], "x": 17.25, "y": 5.25 } ] } } diff --git a/keyboards/idobao/id87/v2/keymaps/default/keymap.c b/keyboards/idobao/id87/v2/keymaps/default/keymap.c index 9465dca531..53690899c1 100644 --- a/keyboards/idobao/id87/v2/keymaps/default/keymap.c +++ b/keyboards/idobao/id87/v2/keymaps/default/keymap.c @@ -1,35 +1,58 @@ -/* -Copyright 2020 Tybera -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ +// Copyright 2022 Vino Rodrigues (@vinorodrigues) +// SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H +#define LT_1_AP LT(1, KC_APP) // Tap = Menu, Hold = MO(1) + 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 β + * ββββββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄βββββββββ€ βββββ + * β Shift β Z β X β C β V β B β N β M β , β . β / β Shift β β β β + * ββββββ¬ββββ΄β¬βββ΄ββ¬ββ΄ββββ΄ββββ΄ββββ΄ββββ΄ββββ΄βββ¬β΄ββββΌββββ΄β¬βββββ¬βββββ€ βββββΌββββΌββββ + * βCtrlβGUI βAlt β β Altβ GUIβFn1*βCtrlβ β β β β β β β Fn1* => Tap = Menu, Hold = MO(1) + * ββββββ΄βββββ΄βββββ΄βββββββββββββββββββββββββ΄βββββ΄βββββ΄βββββ΄βββββ βββββ΄ββββ΄ββββ + */ [0] = LAYOUT_tkl_ansi( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, LT(1, KC_APP), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - [1] = LAYOUT_tkl_ansi( - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, _______, - _______, BL_TOGG, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, RGB_SAI, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, BL_INC, - _______, _______, _______, _______, _______, _______, _______, _______, BL_INC, BL_DEC, RGB_MOD + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, LT_1_AP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), + /* + * βββββ βββββ¬ββββ¬ββββ¬ββββ βββββ¬ββββ¬ββββ¬ββββ βββββ¬ββββ¬ββββ¬ββββ βββββ¬ββββ¬ββββ + * βRstβ β β β β β β β β β β β β β β β β β β β + * βββββ βββββ΄ββββ΄ββββ΄ββββ βββββ΄ββββ΄ββββ΄ββββ βββββ΄ββββ΄ββββ΄ββββ βββββ΄ββββ΄ββββ + * βββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββββββ βββββ¬ββββ¬ββββ + * β β β β β β β β β β β β β β β β βHu+β β + * βββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββββββ€ βββββΌββββΌββββ€ + * β βTogβModβ β β β β β β β β β β β βSt-βHu-βSt+β + * βββββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄ββββββ€ βββββ΄ββββ΄ββββ + * β β βmodβ β β β β β β β β β β + * ββββββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄βββββββββ€ βββββ + * β β β β β β βNROβ β β β β β βBr+β + * ββββββ¬ββββ΄β¬βββ΄ββ¬ββ΄ββββ΄ββββ΄ββββ΄ββββ΄ββββ΄βββ¬β΄ββββΌββββ΄β¬βββββ¬βββββ€ βββββΌββββΌββββ + * β β β β β β β β β βSp-βBr-βSp+β + * ββββββ΄βββββ΄βββββ΄βββββββββββββββββββββββββ΄βββββ΄βββββ΄βββββ΄βββββ βββββ΄ββββ΄ββββ + */ + [1] = LAYOUT_tkl_ansi( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, _______, + _______, RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_HUD, RGB_SAI, + _______, _______, RGB_RMOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_VAD, RGB_SPI + ) }; diff --git a/keyboards/idobao/id87/v2/keymaps/default/readme.md b/keyboards/idobao/id87/v2/keymaps/default/readme.md deleted file mode 100644 index 6054431de4..0000000000 --- a/keyboards/idobao/id87/v2/keymaps/default/readme.md +++ /dev/null @@ -1 +0,0 @@ -# The default keymap for id87
\ No newline at end of file diff --git a/keyboards/idobao/id87/v2/keymaps/idobao/config.h b/keyboards/idobao/id87/v2/keymaps/idobao/config.h new file mode 100644 index 0000000000..a1612e6e32 --- /dev/null +++ b/keyboards/idobao/id87/v2/keymaps/idobao/config.h @@ -0,0 +1,4 @@ +// Copyright 2022 Vino Rodrigues (@vinorodrigues) +// SPDX-License-Identifier: GPL-2.0-or-later + +#define DYNAMIC_KEYMAP_LAYER_COUNT 3 diff --git a/keyboards/idobao/id87/v2/keymaps/idobao/keymap.c b/keyboards/idobao/id87/v2/keymaps/idobao/keymap.c new file mode 100644 index 0000000000..59b60b7e1d --- /dev/null +++ b/keyboards/idobao/id87/v2/keymaps/idobao/keymap.c @@ -0,0 +1,299 @@ +// Copyright 2022 Vino Rodrigues (@vinorodrigues) +// Copyright 2022 IDOBAO (@idobaokb) +// SPDX-License-Identifier: GPL-2.0-or-later + +/* ------------------------------------------------------------------ + * This is the IDOBAO factory default keymap ;) + * ------------------------------------------------------------------ */ + +#include QMK_KEYBOARD_H +#include "version.h" + +#ifdef RGB_MATRIX_ENABLE + +typedef union { + uint32_t raw; + struct { + bool rgb_disable_perkey:1; + bool rgb_disable_underglow:1; + }; +} user_config_t; + +#endif // RGB_MATRIX_ENABLE + +enum { + KC_MCON = USER00, // macOS Open Mission Control + KC_LPAD, // macOS Open Launchpad + #ifdef RGB_MATRIX_ENABLE + RGB_TPK, // Toggle Per-Key + RGB_TUG, // Toggle Underglow + #endif // RGB_MATRIX_ENABLE + KB_VRSN = USER09 // debug, type version +}; + +#ifndef RGB_MATRIX_ENABLE + #define RGB_TPK _______ + #define RGB_TUG _______ +#endif + +enum macos_consumer_usages { + _AC_SHOW_ALL_WINDOWS = 0x29F, // mapped to KC_MCON + _AC_SHOW_ALL_APPS = 0x2A0 // mapped to KC_LPAD +}; + +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 β - β = βBackspcβ β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 β + * ββββββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄βββββββββ€ βββββ + * β Shift β Z β X β C β V β B β N β M β , β . β / β Shift β β β β + * ββββββ¬ββββ΄β¬βββ΄ββ¬ββ΄ββββ΄ββββ΄ββββ΄ββββ΄ββββ΄βββ¬β΄ββββΌββββ΄β¬βββββ¬βββββ€ βββββΌββββΌββββ + * βCtrlβGUI βAlt β space β Altβ GUIβMO(1βCtrlβ β β β β β β β + * ββββββ΄βββββ΄βββββ΄βββββββββββββββββββββββββ΄βββββ΄βββββ΄βββββ΄βββββ βββββ΄ββββ΄ββββ + */ + [0] = LAYOUT_tkl_ansi( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* + * βββββ βββββ¬ββββ¬ββββ¬ββββ βββββ¬ββββ¬ββββ¬ββββ βββββ¬ββββ¬ββββ¬ββββ βββββ¬ββββ¬ββββ + * βRstβ βBR+βBR-βmMCβmLPβ βBr-βBr+βPrvβPlyβ βNxtβMutβVl-βVl+β β β β β + * βββββ βββββ΄ββββ΄ββββ΄ββββ βββββ΄ββββ΄ββββ΄ββββ βββββ΄ββββ΄ββββ΄ββββ βββββ΄ββββ΄ββββ + * βββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββββββ βββββ¬ββββ¬ββββ + * β β β β β β β β β β β β β β β β βHu+β β + * βββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββββββ€ βββββΌββββΌββββ€ + * β βTogβModβ β β β β β β β β β β β βSt-βHu-βSt+β + * βββββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄ββββββ€ βββββ΄ββββ΄ββββ + * β β βmodβ β β β β β β β β β β + * ββββββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄βββββββββ€ βββββ + * β β β β βVerβ βNROβ β β β β MO(2) β βBr+β + * ββββββ¬ββββ΄β¬βββ΄ββ¬ββ΄ββββ΄ββββ΄ββββ΄ββββ΄ββββ΄βββ¬β΄ββββΌββββ΄β¬βββββ¬βββββ€ βββββΌββββΌββββ + * β β β β β β β β β βSp-βBr-βSp+β + * ββββββ΄βββββ΄βββββ΄βββββββββββββββββββββββββ΄βββββ΄βββββ΄βββββ΄βββββ βββββ΄ββββ΄ββββ + */ + [1] = LAYOUT_tkl_ansi( + QK_BOOT, KC_BRID, KC_BRIU, KC_MCON, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, _______, + _______, RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_HUD, RGB_SAI, + _______, _______, RGB_RMOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, KB_VRSN, _______, NK_TOGG, _______, _______, _______, _______, MO(2), RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_VAD, RGB_SPI + ), + + /* + * βββββ βββββ¬ββββ¬ββββ¬ββββ βββββ¬ββββ¬ββββ¬ββββ βββββ¬ββββ¬ββββ¬ββββ βββββ¬ββββ¬ββββ + * β β β β β β β β β β β β β β β β β β β β β + * βββββ βββββ΄ββββ΄ββββ΄ββββ βββββ΄ββββ΄ββββ΄ββββ βββββ΄ββββ΄ββββ΄ββββ βββββ΄ββββ΄ββββ + * βββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββββββ βββββ¬ββββ¬ββββ + * βM00βM01βM02βM03βM04βM05βM06βM07βM08βM09βM10β β β β β β β β + * βββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββββββ€ βββββΌββββΌββββ€ + * β βM11βM12βM13βM14βM15βM16β β β β β β β β β β β β + * βββββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄ββββββ€ βββββ΄ββββ΄ββββ + * β β β β β β β β β β β β β β + * ββββββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄βββββββββ€ βββββ + * β β β β β β β β β β β β β β β + * ββββββ¬ββββ΄β¬βββ΄ββ¬ββ΄ββββ΄ββββ΄ββββ΄ββββ΄ββββ΄βββ¬β΄ββββΌββββ΄β¬βββββ¬βββββ€ βββββΌββββΌββββ + * β β β β β β β β β β β β β + * ββββββ΄βββββ΄βββββ΄βββββββββββββββββββββββββ΄βββββ΄βββββ΄βββββ΄βββββ βββββ΄ββββ΄ββββ + */ + [2] = LAYOUT_tkl_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + MACRO00, MACRO01, MACRO02, MACRO03, MACRO04, MACRO05, MACRO06, MACRO07, MACRO08, MACRO09, MACRO10, _______, _______, _______, _______, _______, _______, + _______, MACRO11, MACRO12, MACRO13, MACRO14, MACRO15, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; + +#ifdef RGB_MATRIX_ENABLE + +/* + * RGB Stuff + */ + +#define ID87_CAPS_LOCK_KEY_INDEX 40 // position of Caps Lock key + +#define ID87_CAPS_LOCK_MAX_BRIGHTNESS 0xFF +#ifdef RGB_MATRIX_MAXIMUM_BRIGHTNESS + #undef ID87_CAPS_LOCK_MAX_BRIGHTNESS + #define ID87_CAPS_LOCK_MAX_BRIGHTNESS RGB_MATRIX_MAXIMUM_BRIGHTNESS +#endif + +#define ID87_CAPS_LOCK_VAL_STEP 8 +#ifdef RGB_MATRIX_VAL_STEP + #undef ID87_CAPS_LOCK_VAL_STEP + #define ID87_CAPS_LOCK_VAL_STEP RGB_MATRIX_VAL_STEP +#endif + +user_config_t user_config; + +void id87_update_rgb_mode(void) { + uint8_t flags = LED_FLAG_ALL; + + if (user_config.rgb_disable_perkey && user_config.rgb_disable_underglow) { + flags = 0; // All OFF Condition + } else { + if (user_config.rgb_disable_perkey) { + flags = LED_FLAG_UNDERGLOW | 0xF0; + } + if (user_config.rgb_disable_underglow) { + flags = LED_FLAG_MODIFIER | LED_FLAG_KEYLIGHT | LED_FLAG_INDICATOR | 0xF0; + } + } + + if (flags == 0) { + rgb_matrix_set_flags(0); + rgb_matrix_set_color_all(HSV_OFF); + } else { + rgb_matrix_set_flags(flags); + rgb_matrix_enable_noeeprom(); + } + + eeconfig_update_kb(user_config.raw); // write back to EEPROM +} + +void id87_get_rgb_mode(void) { + user_config.raw = eeconfig_read_kb(); // read config from EEPROM + id87_update_rgb_mode(); +} + +void keyboard_post_init_user(void) { + id87_get_rgb_mode(); +} + +void eeconfig_init_user(void) { + // EEPROM is getting reset! + user_config.raw = 0; + id87_update_rgb_mode(); +} + +void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { + // Caps Lock key stuff + + if (host_keyboard_led_state().caps_lock) { + uint8_t v = rgb_matrix_get_val(); + if (v < ID87_CAPS_LOCK_VAL_STEP) { + v = ID87_CAPS_LOCK_VAL_STEP; + } else if (v < (ID87_CAPS_LOCK_MAX_BRIGHTNESS - ID87_CAPS_LOCK_VAL_STEP)) { + if (!user_config.rgb_disable_perkey) { + v += ID87_CAPS_LOCK_VAL_STEP; // inc. by one more step than current brightness + } // else leave as current brightness + } else { + v = ID87_CAPS_LOCK_MAX_BRIGHTNESS; + } + rgb_matrix_set_color(ID87_CAPS_LOCK_KEY_INDEX, v, v, v); // white, brightness adjusted + } else if (user_config.rgb_disable_perkey) { + rgb_matrix_set_color(ID87_CAPS_LOCK_KEY_INDEX, HSV_OFF); // off + } +} + +#endif // RGB_MATRIX_ENABLE + +/* + * Extra keys and RGB Toggle handler + */ + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + + switch (keycode) { + + // handle RGB toggle key - this ensures caps lock always works + #ifdef RGB_MATRIX_ENABLE + + case QK_BOOT: + if (record->event.pressed) { + rgb_matrix_set_color_all(RGB_MATRIX_MAXIMUM_BRIGHTNESS, 0, 0); // All red + rgb_matrix_driver.flush(); + } + return true; + + case RGB_TOG: + /* roll through the LED modes + * | Level | Per-key | Underglow | + * |------------|---------|-----------| + * | 0 (defalt) | on | on | + * | 1 | OFF | on | + * | 2 | on | OFF | + * | 3 | OFF | OFF | + */ + if (record->event.pressed) { + if ( (!user_config.rgb_disable_perkey) && (!user_config.rgb_disable_underglow) ) { + user_config.rgb_disable_perkey = 1; + } else if ( user_config.rgb_disable_perkey && (!user_config.rgb_disable_underglow) ) { + user_config.rgb_disable_perkey = 0; + user_config.rgb_disable_underglow = 1; + } else if ( (!user_config.rgb_disable_perkey) && user_config.rgb_disable_underglow ) { + user_config.rgb_disable_perkey = 1; + } else { + user_config.rgb_disable_perkey = 0; + user_config.rgb_disable_underglow = 0; + } + id87_update_rgb_mode(); + } + return false; + + case RGB_TPK: + if (record->event.pressed) { + user_config.rgb_disable_perkey ^= 1; + id87_update_rgb_mode(); + } + return false; + + case RGB_TUG: + if (record->event.pressed) { + user_config.rgb_disable_underglow ^= 1; + id87_update_rgb_mode(); + } + return false; + + case EE_CLR: + if (!record->event.pressed) { // on release + id87_get_rgb_mode(); + } + return true; // let this one pass on + + #endif // RGB_MATRIX_ENABLE + + // print firmware version + case KB_VRSN: + if (!get_mods()) { + if (!record->event.pressed) { + SEND_STRING(QMK_KEYBOARD ":" QMK_KEYMAP " (v" QMK_VERSION ")"); + } + } + return false; + + // @see: https://github.com/qmk/qmk_firmware/issues/10111#issuecomment-752300353 + case KC_MCON: + if (record->event.pressed) { + host_consumer_send(_AC_SHOW_ALL_WINDOWS); + } else { + host_consumer_send(0); + } + return false; + + case KC_LPAD: + if (record->event.pressed) { + host_consumer_send(_AC_SHOW_ALL_APPS); + } else { + host_consumer_send(0); + } + return false; + + default: + return true; /* Process all other keycodes normally */ + } +} diff --git a/keyboards/idobao/id87/v2/keymaps/idobao/rules.mk b/keyboards/idobao/id87/v2/keymaps/idobao/rules.mk new file mode 100644 index 0000000000..974ef99660 --- /dev/null +++ b/keyboards/idobao/id87/v2/keymaps/idobao/rules.mk @@ -0,0 +1,3 @@ + +LTO_ENABLE = yes +VIA_ENABLE = yes diff --git a/keyboards/idobao/id87/v2/keymaps/via/config.h b/keyboards/idobao/id87/v2/keymaps/via/config.h new file mode 100644 index 0000000000..a1612e6e32 --- /dev/null +++ b/keyboards/idobao/id87/v2/keymaps/via/config.h @@ -0,0 +1,4 @@ +// Copyright 2022 Vino Rodrigues (@vinorodrigues) +// SPDX-License-Identifier: GPL-2.0-or-later + +#define DYNAMIC_KEYMAP_LAYER_COUNT 3 diff --git a/keyboards/idobao/id87/v2/keymaps/via/keymap.c b/keyboards/idobao/id87/v2/keymaps/via/keymap.c index e71a924bfd..15e909c7e7 100644 --- a/keyboards/idobao/id87/v2/keymaps/via/keymap.c +++ b/keyboards/idobao/id87/v2/keymaps/via/keymap.c @@ -1,50 +1,81 @@ -/* -Copyright 2020 Tybera -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ +// Copyright 2022 Vino Rodrigues (@vinorodrigues) +// SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_tkl_ansi( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, LT(1, KC_APP), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + /* + * βββββ βββββ¬ββββ¬ββββ¬ββββ βββββ¬ββββ¬ββββ¬ββββ βββββ¬ββββ¬ββββ¬ββββ βββββ¬ββββ¬ββββ + * β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 β + * ββββββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄βββββββββ€ βββββ + * β Shift β Z β X β C β V β B β N β M β , β . β / β Shift β β β β + * ββββββ¬ββββ΄β¬βββ΄ββ¬ββ΄ββββ΄ββββ΄ββββ΄ββββ΄ββββ΄βββ¬β΄ββββΌββββ΄β¬βββββ¬βββββ€ βββββΌββββΌββββ + * βCtrlβGUI βAlt β β Altβ GUIβMO(1βCtrlβ β β β β β β β + * ββββββ΄βββββ΄βββββ΄βββββββββββββββββββββββββ΄βββββ΄βββββ΄βββββ΄βββββ βββββ΄ββββ΄ββββ + */ + [0] = LAYOUT_tkl_ansi( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), + + /* + * βββββ βββββ¬ββββ¬ββββ¬ββββ βββββ¬ββββ¬ββββ¬ββββ βββββ¬ββββ¬ββββ¬ββββ βββββ¬ββββ¬ββββ + * βRstβ β β β β β β β β β β β β β β β β β β β + * βββββ βββββ΄ββββ΄ββββ΄ββββ βββββ΄ββββ΄ββββ΄ββββ βββββ΄ββββ΄ββββ΄ββββ βββββ΄ββββ΄ββββ + * βββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββββββ βββββ¬ββββ¬ββββ + * β β β β β β β β β β β β β β β β βHu+β β + * βββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββββββ€ βββββΌββββΌββββ€ + * β βTogβModβ β β β β β β β β β β β βSt-βHu-βSt+β + * βββββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄ββββββ€ βββββ΄ββββ΄ββββ + * β β βmodβ β β β β β β β β β β + * ββββββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄βββββββββ€ βββββ + * β β β β β β βNROβ β β β β MO(2) β βBr+β + * ββββββ¬ββββ΄β¬βββ΄ββ¬ββ΄ββββ΄ββββ΄ββββ΄ββββ΄ββββ΄βββ¬β΄ββββΌββββ΄β¬βββββ¬βββββ€ βββββΌββββΌββββ + * β β β β β β β β β βSp-βBr-βSp+β + * ββββββ΄βββββ΄βββββ΄βββββββββββββββββββββββββ΄βββββ΄βββββ΄βββββ΄βββββ βββββ΄ββββ΄ββββ + */ [1] = LAYOUT_tkl_ansi( - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, _______, - _______, BL_TOGG, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, RGB_SAI, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, BL_INC, - _______, _______, _______, _______, _______, _______, _______, _______, BL_INC, BL_DEC, RGB_MOD + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, _______, + _______, RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_HUD, RGB_SAI, + _______, _______, RGB_RMOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, MO(2), RGB_VAI, + _______, _______, _______, _______, _______, KC_APP, _______, _______, RGB_SPD, RGB_VAD, RGB_SPI ), - [2] = LAYOUT_tkl_ansi( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - [3] = LAYOUT_tkl_ansi( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), + + /* + * βββββ βββββ¬ββββ¬ββββ¬ββββ βββββ¬ββββ¬ββββ¬ββββ βββββ¬ββββ¬ββββ¬ββββ βββββ¬ββββ¬ββββ + * β β β β β β β β β β β β β β β β β β β β β + * βββββ βββββ΄ββββ΄ββββ΄ββββ βββββ΄ββββ΄ββββ΄ββββ βββββ΄ββββ΄ββββ΄ββββ βββββ΄ββββ΄ββββ + * βββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββββββ βββββ¬ββββ¬ββββ + * βM00βM01βM02βM03βM04βM05βM06βM07βM08βM09βM10β β β β β β β β + * βββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββββββ€ βββββΌββββΌββββ€ + * β βM11βM12βM13βM14βM15βM16β β β β β β β β β β β β + * βββββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄ββββββ€ βββββ΄ββββ΄ββββ + * β β β β β β β β β β β β β β + * ββββββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄βββββββββ€ βββββ + * β β β β β β β β β β β β β β β + * ββββββ¬ββββ΄β¬βββ΄ββ¬ββ΄ββββ΄ββββ΄ββββ΄ββββ΄ββββ΄βββ¬β΄ββββΌββββ΄β¬βββββ¬βββββ€ βββββΌββββΌββββ + * β β β β β β β β β β β β β + * ββββββ΄βββββ΄βββββ΄βββββββββββββββββββββββββ΄βββββ΄βββββ΄βββββ΄βββββ βββββ΄ββββ΄ββββ + */ + [2] = LAYOUT_tkl_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + MACRO00, MACRO01, MACRO02, MACRO03, MACRO04, MACRO05, MACRO06, MACRO07, MACRO08, MACRO09, MACRO10, _______, _______, _______, _______, _______, _______, + _______, MACRO11, MACRO12, MACRO13, MACRO14, MACRO15, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) }; diff --git a/keyboards/idobao/id87/v2/keymaps/via/rules.mk b/keyboards/idobao/id87/v2/keymaps/via/rules.mk index ca9fed0e6b..974ef99660 100644 --- a/keyboards/idobao/id87/v2/keymaps/via/rules.mk +++ b/keyboards/idobao/id87/v2/keymaps/via/rules.mk @@ -1,2 +1,3 @@ + LTO_ENABLE = yes VIA_ENABLE = yes diff --git a/keyboards/idobao/id87/v2/readme.md b/keyboards/idobao/id87/v2/readme.md index 06a3f2c08a..e779ad67d1 100644 --- a/keyboards/idobao/id87/v2/readme.md +++ b/keyboards/idobao/id87/v2/readme.md @@ -1,12 +1,24 @@ -# ID87 v2 +# IDOBAO ID87 v2 -![ID87 v2](https://i.imgur.com/woTSycN.jpg) +![IDOBAO ID87](https://i.imgur.com/LIpWjog.png) -A TKL keyboard with hotswap sockets and in switch RGB. +A TKL hotswap board from IDOBAO. -* Keyboard Maintainer: [peepeetee](https://github.com/peepeetee) -* Hardware Supported: ID87 v2 -* Hardware Availability: [Drop](https://drop.com/buy/idobao-id87-v2-tkl-mechanical-keyboard-kit), [idobao](https://idobao.net/products/idobao-id87-v2-tkl-pcb-mounted-hot-swappable-mechanical-keyboard-kit) +## ANSI Support + +* Keyboard Maintainer: [Vino Rodrigues](https://github.com/vinorodrigues) +* Hardware Supported: + - **IDOBAO ID87v2** + - **IDOBAO ID87 Crystal** + - **IDOBAO ID87 Bestype** + - **IDOBAO ID87 Charm** *(Limited Edition)* +* Hardware Availability: [IDOBAO.net](https://idobao.net/search?type=product&q=ID87*) + +## ANSI Layout + +![](https://idobao.github.io/kle/idobao-id87.png) + +## Compiling & Flashing Make example for this keyboard (after setting up your build environment): @@ -22,6 +34,6 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to 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 +* **Bootmagic reset**: Hold down the [Escape] key *(the 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` *(default is [Fn]+[Escape])* diff --git a/keyboards/idobao/id87/v2/rules.mk b/keyboards/idobao/id87/v2/rules.mk index 1d519258e3..eab741fd0a 100644 --- a/keyboards/idobao/id87/v2/rules.mk +++ b/keyboards/idobao/id87/v2/rules.mk @@ -1,22 +1,5 @@ -# MCU name -MCU = atmega32u4 +# This file intentionally left blank +# ** settings are data driven & stored in `info.json` ** -# 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 = 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 - -LAYOUTS = tkl_ansi diff --git a/keyboards/idobao/id87/v2/v2.c b/keyboards/idobao/id87/v2/v2.c index 5bca630ca3..34f0a74669 100644 --- a/keyboards/idobao/id87/v2/v2.c +++ b/keyboards/idobao/id87/v2/v2.c @@ -1,45 +1,83 @@ -// Copyright 2022 peepeetee (@peepeetee) +// Copyright 2022 vinorodrigues (@vinorodrigues) // SPDX-License-Identifier: GPL-2.0-or-later #include "v2.h" -#ifdef RGB_MATRIX_ENABLE +#define __ NO_LED + +#if defined(RGB_MATRIX_ENABLE) + +/* Under-, Per-Key + * βββββ βββββ¬ββββ¬ββββ¬ββββ βββββ¬ββββ¬ββββ¬ββββ βββββ¬ββββ¬ββββ¬ββββ βββββ¬ββββ¬ββββ + * β102β β101β100β99 β98 β β97 β96 β95 β94 β β93 β92 β91 β90 β β89 β88 β87 β + * βββββ βββββ΄ββββ΄ββββ΄ββββ βββββ΄ββββ΄ββββ΄ββββ βββββ΄ββββ΄ββββ΄ββββ βββββ΄ββββ΄ββββ + * βββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββββββ βββββ¬ββββ¬ββββ + * β70 β71 β72 β73 β74 β75 β76 β77 β78 β79 β80 β81 β82 β 83 β β84 β85 β86 β + * βββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββββββ€ βββββΌββββΌββββ€ + * β 69 β68 β67 β66 β65 β64 β63 β62 β61 β60 β59 β58 β57 β 56 β β55 β54 β53 β + * βββββββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄β¬βββ΄ββββββ€ βββββ΄ββββ΄ββββ + * β 40 β41 β42 β43 β44 β45 β46 β47 β48 β49 β50 β51 β 52 β + * ββββββββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄ββ¬ββ΄βββββββββ€ βββββ + * β 39 β38 β37 β36 β35 β34 β33 β32 β31 β30 β29 β 28 β β27 β + * ββββββ¬ββββ΄β¬βββ΄ββ¬ββ΄ββββ΄ββββ΄ββββ΄ββββ΄ββββ΄βββ¬β΄ββββΌββββ΄β¬βββββ¬βββββ€ βββββΌββββΌββββ + * β 16 β 17 β 18 β 19 β 20 β 21 β 22 β 23 β β24 β25 β26 β + * ββββββ΄βββββ΄βββββ΄βββββββββββββββββββββββββ΄βββββ΄βββββ΄βββββ΄βββββ βββββ΄ββββ΄ββββ + * + * Underglow (as seen from top) + * βββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ¬ββββ + * β14 β13 β12 β11 β10 β 9 β 8 β + * βββββΌββββ΄ββββ΄ββββ΄ββββ΄ββββΌββββ€ + * β15 β β 7 β + * βββββΌββββ¬ββββ¬ββββ¬ββββ¬ββββΌββββ€ + * β 0 β 1 β 2 β 3 β 4 β 5 β 6 β + * βββββ΄ββββ΄ββββ΄ββββ΄ββββ΄ββββ΄ββββ +*/ led_config_t g_led_config = { { // Key Matrix to LED Index - { 102, NO_LED, 101, 100, 99, 98, 97, 96, 95 }, //0 - { 70, 71, 72, 73, 74, 75, 76, 77, 78 }, //1 - { 69, 68, 67, 66, 65, 64, 63, 62, 61 }, //2 - { 40, 41, 42, 43, 44, 45, 46, 47, 48 }, //3 - { 39, NO_LED, 38, 37, 36, 35, 34, 33, 32 }, //4 - { 16, 17, 18, 23, 22, NO_LED, 19, 21, 20 }, //5 - { NO_LED, 87, 88, 90, 91, 92, 89, 93, 94 }, //6 - { 80, 86, 85, 83, NO_LED, 82, 84, 81, 79 }, //7 - { NO_LED, 53, 54, 56, 57, 58, 55, 59, 60 }, //8 - { NO_LED, NO_LED, 27, 52, NO_LED, 51, NO_LED, 50, 49 }, //9 - { NO_LED, 26, 25, NO_LED, 28, 29, 24, 30, 31 } //A + // partially generated from: https://xelus.netlify.app/guides/KLE_to_RGB_parser & CSV Excel formula + + { 102, __, 101, 100, 99, 98, 97, 96, 95 }, + { 70, 71, 72, 73, 74, 75, 76, 77, 78 }, + { 69, 68, 67, 66, 65, 64, 63, 62, 61 }, + { 40, 41, 42, 43, 44, 45, 46, 47, 48 }, + { 39, __, 38, 37, 36, 35, 34, 33, 32 }, + { 16, 17, 18, 23, 22, __, 19, 21, 20 }, + { __, 87, 88, 90, 91, 92, 89, 93, 94 }, + { 80, 86, 85, 83, __, 82, 84, 81, 79 }, + { __, 53, 54, 56, 57, 58, 55, 59, 60 }, + { __, __, 27, 52, __, 51, __, 50, 49 }, + { __, 26, 25, __, 28, 29, 24, 30, 31 } }, { // LED Index to Physical Position - { 13, 51 },{ 40, 51},{ 73, 51},{ 108, 51},{ 141, 51},{ 174, 51},{ 207, 51}, - { 207, 32}, - { 207, 13},{ 174, 13},{ 141, 13},{ 108, 13},{ 73, 13},{ 40, 13},{ 13, 13}, - { 13, 32}, - -{ 8, 59 }, { 23, 59 }, { 38, 59 }, { 83, 59 }, { 129, 59 }, { 144, 59 }, { 159, 59 }, { 174, 59 }, { 193, 59 }, { 205, 59 }, { 217, 59 }, -{ 205, 49 }, { 165, 49 }, { 142, 49 }, { 130, 49 }, { 118, 49 }, { 106, 49 }, { 94, 49 }, { 82, 49 }, { 70, 49 }, { 58, 49 }, { 46, 49 }, { 34, 49 }, { 14, 49 }, -{ 11, 39 }, { 28, 39 }, { 40, 39 }, { 52, 39 }, { 64, 39 }, { 76, 39 }, { 88, 39 }, { 100, 39 }, { 112, 39 }, { 124, 39 }, { 136, 39 }, { 148, 39 }, { 168, 39 }, -{ 217, 30 }, { 205, 30 }, { 193, 30 }, { 172, 30 }, { 157, 30 }, { 145, 30 }, { 133, 30 }, { 121, 30 }, { 109, 30 }, { 97, 30 }, { 85, 30 }, { 73, 30 }, { 61, 30 }, { 49, 30 }, { 37, 30 }, { 25, 30 }, { 10, 30 }, -{ 7, 20 }, { 19, 20 }, { 31, 20 }, { 43, 20 }, { 55, 20 }, { 67, 20 }, { 79, 20 }, { 91, 20 }, { 103, 20 }, { 115, 20 }, { 127, 20 }, { 139, 20 }, { 151, 20 }, { 169, 20 }, { 193, 20 }, { 205, 20 }, { 217, 20 }, -{ 217, 5 }, { 205, 5 }, { 193, 5 }, { 175, 5 }, { 163, 5 }, { 151, 5 }, { 139, 5 }, { 121, 5 }, { 109, 5 }, { 97, 5 }, { 85, 5 }, { 67, 5 }, { 55, 5 }, { 43, 5 }, { 31, 5 },{ 7, 5 }, + // generated from: https://xelus.netlify.app/guides/KLE_to_RGB_parser + // underglow + /* colors are pushed to the edge as only the edges can be seen */ + { 0,64 }, { 37,64 }, { 75,64 }, {112,64 }, {149,64 }, {187,64 }, {224,64 }, + {224,32 }, + {224,0 }, {187,0 }, {149,0 }, {112,0 }, { 75,0 }, { 37,0 }, { 0,0 }, + { 0,32 }, + // under-, per-key + /* pattern is complex; starts at btm-lft, zig-zags up, and ends top-lft */ + { 2,64 }, { 18,64 }, { 34,64 }, { 83,64 }, {131,64 }, {148,64 }, {164,64 }, {180,64 }, {198,64 }, {211,64 }, {224,64 }, // lf-2-rt, btm + {211,52 }, {170,52 }, {146,52 }, {133,52 }, {120,52 }, {107,52 }, { 94,52 }, { 81,52 }, { 68,52 }, { 55,52 }, { 42,52 }, { 29,52 }, { 8,52 }, // rt-2-lf** + { 5,40 }, { 23,40 }, { 36,40 }, { 49,40 }, { 62,40 }, { 75,40 }, { 88,40 }, {101,40 }, {114,40 }, {127,40 }, {140,40 }, {153,40 }, {174,40 }, // lf-2-rt + {224,27 }, {211,27 }, {198,27 }, {179,27 }, {162,27 }, {149,27 }, {136,27 }, {123,27 }, {110,27 }, { 97,27 }, { 84,27 }, { 71,27 }, { 58,27 }, { 45,27 }, { 32,27 }, { 19,27 }, { 3,27 }, // rt-2-lf** + { 0,15 }, { 13,15 }, { 26,15 }, { 39,15 }, { 52,15 }, { 65,15 }, { 78,15 }, { 91,15 }, {104,15 }, {117,15 }, {130,15 }, {143,15 }, {156,15 }, {175,15 }, {198,15 }, {211,15 }, {224,15 }, // lf-2-rt + {224,0 }, {211,0 }, {198,0 }, {182,0 }, {169,0 }, {156,0 }, {143,0 }, {123,0 }, {110,0 }, { 97,0 }, { 84,0 }, { 65,0 }, { 52,0 }, { 39,0 }, { 26,0 }, { 0,0 }, // rt-2-lf**, top }, { // LED Index to Flag -2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, - -1,1,1,4,1,1,1,1,1,1,1, -1,1,4,4,4,4,4,4,4,4,4,4,1, -9,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, -4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1, -1,9,1,4,4,4,4,1,1,1,1,4,4,4,4,1 + // underglow + 2, 2, 2, 2, 2, 2, 2, + 2, + 2, 2, 2, 2, 2, 2, 2, + 2, + // under-, per-key + 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 1, 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, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } }; -#endif +#endif // RGB_MATRIX_ENABLE diff --git a/keyboards/idobao/id87/v2/v2.h b/keyboards/idobao/id87/v2/v2.h index 1a75d95755..38b3c9dfda 100644 --- a/keyboards/idobao/id87/v2/v2.h +++ b/keyboards/idobao/id87/v2/v2.h @@ -1,40 +1,6 @@ -/* -Copyright 2020 Tybera -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ +// Copyright 2022 vinorodrigues (@vinorodrigues) +// SPDX-License-Identifier: GPL-2.0-or-later #pragma once #include "quantum.h" - -#define LAYOUT_tkl_ansi( \ - K00, K02, K03, K04, K05, K06, K07, K08, K68, K67, K65, K64, K63, K66, K62, K61, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K78, K70, K77, K75, K73, K76, K72, K71, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K88, K87, K85, K84, K83, K86, K82, K81, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K98, K97, K95, K93, \ - K40, K42, K43, K44, K45, K46, K47, K48, KA8, KA7, KA5, KA4, K92, \ - K50, K51, K52, K56, K58, K57, K54, K53, KA6, KA2, KA1 \ -) { \ - { K00, KC_NO, K02, K03, K04, K05, K06, K07, K08 }, \ - { K10, K11, K12, K13, K14, K15, K16, K17, K18 }, \ - { K20, K21, K22, K23, K24, K25, K26, K27, K28 }, \ - { K30, K31, K32, K33, K34, K35, K36, K37, K38 }, \ - { K40, KC_NO, K42, K43, K44, K45, K46, K47, K48 }, \ - { K50, K51, K52, K53, K54, KC_NO, K56, K57, K58 }, \ - { KC_NO, K61, K62, K63, K64, K65, K66, K67, K68 }, \ - { K70, K71, K72, K73, KC_NO, K75, K76, K77, K78 }, \ - { KC_NO, K81, K82, K83, K84, K85, K86, K87, K88 }, \ - { KC_NO, KC_NO, K92, K93, KC_NO, K95, KC_NO, K97, K98 }, \ - { KC_NO, KA1, KA2, KC_NO, KA4, KA5, KA6, KA7, KA8 }, \ -} - - diff --git a/keyboards/idobao/id96/config.h b/keyboards/idobao/id96/config.h index 6bf1f14c43..444464019b 100644 --- a/keyboards/idobao/id96/config.h +++ b/keyboards/idobao/id96/config.h @@ -20,13 +20,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6964 // "id" -#define PRODUCT_ID 0x0096 -#define DEVICE_VER 0x0001 -#define MANUFACTURER IDOBAO -#define PRODUCT ID96 - /* key matrix size */ #define MATRIX_ROWS 12 #define MATRIX_COLS 9 @@ -34,7 +27,6 @@ /* key matrix pins */ #define MATRIX_ROW_PINS { B7, B3, B2, B1, B0, E6, F0, F1, F4, F5, F6, F7 } #define MATRIX_COL_PINS { D0, D1, D2, D3, D5, D4, D6, D7, B4 } -#define UNUSED_PINS /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION ROW2COL diff --git a/keyboards/idobao/id96/info.json b/keyboards/idobao/id96/info.json index f972af64a2..0732bce154 100644 --- a/keyboards/idobao/id96/info.json +++ b/keyboards/idobao/id96/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "id96", + "keyboard_name": "ID96", + "manufacturer": "IDOBAO", "url": "https://www.idobao.net/collections/90/products/idobao-id96-aluminum-keyboard-kit", "maintainer": "vinorodrigues", + "usb": { + "vid": "0x6964", + "pid": "0x0096", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/idobao/id96/readme.md b/keyboards/idobao/id96/readme.md index 01c42b4e73..e9cbed5270 100644 --- a/keyboards/idobao/id96/readme.md +++ b/keyboards/idobao/id96/readme.md @@ -24,4 +24,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/idobao/montex/v1/config.h b/keyboards/idobao/montex/v1/config.h index 2321ce364e..fe1ea61d35 100644 --- a/keyboards/idobao/montex/v1/config.h +++ b/keyboards/idobao/montex/v1/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6964 -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Idobao -#define PRODUCT Montex - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 5 @@ -32,7 +25,6 @@ /* key matrix pins */ #define MATRIX_ROW_PINS { D4, D6, D7, B4, B5, C6 } #define MATRIX_COL_PINS { D5, D3, D2, D1, D0 } -#define UNUSED_PINS /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION ROW2COL @@ -52,13 +44,22 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - - #define RGB_DI_PIN B1 #ifdef RGB_DI_PIN -#define RGBLIGHT_ANIMATIONS -#define RGBLED_NUM 4 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 + // RGBLIGHT_ANIMATIONS + #define RGBLIGHT_EFFECT_ALTERNATING + #define RGBLIGHT_EFFECT_BREATHING + #define RGBLIGHT_EFFECT_CHRISTMAS + #define RGBLIGHT_EFFECT_KNIGHT + #define RGBLIGHT_EFFECT_RAINBOW_MOOD + #define RGBLIGHT_EFFECT_RAINBOW_SWIRL + #define RGBLIGHT_EFFECT_RGB_TEST + #define RGBLIGHT_EFFECT_SNAKE + #define RGBLIGHT_EFFECT_STATIC_GRADIENT + #define RGBLIGHT_EFFECT_TWINKLE + + #define RGBLED_NUM 4 + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 #endif diff --git a/keyboards/idobao/montex/v1/info.json b/keyboards/idobao/montex/v1/info.json index c205e0027a..f683456174 100644 --- a/keyboards/idobao/montex/v1/info.json +++ b/keyboards/idobao/montex/v1/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "montex numpad", + "keyboard_name": "Montex", + "manufacturer": "IDOBAO", "url": "https://www.idobao.net/products/ldobao-montex-pad-hot-swappable-mechanical-keyboard-kit", "maintainer": "NachoxMacho", + "usb": { + "vid": "0x6964", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_numpad_6x5": { "layout": [ diff --git a/keyboards/idobao/montex/v1rgb/config.h b/keyboards/idobao/montex/v1rgb/config.h index 609aeb417e..670b43462b 100755 --- a/keyboards/idobao/montex/v1rgb/config.h +++ b/keyboards/idobao/montex/v1rgb/config.h @@ -5,13 +5,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6964 // "id" -#define PRODUCT_ID 0x0127 -#define DEVICE_VER 0x0001 -#define MANUFACTURER IDOBAO -#define PRODUCT Montex RGB - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 5 diff --git a/keyboards/idobao/montex/v1rgb/info.json b/keyboards/idobao/montex/v1rgb/info.json index 27144e499c..9001a3dfec 100755 --- a/keyboards/idobao/montex/v1rgb/info.json +++ b/keyboards/idobao/montex/v1rgb/info.json @@ -1,5 +1,11 @@ { - "keyboard_name": "IDOBAO MONTEX RGB", + "keyboard_name": "Montex RGB", + "manufacturer": "IDOBAO", + "usb": { + "vid": "0x6964", + "pid": "0x0127", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_numpad_6x5": { "layout": [ diff --git a/keyboards/idobao/montex/v1rgb/readme.md b/keyboards/idobao/montex/v1rgb/readme.md index 296f05f239..8066c2193d 100755 --- a/keyboards/idobao/montex/v1rgb/readme.md +++ b/keyboards/idobao/montex/v1rgb/readme.md @@ -27,4 +27,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or [Esc]) and plug in the keyboard * **Physical reset button**: Briefly press the button on the back of the PCB -* **Keycode in layout**: Press the key mapped to `RESET` if it is available +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/idobao/montex/v2/config.h b/keyboards/idobao/montex/v2/config.h index 47d43ca458..98ba567203 100755 --- a/keyboards/idobao/montex/v2/config.h +++ b/keyboards/idobao/montex/v2/config.h @@ -15,7 +15,6 @@ #define DRIVER_LED_TOTAL 27 // -4 disabled underglow LEDs #endif - // #define RGBLIGHT_ANIMATIONS // don't use, please explicitly define // #define RGB_MATRIX_FRAMEBUFFER_EFFECTS // don't use, too few key to make it look good #define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/idobao/montex/v2/readme.md b/keyboards/idobao/montex/v2/readme.md index 793507b8f1..63808c0a50 100755 --- a/keyboards/idobao/montex/v2/readme.md +++ b/keyboards/idobao/montex/v2/readme.md @@ -38,4 +38,4 @@ 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 `RESET` if it is available +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available |