From 42eff8c3726517304ad479f3e760dc34428b4f9f Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 18 Jul 2022 11:55:27 +0100 Subject: [PATCH 1/7] Allow dynamic keymap to compile without via.h (#17703) --- quantum/dynamic_keymap.c | 15 ++++++++------- quantum/via.h | 2 ++ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/quantum/dynamic_keymap.c b/quantum/dynamic_keymap.c index cbe9f13940d..e80dd6d534e 100644 --- a/quantum/dynamic_keymap.c +++ b/quantum/dynamic_keymap.c @@ -19,7 +19,13 @@ #include "progmem.h" // to read default from flash #include "quantum.h" // for send_string() #include "dynamic_keymap.h" -#include "via.h" // for default VIA_EEPROM_ADDR_END + +#ifdef VIA_ENABLE +# include "via.h" // for VIA_EEPROM_CONFIG_END +# define DYNAMIC_KEYMAP_EEPROM_START (VIA_EEPROM_CONFIG_END) +#else +# define DYNAMIC_KEYMAP_EEPROM_START (EECONFIG_SIZE) +#endif #ifdef ENCODER_ENABLE # include "encoder.h" @@ -55,13 +61,8 @@ #endif // If DYNAMIC_KEYMAP_EEPROM_ADDR not explicitly defined in config.h, -// default it start after VIA_EEPROM_CUSTOM_ADDR+VIA_EEPROM_CUSTOM_SIZE #ifndef DYNAMIC_KEYMAP_EEPROM_ADDR -# ifdef VIA_EEPROM_CUSTOM_CONFIG_ADDR -# define DYNAMIC_KEYMAP_EEPROM_ADDR (VIA_EEPROM_CUSTOM_CONFIG_ADDR + VIA_EEPROM_CUSTOM_CONFIG_SIZE) -# else -# error DYNAMIC_KEYMAP_EEPROM_ADDR not defined -# endif +# define DYNAMIC_KEYMAP_EEPROM_ADDR DYNAMIC_KEYMAP_EEPROM_START #endif // Dynamic encoders starts after dynamic keymaps diff --git a/quantum/via.h b/quantum/via.h index ac29a589023..31d9c21af4a 100644 --- a/quantum/via.h +++ b/quantum/via.h @@ -54,6 +54,8 @@ # define VIA_EEPROM_CUSTOM_CONFIG_SIZE 0 #endif +#define VIA_EEPROM_CONFIG_END (VIA_EEPROM_CUSTOM_CONFIG_ADDR + VIA_EEPROM_CUSTOM_CONFIG_SIZE) + // This is changed only when the command IDs change, // so VIA Configurator can detect compatible firmware. #define VIA_PROTOCOL_VERSION 0x0009 From 4be736c192883a2e5b1185734eec25d0e1955f83 Mon Sep 17 00:00:00 2001 From: Runheme <95535123+Runheme@users.noreply.github.com> Date: Mon, 18 Jul 2022 20:18:08 +0800 Subject: [PATCH 2/7] [Keyboard]modify ginkgo65hot (#17705) modify ginkgo65hot --- keyboards/mokey/ginkgo65hot/config.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/mokey/ginkgo65hot/config.h b/keyboards/mokey/ginkgo65hot/config.h index 5b73c4dc986..28302274907 100644 --- a/keyboards/mokey/ginkgo65hot/config.h +++ b/keyboards/mokey/ginkgo65hot/config.h @@ -26,8 +26,8 @@ along with this program. If not, see . #define MATRIX_ROWS 5 #define MATRIX_COLS 15 -#define MATRIX_ROW_PINS { F7, B7, F5, F1, B0 } -#define MATRIX_COL_PINS { C7, F6, B2, F4, B3, E6, D0, D1, D2, D3, D5, D4, D6, D7, B4 } +#define MATRIX_ROW_PINS { B0, B1, B2, B3, F7 } +#define MATRIX_COL_PINS { C7, F6, F5, F4, F1, E6, D0, D1, D2, D3, D5, D4, D6, D7, B4 } #define UNUSED_PINS #define DIODE_DIRECTION COL2ROW From c10d0fc785a8c8972bc129c6db03e26360eddd45 Mon Sep 17 00:00:00 2001 From: Jason Wihardja Date: Mon, 18 Jul 2022 19:20:19 +0700 Subject: [PATCH 3/7] Add Support for Massdrop's Stack Overflow The Key V2 (#17696) * Default Factory Settings * Change Keyboard Name in Readme * Fix LED Orders * Change Brightness Step * Enable Lighting Layers * Add RGB Control Mode * Unblink Layer to Clear Stack * Add MacOS RGB Control * Comment Fixes --- keyboards/massdrop/thekey_v2/config.h | 50 ++++++++ keyboards/massdrop/thekey_v2/info.json | 14 +++ .../thekey_v2/keymaps/default-macos/keymap.c | 23 ++++ .../thekey_v2/keymaps/default/keymap.c | 23 ++++ .../keymaps/rgb-control-macos/keymap.c | 109 ++++++++++++++++++ .../thekey_v2/keymaps/rgb-control/keymap.c | 109 ++++++++++++++++++ .../keymaps/url-copy-paste-macos/keymap.c | 39 +++++++ .../thekey_v2/keymaps/url-copy-paste/keymap.c | 40 +++++++ keyboards/massdrop/thekey_v2/readme.md | 38 ++++++ keyboards/massdrop/thekey_v2/rules.mk | 18 +++ keyboards/massdrop/thekey_v2/thekey_v2.c | 17 +++ keyboards/massdrop/thekey_v2/thekey_v2.h | 27 +++++ 12 files changed, 507 insertions(+) create mode 100644 keyboards/massdrop/thekey_v2/config.h create mode 100644 keyboards/massdrop/thekey_v2/info.json create mode 100644 keyboards/massdrop/thekey_v2/keymaps/default-macos/keymap.c create mode 100644 keyboards/massdrop/thekey_v2/keymaps/default/keymap.c create mode 100644 keyboards/massdrop/thekey_v2/keymaps/rgb-control-macos/keymap.c create mode 100644 keyboards/massdrop/thekey_v2/keymaps/rgb-control/keymap.c create mode 100644 keyboards/massdrop/thekey_v2/keymaps/url-copy-paste-macos/keymap.c create mode 100644 keyboards/massdrop/thekey_v2/keymaps/url-copy-paste/keymap.c create mode 100644 keyboards/massdrop/thekey_v2/readme.md create mode 100644 keyboards/massdrop/thekey_v2/rules.mk create mode 100644 keyboards/massdrop/thekey_v2/thekey_v2.c create mode 100644 keyboards/massdrop/thekey_v2/thekey_v2.h diff --git a/keyboards/massdrop/thekey_v2/config.h b/keyboards/massdrop/thekey_v2/config.h new file mode 100644 index 00000000000..9b6235998bd --- /dev/null +++ b/keyboards/massdrop/thekey_v2/config.h @@ -0,0 +1,50 @@ +/* Copyright 2022 Jason Wihardja + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0002 +#define MANUFACTURER Drop +#define PRODUCT The Key V2 + +/* key matrix size */ +#define MATRIX_ROWS 1 +#define MATRIX_COLS 3 + +/* + * Keyboard Matrix Assignments + */ +#define MATRIX_ROW_PINS { D4 } +#define MATRIX_COL_PINS { D2, D1, D0 } + +#define DIODE_DIRECTION ROW2COL + +#define RGB_DI_PIN B1 +#define RGBLED_NUM 5 +#define RGBLIGHT_LED_MAP {4, 0, 1, 2, 3} +#define RGBLIGHT_ANIMATIONS +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 10 +#define RGBLIGHT_VAL_STEP 15 +#define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ +#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +#define RGBLIGHT_LAYERS /* Enable lighting layers */ +#define RGBLIGHT_LAYER_BLINK /* Enable lighting layer blink */ diff --git a/keyboards/massdrop/thekey_v2/info.json b/keyboards/massdrop/thekey_v2/info.json new file mode 100644 index 00000000000..7167d5cf6d3 --- /dev/null +++ b/keyboards/massdrop/thekey_v2/info.json @@ -0,0 +1,14 @@ +{ + "keyboard_name": "The Key V2", + "url": "https://drop.com/buy/stack-overflow-the-key-v2-macropad", + "maintainer": "massdrop", + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "K00 (D4,D2)", "x": 0, "y": 0 }, + { "label": "K01 (D4,D1)", "x": 1, "y": 0 }, + { "label": "K02 (D4,D0)", "x": 2, "y": 0 } + ] + } + } +} diff --git a/keyboards/massdrop/thekey_v2/keymaps/default-macos/keymap.c b/keyboards/massdrop/thekey_v2/keymaps/default-macos/keymap.c new file mode 100644 index 00000000000..fb45d5e2243 --- /dev/null +++ b/keyboards/massdrop/thekey_v2/keymaps/default-macos/keymap.c @@ -0,0 +1,23 @@ +/* Copyright 2022 Jason Wihardja + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT(KC_LGUI, KC_C, KC_V), + +}; diff --git a/keyboards/massdrop/thekey_v2/keymaps/default/keymap.c b/keyboards/massdrop/thekey_v2/keymaps/default/keymap.c new file mode 100644 index 00000000000..5e1de6068be --- /dev/null +++ b/keyboards/massdrop/thekey_v2/keymaps/default/keymap.c @@ -0,0 +1,23 @@ +/* Copyright 2022 Jason Wihardja + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT(KC_LCTL, KC_C, KC_V), + +}; diff --git a/keyboards/massdrop/thekey_v2/keymaps/rgb-control-macos/keymap.c b/keyboards/massdrop/thekey_v2/keymaps/rgb-control-macos/keymap.c new file mode 100644 index 00000000000..f3699e752fe --- /dev/null +++ b/keyboards/massdrop/thekey_v2/keymaps/rgb-control-macos/keymap.c @@ -0,0 +1,109 @@ +/* Copyright 2022 Jason Wihardja + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum custom_keycodes { + LAYER_SWITCH = SAFE_RANGE, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Default */ + [0] = LAYOUT(LAYER_SWITCH, G(KC_C), G(KC_V)), + + /* RGB Toggle + Mode Change */ + [1] = LAYOUT(LAYER_SWITCH, RGB_TOG, RGB_MOD), + + /* RGB Brightness */ + [2] = LAYOUT(LAYER_SWITCH, RGB_VAD, RGB_VAI), + + /* RGB Hue */ + [3] = LAYOUT(LAYER_SWITCH, RGB_HUD, RGB_HUI), + + /* RGB Saturation */ + [4] = LAYOUT(LAYER_SWITCH, RGB_SAD, RGB_SAI), + +}; + +/* Lighting layers */ + +const rgblight_segment_t PROGMEM layer_indicator_0[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 1, HSV_WHITE}, + {1, 4, HSV_OFF} +); + +const rgblight_segment_t PROGMEM layer_indicator_1[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 1, HSV_OFF}, + {1, 1, HSV_WHITE}, + {2, 3, HSV_OFF} +); + +const rgblight_segment_t PROGMEM layer_indicator_2[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 2, HSV_OFF}, + {2, 1, HSV_WHITE}, + {3, 2, HSV_OFF} +); + +const rgblight_segment_t PROGMEM layer_indicator_3[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 3, HSV_OFF}, + {3, 1, HSV_WHITE}, + {4, 1, HSV_OFF} +); + +const rgblight_segment_t PROGMEM layer_indicator_4[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 4, HSV_OFF}, + {4, 1, HSV_WHITE} +); + +const rgblight_segment_t* const PROGMEM rgb_layers[] = RGBLIGHT_LAYERS_LIST( + layer_indicator_0, + layer_indicator_1, + layer_indicator_2, + layer_indicator_3, + layer_indicator_4 +); + +void keyboard_post_init_user(void) { + /* Enable the LED layers */ + rgblight_layers = rgb_layers; +} + +/* Layer handler */ + +uint16_t layer = 0; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case LAYER_SWITCH: + if (record->event.pressed) { + if (layer > 0) { + layer_off(layer); + } + + rgblight_unblink_layer(layer); + layer = (layer + 1) % 5; + rgblight_blink_layer_repeat(layer, 1000, 1); + + if (layer > 0) { + layer_on(layer); + } + } + return false; + default: + return true; + } +} diff --git a/keyboards/massdrop/thekey_v2/keymaps/rgb-control/keymap.c b/keyboards/massdrop/thekey_v2/keymaps/rgb-control/keymap.c new file mode 100644 index 00000000000..42469736543 --- /dev/null +++ b/keyboards/massdrop/thekey_v2/keymaps/rgb-control/keymap.c @@ -0,0 +1,109 @@ +/* Copyright 2022 Jason Wihardja + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum custom_keycodes { + LAYER_SWITCH = SAFE_RANGE, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Default */ + [0] = LAYOUT(LAYER_SWITCH, C(KC_C), C(KC_V)), + + /* RGB Toggle + Mode Change */ + [1] = LAYOUT(LAYER_SWITCH, RGB_TOG, RGB_MOD), + + /* RGB Brightness */ + [2] = LAYOUT(LAYER_SWITCH, RGB_VAD, RGB_VAI), + + /* RGB Hue */ + [3] = LAYOUT(LAYER_SWITCH, RGB_HUD, RGB_HUI), + + /* RGB Saturation */ + [4] = LAYOUT(LAYER_SWITCH, RGB_SAD, RGB_SAI), + +}; + +/* Lighting layers */ + +const rgblight_segment_t PROGMEM layer_indicator_0[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 1, HSV_WHITE}, + {1, 4, HSV_OFF} +); + +const rgblight_segment_t PROGMEM layer_indicator_1[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 1, HSV_OFF}, + {1, 1, HSV_WHITE}, + {2, 3, HSV_OFF} +); + +const rgblight_segment_t PROGMEM layer_indicator_2[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 2, HSV_OFF}, + {2, 1, HSV_WHITE}, + {3, 2, HSV_OFF} +); + +const rgblight_segment_t PROGMEM layer_indicator_3[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 3, HSV_OFF}, + {3, 1, HSV_WHITE}, + {4, 1, HSV_OFF} +); + +const rgblight_segment_t PROGMEM layer_indicator_4[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 4, HSV_OFF}, + {4, 1, HSV_WHITE} +); + +const rgblight_segment_t* const PROGMEM rgb_layers[] = RGBLIGHT_LAYERS_LIST( + layer_indicator_0, + layer_indicator_1, + layer_indicator_2, + layer_indicator_3, + layer_indicator_4 +); + +void keyboard_post_init_user(void) { + /* Enable the LED layers */ + rgblight_layers = rgb_layers; +} + +/* Layer handler */ + +uint16_t layer = 0; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case LAYER_SWITCH: + if (record->event.pressed) { + if (layer > 0) { + layer_off(layer); + } + + rgblight_unblink_layer(layer); + layer = (layer + 1) % 5; + rgblight_blink_layer_repeat(layer, 1000, 1); + + if (layer > 0) { + layer_on(layer); + } + } + return false; + default: + return true; + } +} diff --git a/keyboards/massdrop/thekey_v2/keymaps/url-copy-paste-macos/keymap.c b/keyboards/massdrop/thekey_v2/keymaps/url-copy-paste-macos/keymap.c new file mode 100644 index 00000000000..33d19734bcc --- /dev/null +++ b/keyboards/massdrop/thekey_v2/keymaps/url-copy-paste-macos/keymap.c @@ -0,0 +1,39 @@ +/* Copyright 2022 Jason Wihardja + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum custom_keycodes { + TK_URL = SAFE_RANGE, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT(TK_URL, G(KC_C), G(KC_V)), +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case TK_URL: + if (record->event.pressed) { + // when keycode TK_URL is pressed + SEND_STRING("https://stackoverflow.com/\n"); + } + break; + default: + break; + } + return true; +} diff --git a/keyboards/massdrop/thekey_v2/keymaps/url-copy-paste/keymap.c b/keyboards/massdrop/thekey_v2/keymaps/url-copy-paste/keymap.c new file mode 100644 index 00000000000..5becddfa2a5 --- /dev/null +++ b/keyboards/massdrop/thekey_v2/keymaps/url-copy-paste/keymap.c @@ -0,0 +1,40 @@ +/* Copyright 2022 Jason Wihardja + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum custom_keycodes { + TK_URL = SAFE_RANGE, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT(TK_URL, C(KC_C), C(KC_V)), +}; + + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case TK_URL: + if (record->event.pressed) { + // when keycode TK_URL is pressed + SEND_STRING("https://stackoverflow.com/"); + } + break; + default: + break; + } + return true; +} diff --git a/keyboards/massdrop/thekey_v2/readme.md b/keyboards/massdrop/thekey_v2/readme.md new file mode 100644 index 00000000000..ef4d6ec716e --- /dev/null +++ b/keyboards/massdrop/thekey_v2/readme.md @@ -0,0 +1,38 @@ +# The Key V2 + +![The Key V2](https://massdrop-s3.imgix.net/product-images/stack-overflow-the-key-v2-macropad/FP/vSqOp9eUQNGXW4zl3EVQ_7528-copy-pdp.jpg) + + +The Stack Overflow "The Key V2" is a 3 button macropad based on atmega32u4 with hot-swappble Kailh Black Box switches. + +> Last year, we brought Stack Overflow’s iconic April Fool’s joke to life. Advertised as the new (and only) way to copy and paste on the site, it was an ultra-compact macropad called The Key. The punchline-turned product was a huge hit, selling over 10K units and earning a nearly 5-star average review. Now, we’re back with a second act: The Key V2. The same size as its portable predecessor, this punchline-turned-product has a few notable changes—including an acrylic case to accent its two built-in RGB LEDs. Plus, we made it hot-swappable, so you can easily change out the switches for a truly custom experience. And just like the original, a portion of all proceeds from The Key V2 will go to the data-driven social startup digitalundivided. + +Keyboard Maintainer: [Drop / Massdrop](https://github.com/Massdrop/qmk_firmware) + +Hardware Supported: Massdrop, Inc. **The Key V2** + +Hardware Availability: Limited Release - https://drop.com/buy/stack-overflow-the-key-v2-macropad + + +Make example for this keyboard (after setting up your build environment): +```bash +# default provided by Drop / Stack Overflow +make massdrop/thekey_v2:default +# common modification where C = CTRL+C, V = CTRL+V +make massdrop/thekey_v2:url-copy-paste +``` + +Flashing example for this keyboard: +```bash +# install in dfu mode +make massdrop/thekey_v2:default:dfu +``` + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). +Make example for this keyboard (after setting up your build environment): + +## Bootloader + +Enter the bootloader as follows: +* **Bootmagic reset**: Hold down the "Stack Overflow" key, the "left-most" or furthest from the USB plug while inserting the USB cable for a few seconds. The LEDs will **NOT** turn on. +* **Physical reset button**: Briefly press and hold the reset button while pluggin in the USB port. The LEDs on the back will **NOT** turn on. Depending on your case revision, you may have to remove the 4 screws on the back plate to access the switch OR you can use the associated access hole on newer releases. diff --git a/keyboards/massdrop/thekey_v2/rules.mk b/keyboards/massdrop/thekey_v2/rules.mk new file mode 100644 index 00000000000..a0a1e94e36d --- /dev/null +++ b/keyboards/massdrop/thekey_v2/rules.mk @@ -0,0 +1,18 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = no # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/massdrop/thekey_v2/thekey_v2.c b/keyboards/massdrop/thekey_v2/thekey_v2.c new file mode 100644 index 00000000000..b1a824d9d42 --- /dev/null +++ b/keyboards/massdrop/thekey_v2/thekey_v2.c @@ -0,0 +1,17 @@ +/* Copyright 2022 Jason Wihardja + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "thekey_v2.h" diff --git a/keyboards/massdrop/thekey_v2/thekey_v2.h b/keyboards/massdrop/thekey_v2/thekey_v2.h new file mode 100644 index 00000000000..c3b8e1a8ead --- /dev/null +++ b/keyboards/massdrop/thekey_v2/thekey_v2.h @@ -0,0 +1,27 @@ +/* Copyright 2022 Jason Wihardja + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define XXX KC_NO + +#define LAYOUT( \ + K00, K01, K02 \ +) { \ + { K00, K01, K02 }, \ +} From 627e35b7ac61e294c7c34a693d8191cded68136e Mon Sep 17 00:00:00 2001 From: Sergey Vlasov Date: Mon, 18 Jul 2022 22:52:55 +0300 Subject: [PATCH 4/7] Remove Nixpkgs-provided `poetry` from the environment (#17673) The `poetry` package from the used Nixpkgs snapshot triggers the regex compatibility issue in Nix >= 2.10.0 binaries for `x86_64-darwin`: https://www.github.com/NixOS/nix/issues/4758 Remove the `poetry` package from the Nix shell environment for now (it is not really required to compile QMK, only to develop the Nix shell environment itself). In addition, all `poetry` version earlier than 1.1.14 became effectively non-functional after a breaking change of the PyPI JSON API: https://www.github.com/python-poetry/poetry/pull/5973 Updating the `poetry` package is not trivial (just adding it it to `pyproject.toml` does not work due to dependency version conflicts with other modules), therefore removing it seems to be the easiest solution to restore compatibility with new Nix versions while not creating any major inconvenience for QMK users. --- shell.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shell.nix b/shell.nix index a96aa840def..7e3704d0101 100644 --- a/shell.nix +++ b/shell.nix @@ -48,7 +48,7 @@ in mkShell { name = "qmk-firmware"; - buildInputs = [ clang-tools dfu-programmer dfu-util diffutils git pythonEnv poetry niv ] + buildInputs = [ clang-tools dfu-programmer dfu-util diffutils git pythonEnv niv ] ++ lib.optional avr [ pkgsCross.avr.buildPackages.binutils pkgsCross.avr.buildPackages.gcc8 From c3f1ba7dd1673e28c852303c58eec876d38b6fed Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Tue, 19 Jul 2022 02:28:23 +0100 Subject: [PATCH 5/7] Remove full bootmagic config (#17702) --- keyboards/handwired/promethium/keymaps/priyadi/config.h | 6 ------ keyboards/keebio/nyquist/keymaps/danielhklein/config.h | 4 +--- keyboards/kprepublic/bm40hsrgb/keymaps/gabustoledo/config.h | 4 ---- keyboards/kprepublic/bm40hsrgb/keymaps/signynt/config.h | 4 ---- .../kprepublic/bm40hsrgb/keymaps/signynt_2_loud/config.h | 4 ---- .../kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/config.h | 4 ---- keyboards/kprepublic/jj50/keymaps/archetype/config.h | 1 - keyboards/planck/keymaps/priyadi/config.h | 6 ------ users/talljoe/config.h | 4 ---- users/tominabox1/config.h | 2 -- 10 files changed, 1 insertion(+), 38 deletions(-) diff --git a/keyboards/handwired/promethium/keymaps/priyadi/config.h b/keyboards/handwired/promethium/keymaps/priyadi/config.h index 0630fd43e38..1e5e8906ed9 100644 --- a/keyboards/handwired/promethium/keymaps/priyadi/config.h +++ b/keyboards/handwired/promethium/keymaps/priyadi/config.h @@ -2,12 +2,6 @@ #define PRIYADI_PROMETHIUM -/* bootmagic salt key */ -#define BOOTMAGIC_KEY_SALT KC_ESC - -/* skip bootmagic and eeconfig */ -#define BOOTMAGIC_KEY_SKIP KC_SPACE - #define RGBSPS_ENABLE #define RGBSPS_DEMO_ENABLE diff --git a/keyboards/keebio/nyquist/keymaps/danielhklein/config.h b/keyboards/keebio/nyquist/keymaps/danielhklein/config.h index 09abbccb727..398b285b897 100644 --- a/keyboards/keebio/nyquist/keymaps/danielhklein/config.h +++ b/keyboards/keebio/nyquist/keymaps/danielhklein/config.h @@ -14,13 +14,11 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ - +#pragma once #define TAPPING_TERM 150 #define USE_SERIAL #define EE_HANDS -#define BOOTMAGIC_KEY_SALT KC_ENT - #ifdef SUBPROJECT_rev1 #include "../../rev1/config.h" diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/gabustoledo/config.h b/keyboards/kprepublic/bm40hsrgb/keymaps/gabustoledo/config.h index b38e4b8fc67..ba18295eada 100644 --- a/keyboards/kprepublic/bm40hsrgb/keymaps/gabustoledo/config.h +++ b/keyboards/kprepublic/bm40hsrgb/keymaps/gabustoledo/config.h @@ -60,10 +60,6 @@ #define RGBLIGHT_LIMIT_VAL 10 -//bootmagic -#define BOOTMAGIC_KEY_SALT KC_V -#define BOOTMAGIC_KEY_EEPROM_CLEAR KC_Q - #ifdef RGB_MATRIX_ENABLE # undef ENABLE_RGB_MATRIX_ALPHAS_MODS diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt/config.h b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt/config.h index 2b0d0961c42..a88ae7f2e8c 100644 --- a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt/config.h +++ b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt/config.h @@ -25,10 +25,6 @@ //#define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS #define RGBLIGHT_LIMIT_VAL 10 -//bootmagic -#define BOOTMAGIC_KEY_SALT KC_V -#define BOOTMAGIC_KEY_EEPROM_CLEAR KC_Q - #ifdef RGB_MATRIX_ENABLE #define TAPPING_TERM 200 diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/config.h b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/config.h index d39f6b95c80..cdfa67acb06 100644 --- a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/config.h +++ b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/config.h @@ -25,10 +25,6 @@ //#define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS #define RGBLIGHT_LIMIT_VAL 10 -//bootmagic -#define BOOTMAGIC_KEY_SALT KC_V -#define BOOTMAGIC_KEY_EEPROM_CLEAR KC_Q - #ifdef RGB_MATRIX_ENABLE #define TAPPING_TERM 200 diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/config.h b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/config.h index a4634c581ee..dbadc3da997 100644 --- a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/config.h +++ b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/config.h @@ -25,10 +25,6 @@ //#define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS #define RGBLIGHT_LIMIT_VAL 10 -//bootmagic -#define BOOTMAGIC_KEY_SALT KC_V -#define BOOTMAGIC_KEY_EEPROM_CLEAR KC_Q - #ifdef RGB_MATRIX_ENABLE #define TAPPING_TERM 200 diff --git a/keyboards/kprepublic/jj50/keymaps/archetype/config.h b/keyboards/kprepublic/jj50/keymaps/archetype/config.h index 9604ac719c0..17ce95a3632 100644 --- a/keyboards/kprepublic/jj50/keymaps/archetype/config.h +++ b/keyboards/kprepublic/jj50/keymaps/archetype/config.h @@ -7,4 +7,3 @@ #define NO_AUTO_SHIFT_ALPHA #define TAPPING_TERM 150 #define TAPPING_TERM_PER_KEY -//#define BOOTMAGIC_KEY_SALT KC_LCTL diff --git a/keyboards/planck/keymaps/priyadi/config.h b/keyboards/planck/keymaps/priyadi/config.h index c85e8656e6f..d72b6d39083 100644 --- a/keyboards/planck/keymaps/priyadi/config.h +++ b/keyboards/planck/keymaps/priyadi/config.h @@ -5,12 +5,6 @@ #define PRIYADI_PLANCK -/* bootmagic salt key */ -#define BOOTMAGIC_KEY_SALT KC_ESC - -/* skip bootmagic and eeconfig */ -#define BOOTMAGIC_KEY_SKIP KC_SPACE - #define UNICODE_TYPE_DELAY 0 #define LAYOUT_DVORAK diff --git a/users/talljoe/config.h b/users/talljoe/config.h index 8a5fd50cb7e..dcdbbd89f40 100644 --- a/users/talljoe/config.h +++ b/users/talljoe/config.h @@ -19,9 +19,5 @@ #define RESET_LAYER 15 -#define BOOTMAGIC_KEY_SALT KC_ESC -#define BOOTMAGIC_KEY_SKIP KC_I -#define BOOTMAGIC_KEY_EEPROM_CLEAR KC_E - #define COMBO_COUNT 2 #define COMBO_TERM 250 diff --git a/users/tominabox1/config.h b/users/tominabox1/config.h index 4a2433eb0bd..f853e18605a 100644 --- a/users/tominabox1/config.h +++ b/users/tominabox1/config.h @@ -3,8 +3,6 @@ // Tapping term settings #define TAPPING_TERM_PER_KEY #define TAP_HOLD_CAPS_DELAY 350 -#define BOOTMAGIC_KEY_SALT KC_BSPACE -#define BOOTMAGIC_KEY_EEPROM_CLEAR KC_Q // OLED settings #define OLED_FONT_H "users/tominabox1/doug.c" From 7aea67980b0029739d6572f58951bc58e56bf7d5 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon, 18 Jul 2022 19:09:05 -0700 Subject: [PATCH 6/7] Update noroadsleft userspace and keymaps (2022-07-18) (#17714) * kbdfans/kbd75/rev1:noroadsleft - remove LAYOUT_75_ansi_wkl definition * coseyfannitutti/discipline:noroadsleft - change KC_GESC to KC_ESC * update Quantum keycode instances in noroadsleft keymaps - `RESET` -> `QK_BOOT` - `EEP_RST` -> `EE_CLR` - `DEBUG` -> `DB_TOGG` * create and add G_PWD macro --- .../discipline/keymaps/noroadsleft/keymap.c | 10 +++---- .../kbd75/keymaps/noroadsleft/keymap.c | 22 ++------------ keyboards/kc60/keymaps/noroadsleft/keymap.c | 6 ++-- users/noroadsleft/noroadsleft.c | 8 ++++- users/noroadsleft/noroadsleft.h | 3 +- users/noroadsleft/readme.md | 29 ++++++++++--------- 6 files changed, 36 insertions(+), 42 deletions(-) diff --git a/keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/keymap.c b/keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/keymap.c index 050e4067726..4460d6f9bb4 100644 --- a/keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/keymap.c +++ b/keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2021 James Young (@noroadsleft) +/* Copyright 2021-2022 James Young (@noroadsleft) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -30,7 +30,7 @@ enum layer_names { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_DV] = LAYOUT_65_ansi( - KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, KC_HOME, + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, KC_HOME, KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSLS, KC_PGUP, FN_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_ENT, KC_PGDN, KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_UP, KC_END, @@ -38,7 +38,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_QW] = LAYOUT_65_ansi( - KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, FN_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, @@ -56,13 +56,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_FN] = LAYOUT_65_ansi( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, DM_REC1, _______, KC_CALC, KC_APP, _______, _______, _______, KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_PSCR, KC_SLCK, KC_PAUS, DM_REC2, - _______, M_SALL, _______, _______, _______, _______, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, DM_RSTP, DM_PLY1, + _______, M_SALL, _______, _______, G_PWD, _______, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, DM_RSTP, DM_PLY1, _______, M_UNDO, M_CUT, M_COPY, M_PASTE, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, TO(_SY), _______, _______, DM_PLY2, _______, _______, _______, TG(_NP), _______, _______, _______, _______, _______, _______ ), [_SY] = LAYOUT_65_ansi( - TG(_SY), TO(_DV), TO(_QW), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, XXXXXXX, DEBUG, XXXXXXX, VRSN, XXXXXXX, XXXXXXX, + TG(_SY), TO(_DV), TO(_QW), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, DB_TOGG, XXXXXXX, VRSN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/keyboards/kbdfans/kbd75/keymaps/noroadsleft/keymap.c b/keyboards/kbdfans/kbd75/keymaps/noroadsleft/keymap.c index 87cab80f597..de656357f9d 100644 --- a/keyboards/kbdfans/kbd75/keymaps/noroadsleft/keymap.c +++ b/keyboards/kbdfans/kbd75/keymaps/noroadsleft/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2020-2021 James Young (@noroadsleft) +/* Copyright 2020-2022 James Young (@noroadsleft) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -16,22 +16,6 @@ #include "noroadsleft.h" -#define LAYOUT_75_ansi_wkl( \ - K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \ - K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K114, K115, \ - K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \ - K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K315, \ - K400, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K414, K415, \ - K500, K501, K506, K510, K512, K513, K514, K515 \ -) { \ - { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \ - { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, KC_NO, K114, K115 }, \ - { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \ - { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, K315 }, \ - { K400, KC_NO, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414, K415 }, \ - { K500, K501, KC_NO, KC_NO, KC_NO, KC_NO, K506, KC_NO, KC_NO, KC_NO, K510, KC_NO, K512, K513, K514, K515 } \ -} - enum layer_names { _DV, _QW, @@ -88,13 +72,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, DM_REC1, _______, KC_CALC, KC_APP, G_PUSH, _______, _______, KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_PSCR, KC_SLCK, KC_PAUS, DM_REC2, - _______, M_SALL, _______, G_FTCH, _______, _______, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, DM_RSTP, DM_PLY1, + _______, M_SALL, _______, G_FTCH, G_PWD, _______, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, DM_RSTP, DM_PLY1, _______, M_UNDO, M_CUT, M_COPY, M_PASTE, G_BRCH, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, DM_PLY2, _______, _______, _______, _______, _______, _______, _______, _______ ), [_SY] = LAYOUT_75_ansi_wkl( - TG(_SY), TO(_DV), TO(_QW), XXXXXXX, TG(_Q2), XXXXXXX, XXXXXXX, XXXXXXX, RESET, EEP_RST, DEBUG, XXXXXXX, VRSN, XXXXXXX, XXXXXXX, XXXXXXX, + TG(_SY), TO(_DV), TO(_QW), XXXXXXX, TG(_Q2), XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, EE_CLR, DB_TOGG, XXXXXXX, VRSN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_DEL, XXXXXXX, XXXXXXX, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/keyboards/kc60/keymaps/noroadsleft/keymap.c b/keyboards/kc60/keymaps/noroadsleft/keymap.c index 1721861b9aa..37091fccddf 100644 --- a/keyboards/kc60/keymaps/noroadsleft/keymap.c +++ b/keyboards/kc60/keymaps/noroadsleft/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2018-2021 James Young (@noroadsleft) +/* Copyright 2018-2022 James Young (@noroadsleft) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -101,13 +101,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_MA] = LAYOUT_60_ansi( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, DM_REC1, DM_REC2, _______, _______, _______, _______, G_PUSH, _______, _______, _______, _______, _______, _______, _______, DM_PLY1, DM_PLY2, DM_RSTP, - _______, _______, _______, G_FTCH, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, G_FTCH, G_PWD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, G_BRCH, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), [_SY] = LAYOUT_60_ansi( - TG(_SY), TO(_DV), TO(_QW), TO(_CM), TG(_Q2), XXXXXXX, XXXXXXX, XXXXXXX, RESET, XXXXXXX, DEBUG, XXXXXXX, VRSN, XXXXXXX, + TG(_SY), TO(_DV), TO(_QW), TO(_CM), TG(_Q2), XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, DB_TOGG, XXXXXXX, VRSN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BL_DEC, BL_TOGG, BL_INC, BL_BRTG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/users/noroadsleft/noroadsleft.c b/users/noroadsleft/noroadsleft.c index 28bfa9e6c60..80d18f40268 100644 --- a/users/noroadsleft/noroadsleft.c +++ b/users/noroadsleft/noroadsleft.c @@ -1,4 +1,4 @@ -/* Copyright 2020-2021 James Young (@noroadsleft) +/* Copyright 2020-2022 James Young (@noroadsleft) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -66,6 +66,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } }; return false; + case G_PWD: + if (record->event.pressed) { + clear_mods(); + SEND_STRING("$( pwd | sed -e 's;^.*/keyboards/;;' -e 's;/;_;g')"); + }; + return false; case M_SALL: if (record->event.pressed) { tap_code16(C(KC_A)); diff --git a/users/noroadsleft/noroadsleft.h b/users/noroadsleft/noroadsleft.h index 12bb5b465af..1d1a547562d 100644 --- a/users/noroadsleft/noroadsleft.h +++ b/users/noroadsleft/noroadsleft.h @@ -1,4 +1,4 @@ -/* Copyright 2020-2021 James Young (@noroadsleft) +/* Copyright 2020-2022 James Young (@noroadsleft) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -25,6 +25,7 @@ enum userspace_keycodes { G_PUSH, G_FTCH, G_BRCH, + G_PWD, M_SALL, M_UNDO, M_CUT, diff --git a/users/noroadsleft/readme.md b/users/noroadsleft/readme.md index e8279c03334..d32e66917fc 100644 --- a/users/noroadsleft/readme.md +++ b/users/noroadsleft/readme.md @@ -19,25 +19,28 @@ Outputs a string that tells me the Git commit from which my flashed firmware was Some frequently used Git commands. -| Keycode | Output | Output with Shift | -| :---------------------------------- | :--------------------- | :--------------------------- | -| [`G_PUSH`](./noroadsleft.c#L44-L48) | `git push origin ` | `git push origin ` | -| [`G_FTCH`](./noroadsleft.c#L49-L58) | `git fetch upstream ` | `git pull upstream ` | -| [`G_BRCH`](./noroadsleft.c#L59-L68) | `master` | `$(git branch-name)` | +| Keycode | Output | Output with Shift | +| :---------------------------------- | :---------------------------------------------------- | :---------------------------------------------------- | +| [`G_PUSH`](./noroadsleft.c#L44-L48) | `git push origin ` | `git push origin ` | +| [`G_FTCH`](./noroadsleft.c#L49-L58) | `git fetch upstream ` | `git pull upstream ` | +| [`G_BRCH`](./noroadsleft.c#L59-L68) | `master` | `$(git branch-name)` | +| [`G_PWD`](./noroadsleft.c#L69-L74) | `$( pwd \| sed -e 's;^.*/keyboards/;;' -e 's;/;_;g')` | `$( pwd \| sed -e 's;^.*/keyboards/;;' -e 's;/;_;g')` | `$(git branch-name)` is an alias for `git rev-parse --abbrev-ref HEAD`, which normally returns the name of the current branch. +The `G_PWD` macro outputs a shell expansion that returns the current working directory in relation to `qmk_firmware/keyboards/`, and with the slashes replaced with underscores. I do a lot of keyboard refactoring in QMK, and this is a string I use regularly. + ### Customized Keycodes I used to have a boolean variable that changed the functionality of these keycodes, but I no longer work in the environment that I wrote the functionality for, so I took it out. The keycodes still exist because all my `keymap.c` files reference the custom keycodes I defined. | Keycode | Action | | :------------------------------------ | :-------- | -| [`M_SALL`](./noroadsleft.c#L69-L73) | `Ctrl+A` | -| [`M_UNDO`](./noroadsleft.c#L74-L82) | `Ctrl+Z` | -| [`M_CUT`](./noroadsleft.c#L83-L87) | `Ctrl+X` | -| [`M_COPY`](./noroadsleft.c#L88-L92) | `Ctrl+C` | -| [`M_PASTE`](./noroadsleft.c#L93-L101) | `Ctrl+V` | +| [`M_SALL`](./noroadsleft.c#L75-L79) | `Ctrl+A` | +| [`M_UNDO`](./noroadsleft.c#L80-L88) | `Ctrl+Z` | +| [`M_CUT`](./noroadsleft.c#L89-L93) | `Ctrl+X` | +| [`M_COPY`](./noroadsleft.c#L94-L98) | `Ctrl+C` | +| [`M_PASTE`](./noroadsleft.c#L99-L107) | `Ctrl+V` | ### [Emulated Non-US Backslash](./noroadsleft.c#L27-L37) @@ -47,18 +50,18 @@ This macro simulates the Non-US Backslash key if I hold Right Alt and tap the ke Requires defining `ANSI_NUBS_ROW` and `ANSI_NUBS_COL` in `config.h` at the keymap level.[1](#footnotes) -### [Emulated Numeric Keypad](./noroadsleft.c#L102-L116) +### [Emulated Numeric Keypad](./noroadsleft.c#L108-L122) If I hold the Right Alt key, the number row (`KC_1` through `KC_0`) will output numpad keycodes instead of number row keycodes, enabling quicker access to characters like ™ and °. -### [Emulated Extended Function Keys](./noroadsleft.c#L117-L131) +### [Emulated Extended Function Keys](./noroadsleft.c#L123-L137) Similar to the emulated numpad, if I hold the Right Alt key with the Fn key, the function row (`KC_F1` through `KC_F12`) will output keycodes `KC_F13` throught `KC_F24`. ## License -Copyright 2020-2021 James Young (@noroadsleft) +Copyright 2020-2022 James Young (@noroadsleft) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by From 59c7b15b4da6e9325b7af6bd34fc4cb557ebb184 Mon Sep 17 00:00:00 2001 From: jack <0x6A73@pm.me> Date: Mon, 18 Jul 2022 20:20:24 -0600 Subject: [PATCH 7/7] [Keyboard] boardsource/microdox data driven (#17675) --- keyboards/boardsource/microdox/.noci | 0 keyboards/boardsource/microdox/config.h | 83 ------------ keyboards/boardsource/microdox/info.json | 118 ++++++++++-------- .../microdox/keymaps/cole/keymap.c | 2 +- .../microdox/keymaps/cole/rules.mk | 1 - .../microdox/keymaps/default/keymap.c | 2 +- .../boardsource/microdox/keymaps/via/rules.mk | 2 - keyboards/boardsource/microdox/microdox.c | 37 ++++-- keyboards/boardsource/microdox/microdox.h | 38 ------ keyboards/boardsource/microdox/readme.md | 3 +- keyboards/boardsource/microdox/rules.mk | 21 ---- keyboards/boardsource/microdox/v1/config.h | 20 +++ keyboards/boardsource/microdox/v1/info.json | 25 ++++ keyboards/boardsource/microdox/v1/rules.mk | 1 + keyboards/boardsource/microdox/v2/config.h | 51 ++------ keyboards/boardsource/microdox/v2/info.json | 82 ++++++++++++ keyboards/boardsource/microdox/v2/rules.mk | 7 -- keyboards/boardsource/microdox/v2/v2.c | 62 --------- keyboards/boardsource/microdox/v2/v2.h | 22 ---- 19 files changed, 238 insertions(+), 339 deletions(-) delete mode 100644 keyboards/boardsource/microdox/.noci delete mode 100644 keyboards/boardsource/microdox/config.h delete mode 100644 keyboards/boardsource/microdox/keymaps/cole/rules.mk delete mode 100644 keyboards/boardsource/microdox/microdox.h delete mode 100644 keyboards/boardsource/microdox/rules.mk create mode 100644 keyboards/boardsource/microdox/v1/config.h create mode 100644 keyboards/boardsource/microdox/v1/info.json create mode 100644 keyboards/boardsource/microdox/v1/rules.mk create mode 100644 keyboards/boardsource/microdox/v2/info.json delete mode 100644 keyboards/boardsource/microdox/v2/v2.c delete mode 100644 keyboards/boardsource/microdox/v2/v2.h diff --git a/keyboards/boardsource/microdox/.noci b/keyboards/boardsource/microdox/.noci deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/keyboards/boardsource/microdox/config.h b/keyboards/boardsource/microdox/config.h deleted file mode 100644 index f2ba806ae72..00000000000 --- a/keyboards/boardsource/microdox/config.h +++ /dev/null @@ -1,83 +0,0 @@ -/* -Copyright 2020 Cole Smith - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#include "config_common.h" - -#define VENDOR_ID 0xF7E0 -#define PRODUCT_ID 0x0412 -#define DEVICE_VER 0x0000 -#define MANUFACTURER Boardsource -#define PRODUCT microdox - -/* key matrix size */ -// Rows are doubled-up -#define MATRIX_ROWS 8 -#define MATRIX_COLS 5 -#define MATRIX_ROW_PINS \ - { B2, B6, B4, B5 } - -// wiring of each half -#define MATRIX_COL_PINS \ - { F4, F5, F6, F7, B1 } -#define USE_SERIAL -#define SOFT_SERIAL_PIN D2 -/* define if matrix has ghost */ -//#define MATRIX_HAS_GHOST - -/* number of backlight levels */ -// #define BACKLIGHT_LEVELS 3 - -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCE 5 - -/* COL2ROW, ROW2COL*/ -#define DIODE_DIRECTION COL2ROW - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -//#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -//#define LOCKING_RESYNC_ENABLE - -/* ws2812 RGB LED */ -#define RGB_DI_PIN D3 -#ifdef RGBLIGHT_ENABLE -# define RGBLED_NUM 12 // Number of LEDs -# define RGBLED_SPLIT \ - { 6, 6 } -# define RGBLIGHT_EFFECT_BREATHING -# define RGBLIGHT_EFFECT_RAINBOW_SWIRL -# define RGBLIGHT_EFFECT_STATIC_GRADIENT - -#endif - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -// #define NO_DEBUG - -/* disable print */ -// #define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT diff --git a/keyboards/boardsource/microdox/info.json b/keyboards/boardsource/microdox/info.json index 32550560028..37f190d42d5 100644 --- a/keyboards/boardsource/microdox/info.json +++ b/keyboards/boardsource/microdox/info.json @@ -1,54 +1,70 @@ { - "keyboard_name": "microdox", - "url": "https://boardsource.xyz/store/5f2e7e4a2902de7151494f92", - "maintainer": "boardsource", - "layouts": { - "LAYOUT_split_3x5_3": { - "layout": [ - { "label": "Q", "x": 0, "y": 0.3 }, - { "label": "W", "x": 1, "y": 0.1 }, - { "label": "E", "x": 2, "y": 0 }, - { "label": "R", "x": 3, "y": 0.1 }, - { "label": "T", "x": 4, "y": 0.2 }, - - { "label": "Y", "x": 8, "y": 0.2 }, - { "label": "U", "x": 9, "y": 0.1 }, - { "label": "I", "x": 10, "y": 0 }, - { "label": "O", "x": 11, "y": 0.1 }, - { "label": "P", "x": 12, "y": 0.3 }, - - { "label": "A", "x": 0, "y": 1.3 }, - { "label": "S", "x": 1, "y": 1.1 }, - { "label": "D", "x": 2, "y": 1 }, - { "label": "F", "x": 3, "y": 1.1 }, - { "label": "G", "x": 4, "y": 1.2 }, - - { "label": "H", "x": 8, "y": 1.2 }, - { "label": "J", "x": 9, "y": 1.1 }, - { "label": "K", "x": 10, "y": 1 }, - { "label": "L", "x": 11, "y": 1.1 }, - { "label": ";", "x": 12, "y": 1.3 }, - - { "label": "Z", "x": 0, "y": 2.3 }, - { "label": "X", "x": 1, "y": 2.1 }, - { "label": "C", "x": 2, "y": 2 }, - { "label": "V", "x": 3, "y": 2.1 }, - { "label": "B", "x": 4, "y": 2.2 }, - - { "label": "N", "x": 8, "y": 2.2 }, - { "label": "M", "x": 9, "y": 2.1 }, - { "label": ",", "x": 10, "y": 2 }, - { "label": ".", "x": 11, "y": 2.1 }, - { "label": "/", "x": 12, "y": 2.3 }, - - { "label": "GUI / KC_HANJ", "x": 3, "y": 3.7 }, - { "label": "Lower", "x": 4, "y": 3.7 }, - { "label": "Space", "x": 5, "y": 3.2 }, - - { "label": "Enter", "x": 7, "y": 3.2 }, - { "label": "Raise", "x": 8, "y": 3.7 }, - { "label": "Alt / KC_HAEN", "x": 9, "y": 3.7 } - ] - } + "manufacturer": "Boardsource", + "keyboard_name": "microdox", + "maintainer": "waffle87", + "development_board": "promicro", + "diode_direction": "COL2ROW", + "build": { + "lto": true + }, + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "oled": true + }, + "url": "https://boardsource.xyz/store/5f2e7e4a2902de7151494f92", + "usb": { + "pid": "0x0412", + "vid": "0xF7E0" + }, + "split": { + "enabled": true + }, + "community_layouts": [ + "split_3x5_3" + ], + "layouts": { + "LAYOUT_split_3x5_3": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [4, 4], "x": 5, "y": 0 }, + { "matrix": [4, 3], "x": 6, "y": 0 }, + { "matrix": [4, 2], "x": 7, "y": 0 }, + { "matrix": [4, 1], "x": 8, "y": 0 }, + { "matrix": [4, 0], "x": 9, "y": 0 }, + { "matrix": [1, 0], "x": 10, "y": 0 }, + { "matrix": [1, 1], "x": 11, "y": 0 }, + { "matrix": [1, 2], "x": 12, "y": 0 }, + { "matrix": [1, 3], "x": 13, "y": 0 }, + { "matrix": [1, 4], "x": 14, "y": 0 }, + { "matrix": [5, 4], "x": 15, "y": 0 }, + { "matrix": [5, 3], "x": 16, "y": 0 }, + { "matrix": [5, 2], "x": 17, "y": 0 }, + { "matrix": [5, 1], "x": 18, "y": 0 }, + { "matrix": [5, 0], "x": 19, "y": 0 }, + { "matrix": [2, 0], "x": 20, "y": 0 }, + { "matrix": [2, 1], "x": 21, "y": 0 }, + { "matrix": [2, 2], "x": 22, "y": 0 }, + { "matrix": [2, 3], "x": 23, "y": 0 }, + { "matrix": [2, 4], "x": 24, "y": 0 }, + { "matrix": [6, 4], "x": 25, "y": 0 }, + { "matrix": [6, 3], "x": 26, "y": 0 }, + { "matrix": [6, 2], "x": 27, "y": 0 }, + { "matrix": [6, 1], "x": 28, "y": 0 }, + { "matrix": [6, 0], "x": 29, "y": 0 }, + { "matrix": [3, 2], "x": 30, "y": 0 }, + { "matrix": [3, 3], "x": 31, "y": 0 }, + { "matrix": [3, 4], "x": 32, "y": 0 }, + { "matrix": [7, 4], "x": 33, "y": 0 }, + { "matrix": [7, 3], "x": 34, "y": 0 }, + { "matrix": [7, 2], "x": 35, "y": 0 } + ] } + } } diff --git a/keyboards/boardsource/microdox/keymaps/cole/keymap.c b/keyboards/boardsource/microdox/keymaps/cole/keymap.c index f4ac92ea0d0..8c177be5a5e 100644 --- a/keyboards/boardsource/microdox/keymaps/cole/keymap.c +++ b/keyboards/boardsource/microdox/keymaps/cole/keymap.c @@ -1,5 +1,5 @@ /* -Copyright 2020 Cole Smith +Copyright 2022 Cole Smith This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/keyboards/boardsource/microdox/keymaps/cole/rules.mk b/keyboards/boardsource/microdox/keymaps/cole/rules.mk deleted file mode 100644 index dd68e9d3b09..00000000000 --- a/keyboards/boardsource/microdox/keymaps/cole/rules.mk +++ /dev/null @@ -1 +0,0 @@ -OLED_ENABLE = yes diff --git a/keyboards/boardsource/microdox/keymaps/default/keymap.c b/keyboards/boardsource/microdox/keymaps/default/keymap.c index 6fe94011f45..8a090b6f8f2 100644 --- a/keyboards/boardsource/microdox/keymaps/default/keymap.c +++ b/keyboards/boardsource/microdox/keymaps/default/keymap.c @@ -1,5 +1,5 @@ /* -Copyright 2020 Cole Smith +Copyright 2022 Cole Smith This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/keyboards/boardsource/microdox/keymaps/via/rules.mk b/keyboards/boardsource/microdox/keymaps/via/rules.mk index 7fad85c0158..1e5b99807cb 100644 --- a/keyboards/boardsource/microdox/keymaps/via/rules.mk +++ b/keyboards/boardsource/microdox/keymaps/via/rules.mk @@ -1,3 +1 @@ -OLED_ENABLE = yes VIA_ENABLE = yes -LTO_ENABLE = yes diff --git a/keyboards/boardsource/microdox/microdox.c b/keyboards/boardsource/microdox/microdox.c index abfe65a2bd1..76ee6bc54ed 100644 --- a/keyboards/boardsource/microdox/microdox.c +++ b/keyboards/boardsource/microdox/microdox.c @@ -1,5 +1,5 @@ /* -Copyright 2020 Cole Smith +Copyright 2022 Cole Smith This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -15,9 +15,11 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#include "microdox.h" - #ifdef OLED_ENABLE +#include "oled_driver.h" +#include "bitwise.h" +#include "action_layer.h" + oled_rotation_t oled_init_kb(oled_rotation_t rotation) { if (is_keyboard_master()) return OLED_ROTATION_180; @@ -26,14 +28,12 @@ oled_rotation_t oled_init_kb(oled_rotation_t rotation) { static void render_logo(void) { static const char PROGMEM qmk_logo[] = { - 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, - 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, - 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4, - 0 + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, + 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, + 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0x00 }; oled_write_P(qmk_logo, false); } - static void render_status(void) { switch (get_highest_layer(layer_state)) { case 0: @@ -74,3 +74,24 @@ bool oled_task_kb(void) { return false; } #endif + +#ifdef ENCODER_ENABLE +#include "encoder.h" +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + if (index == 0) { + if (clockwise) { + tap_code_delay(KC_VOLU, 10); + } else { + tap_code_delay(KC_VOLD, 10); + } + } else { + if (clockwise) { + tap_code(KC_MNXT); + } else { + tap_code(KC_MPRV); + } + } + return true; +} +#endif diff --git a/keyboards/boardsource/microdox/microdox.h b/keyboards/boardsource/microdox/microdox.h deleted file mode 100644 index 8b63b464150..00000000000 --- a/keyboards/boardsource/microdox/microdox.h +++ /dev/null @@ -1,38 +0,0 @@ -/* -Copyright 2020 Cole Smith - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#include "quantum.h" -#define xxx KC_NO - -#define LAYOUT_split_3x5_3(\ - k00, k01, k02, k03, k04, k44, k43, k42, k41, k40, \ - k10, k11, k12, k13, k14, k54, k53, k52, k51, k50, \ - k20, k21, k22, k23, k24, k64, k63, k62, k61, k60, \ - k32, k33, k34, k74, k73, k72 \ - ) \ - { \ - { k00, k01, k02, k03, k04 }, \ - { k10, k11, k12, k13, k14 }, \ - { k20, k21, k22, k23, k24 }, \ - { xxx, xxx, k32, k33, k34 }, \ - { k40, k41, k42, k43, k44 }, \ - { k50, k51, k52, k53, k54 }, \ - { k60, k61, k62, k63, k64 }, \ - { xxx, xxx, k72, k73, k74 } \ - } diff --git a/keyboards/boardsource/microdox/readme.md b/keyboards/boardsource/microdox/readme.md index 0a468bd4a37..d5b22a2854e 100644 --- a/keyboards/boardsource/microdox/readme.md +++ b/keyboards/boardsource/microdox/readme.md @@ -8,8 +8,9 @@ Make example for this keyboard (after setting up your build environment): + make boardsource/microdox/v1:default make boardsource/microdox/v2:default -Remove `v2` from above command if you purchased your PCBs prior to April 2022 +Compile `v1` firmware if you purchased your PCBs prior to April 2022. See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/boardsource/microdox/rules.mk b/keyboards/boardsource/microdox/rules.mk deleted file mode 100644 index a15c5aded17..00000000000 --- a/keyboards/boardsource/microdox/rules.mk +++ /dev/null @@ -1,21 +0,0 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = caterina - -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -SPLIT_KEYBOARD = yes - -LAYOUTS = split_3x5_3 diff --git a/keyboards/boardsource/microdox/v1/config.h b/keyboards/boardsource/microdox/v1/config.h new file mode 100644 index 00000000000..111033dd67d --- /dev/null +++ b/keyboards/boardsource/microdox/v1/config.h @@ -0,0 +1,20 @@ +// Copyright 2022 jack (@waffle87) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT diff --git a/keyboards/boardsource/microdox/v1/info.json b/keyboards/boardsource/microdox/v1/info.json new file mode 100644 index 00000000000..a79153a73cc --- /dev/null +++ b/keyboards/boardsource/microdox/v1/info.json @@ -0,0 +1,25 @@ +{ + "features": { + "rgblight": true + }, + "matrix_pins": { + "cols": ["F4", "F5", "F6", "F7", "B1"], + "rows": ["B2", "B6", "B4", "B5"] + }, + "usb": { + "device_version": "1.0.0" + }, + "split": { + "soft_serial_pin": "D2" + }, + "rgblight": { + "pin": "D3", + "sleep": true, + "led_count": 12, + "split_count": [6, 6], + "max_brightness": 150, + "animations": { + "all": true + } + } +} diff --git a/keyboards/boardsource/microdox/v1/rules.mk b/keyboards/boardsource/microdox/v1/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/boardsource/microdox/v1/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/boardsource/microdox/v2/config.h b/keyboards/boardsource/microdox/v2/config.h index 1f8bc7c3d95..50207651abf 100644 --- a/keyboards/boardsource/microdox/v2/config.h +++ b/keyboards/boardsource/microdox/v2/config.h @@ -1,45 +1,14 @@ // Copyright 2022 jack (@waffle87) // SPDX-License-Identifier: GPL-2.0-or-later #pragma once -#undef MATRIX_ROW_PINS -#undef MATRIX_COL_PINS -#define MATRIX_ROW_PINS \ - { F4, D2, C6, B1 } -#define MATRIX_COL_PINS \ - { D4, D7, B3, F7, F6 } -#define MATRIX_ROW_PINS_RIGHT \ - { F5, F7, F6, E6 } -#define MATRIX_COL_PINS_RIGHT \ - { F4, B1, D7, C6, B3 } -#undef SOFT_SERIAL_PIN -#define SOFT_SERIAL_PIN D3 -#undef RGB_DI_PIN #define RGB_DI_PIN B5 -#ifdef RGBLIGHT_ENABLE -# undef RGBLED_NUM -# undef RGBLED_SPLIT -# define RGBLED_NUM 8 -# define RGBLED_SPLIT { 4, 4 } // underglow only -# define RGBLIGHT_SLEEP -# define RGBLIGHT_EFFECT_BREATHING -# define RGBLIGHT_EFFECT_RAINBOW_SWIRL -# define RGBLIGHT_EFFECT_STATIC_GRADIENT -#endif -#ifdef RGB_MATRIX_ENABLE -# define DRIVER_LED_TOTAL 44 -# define RGB_MATRIX_SPLIT { 22, 22 } -# define RGB_DISABLE_WHEN_USB_SUSPENDED -# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 -# define ENABLE_RGB_MATRIX_ALPHAS_MODS -# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT -# define ENABLE_RGB_MATRIX_BREATHING -# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT -# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL -# define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS -#endif -#ifdef ENCODER_ENABLE -# define ENCODERS_PAD_A { E6 } -# define ENCODERS_PAD_B { B2 } -# define ENCODERS_PAD_A_RIGHT { B6 } -# define ENCODERS_PAD_B_RIGHT { B2 } -#endif +#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 +#define DRIVER_LED_TOTAL 44 +#define RGB_MATRIX_SPLIT { 22, 22 } +#define RGB_DISABLE_WHEN_USB_SUSPENDED +#define ENABLE_RGB_MATRIX_ALPHAS_MODS +#define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_BREATHING +#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL +#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS diff --git a/keyboards/boardsource/microdox/v2/info.json b/keyboards/boardsource/microdox/v2/info.json new file mode 100644 index 00000000000..a53dfff7086 --- /dev/null +++ b/keyboards/boardsource/microdox/v2/info.json @@ -0,0 +1,82 @@ +{ + "features": { + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["D4", "D7", "B3", "F7", "F6"], + "rows": ["F4", "D2", "C6", "B1"] + }, + "usb": { + "device_version": "2.0.0" + }, + "encoder": { + "enabled": true, + "rotary": [ + { "pin_a": "E6", "pin_b": "B2"} + ] + }, + "split": { + "soft_serial_pin": "D3", + "matrix_pins": { + "right": { + "cols": ["F4", "B1", "D7", "C6", "B3"], + "rows": ["F5", "F7", "F6", "E6"] + } + }, + "encoder": { + "right": { + "rotary": [ + { "pin_a": "B6", "pin_b": "B2" } + ] + } + } + }, + "rgb_matrix": { + "layout": [ + { "flags": 2, "x": 12, "y": 11 }, + { "flags": 2, "x": 86, "y": 11 }, + { "flags": 2, "x": 86, "y": 53 }, + { "flags": 2, "x": 0, "y": 64 }, + { "flags": 2, "x": 211, "y": 11 }, + { "flags": 2, "x": 136, "y": 11 }, + { "flags": 2, "x": 136, "y": 53 }, + { "flags": 2, "x": 224, "y": 64 }, + { "flags": 4, "matrix": [0, 0], "x": 0, "y": 0 }, + { "flags": 4, "matrix": [0, 1], "x": 24, "y": 0 }, + { "flags": 4, "matrix": [0, 2], "x": 49, "y": 0 }, + { "flags": 4, "matrix": [0, 3], "x": 74, "y": 0 }, + { "flags": 4, "matrix": [0, 4], "x": 99, "y": 0 }, + { "flags": 4, "matrix": [4, 4], "x": 124, "y": 0 }, + { "flags": 4, "matrix": [4, 3], "x": 149, "y": 0 }, + { "flags": 4, "matrix": [4, 2], "x": 174, "y": 0 }, + { "flags": 4, "matrix": [4, 1], "x": 199, "y": 0 }, + { "flags": 4, "matrix": [4, 0], "x": 224, "y": 0 }, + { "flags": 4, "matrix": [1, 0], "x": 0, "y": 21 }, + { "flags": 4, "matrix": [1, 1], "x": 24, "y": 21 }, + { "flags": 4, "matrix": [1, 2], "x": 49, "y": 21 }, + { "flags": 4, "matrix": [1, 3], "x": 74, "y": 21 }, + { "flags": 4, "matrix": [1, 4], "x": 99, "y": 21 }, + { "flags": 4, "matrix": [5, 4], "x": 124, "y": 21 }, + { "flags": 4, "matrix": [5, 3], "x": 149, "y": 21 }, + { "flags": 4, "matrix": [5, 2], "x": 174, "y": 21 }, + { "flags": 4, "matrix": [5, 1], "x": 199, "y": 21 }, + { "flags": 4, "matrix": [5, 0], "x": 224, "y": 21 }, + { "flags": 4, "matrix": [2, 0], "x": 0, "y": 42 }, + { "flags": 4, "matrix": [2, 1], "x": 24, "y": 42 }, + { "flags": 4, "matrix": [2, 2], "x": 49, "y": 42 }, + { "flags": 4, "matrix": [2, 3], "x": 74, "y": 42 }, + { "flags": 4, "matrix": [2, 4], "x": 99, "y": 42 }, + { "flags": 4, "matrix": [6, 4], "x": 124, "y": 42 }, + { "flags": 4, "matrix": [6, 3], "x": 149, "y": 42 }, + { "flags": 4, "matrix": [6, 2], "x": 174, "y": 42 }, + { "flags": 4, "matrix": [6, 1], "x": 199, "y": 42 }, + { "flags": 4, "matrix": [6, 0], "x": 224, "y": 42 }, + { "flags": 1, "matrix": [3, 2], "x": 49, "y": 64 }, + { "flags": 1, "matrix": [3, 3], "x": 74, "y": 64 }, + { "flags": 1, "matrix": [3, 4], "x": 99, "y": 64 }, + { "flags": 1, "matrix": [7, 4], "x": 124, "y": 64 }, + { "flags": 1, "matrix": [7, 3], "x": 149, "y": 64 }, + { "flags": 1, "matrix": [7, 2], "x": 174, "y": 64 } + ] + } +} diff --git a/keyboards/boardsource/microdox/v2/rules.mk b/keyboards/boardsource/microdox/v2/rules.mk index 0d57a06d1ec..32afd216356 100644 --- a/keyboards/boardsource/microdox/v2/rules.mk +++ b/keyboards/boardsource/microdox/v2/rules.mk @@ -1,8 +1 @@ -RGB_MATRIX_ENABLE = yes RGB_MATRIX_DRIVER = WS2812 -RGB_MATRIX_SUPPORTED = yes -RGBLIGHT_ENABLE = no -OLED_ENABLE = yes -OLED_DRIVER = SSD1306 -ENCODER_ENABLE = yes -LTO_ENABLE = yes diff --git a/keyboards/boardsource/microdox/v2/v2.c b/keyboards/boardsource/microdox/v2/v2.c deleted file mode 100644 index 11476a6ea24..00000000000 --- a/keyboards/boardsource/microdox/v2/v2.c +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright 2022 jack (@waffle87) -// SPDX-License-Identifier: GPL-2.0-or-later -#include "v2.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { - { - { 13, 14, 15, 16, 17 }, - { 12, 11, 10, 9, 8 }, - { 3, 4, 5, 6, 7 }, - { NO_LED, NO_LED, 2, 1, 0 }, - //18-21 left underglow - { 35, 36, 37, 38, 39 }, - { 34, 33, 32, 31, 30 }, - { 25, 26, 27, 28, 29 }, - { NO_LED, NO_LED, 24, 23, 22 } - //40-44 right underglow - }, { - {99,64}, {74,64}, {49,64}, //0-2 - {0,42}, {24,42}, {49,42}, {74,42}, {99,42}, //3-7 - {99,21}, {74,21}, {49,21}, {24,21}, {0,21}, //8-12 - {0,0}, {24,0}, {49,0}, {74,0}, {99,0}, //13-17 - {12,11}, {86,11}, {86,53}, {0,64}, //18-21 - {124,64}, {149,64}, {174,64}, //22-24 - {224,42}, {199,42}, {174,42}, {149,42}, {124,42}, //25-29 - {124,21}, {149,21}, {174,21}, {199,21}, {224,21}, //30-34 - {224,0}, {199,0}, {174,0}, {149,0}, {124,0}, //35-39 - {211,11}, {136,11}, {136,53}, {224,64} //40-44 - }, { - 1, 1, 1, - 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, - 2, 2, 2, 2, - 1, 1, 1, - 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, - 2, 2, 2, 2 - } -}; -#endif - -#ifdef ENCODER_ENABLE -bool encoder_update_kb(uint8_t index, bool clockwise) { - if (!encoder_update_user(index, clockwise)) { return false; } - if (index == 0) { - if (clockwise) { - tap_code_delay(KC_VOLU, 10); - } else { - tap_code_delay(KC_VOLD, 10); - } - } else { - if (clockwise) { - tap_code(KC_MNXT); - } else { - tap_code(KC_MPRV); - } - } - return false; -} -#endif diff --git a/keyboards/boardsource/microdox/v2/v2.h b/keyboards/boardsource/microdox/v2/v2.h deleted file mode 100644 index 400660fffae..00000000000 --- a/keyboards/boardsource/microdox/v2/v2.h +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2022 jack (@waffle87) -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once -#include "quantum.h" -#define xxx KC_NO - -#define LAYOUT_split_3x5_3(\ - k00, k01, k02, k03, k04, k44, k43, k42, k41, k40, \ - k10, k11, k12, k13, k14, k54, k53, k52, k51, k50, \ - k20, k21, k22, k23, k24, k64, k63, k62, k61, k60, \ - k32, k33, k34, k74, k73, k72 \ - ) \ - { \ - { k00, k01, k02, k03, k04 }, \ - { k10, k11, k12, k13, k14 }, \ - { k20, k21, k22, k23, k24 }, \ - { xxx, xxx, k32, k33, k34 }, \ - { k40, k41, k42, k43, k44 }, \ - { k50, k51, k52, k53, k54 }, \ - { k60, k61, k62, k63, k64 }, \ - { xxx, xxx, k72, k73, k74 } \ - }