From 03ea478f205e37419032c15c16143c17a5d2b5ae Mon Sep 17 00:00:00 2001 From: Josh Johnson Date: Sun, 28 Feb 2021 16:03:49 +1100 Subject: Hub16 QMK configurator support + various bugfixes (#11496) * qmk configurator support + various bugfixes * Update keyboards/hub16/rules.mk Co-authored-by: Drashna Jaelre Co-authored-by: Drashna Jaelre Co-authored-by: Nick Brassel --- keyboards/hub16/keymaps/ahk_companion/readme.md | 4 +- keyboards/hub16/keymaps/ahk_companion/rules.mk | 3 - keyboards/hub16/keymaps/default/keymap.c | 50 +++++++++ keyboards/hub16/keymaps/default/keymap.json | 1 - keyboards/hub16/keymaps/default_tap_dance/keymap.c | 115 --------------------- keyboards/hub16/keymaps/default_tap_dance/rules.mk | 1 - keyboards/hub16/keymaps/macro/keymap.c | 115 +++++++++++++++++++++ keyboards/hub16/keymaps/macro/rules.mk | 1 + keyboards/hub16/keymaps/no_mod/keymap.c | 78 -------------- keyboards/hub16/keymaps/via/rules.mk | 3 - 10 files changed, 168 insertions(+), 203 deletions(-) delete mode 100755 keyboards/hub16/keymaps/ahk_companion/rules.mk create mode 100755 keyboards/hub16/keymaps/default/keymap.c delete mode 100644 keyboards/hub16/keymaps/default/keymap.json delete mode 100755 keyboards/hub16/keymaps/default_tap_dance/keymap.c delete mode 100644 keyboards/hub16/keymaps/default_tap_dance/rules.mk create mode 100755 keyboards/hub16/keymaps/macro/keymap.c create mode 100644 keyboards/hub16/keymaps/macro/rules.mk delete mode 100755 keyboards/hub16/keymaps/no_mod/keymap.c (limited to 'keyboards/hub16/keymaps') diff --git a/keyboards/hub16/keymaps/ahk_companion/readme.md b/keyboards/hub16/keymaps/ahk_companion/readme.md index 6e8f9f2d2a..a6163a3d56 100644 --- a/keyboards/hub16/keymaps/ahk_companion/readme.md +++ b/keyboards/hub16/keymaps/ahk_companion/readme.md @@ -1,7 +1,7 @@ # AutoHotKey Companion ## Overview -AutoHotKey Companion Keymap for Hub16 macropad is designed be a quick and easy way to get started with AutoHotKey and to provide a foundation for customizing your own macropad. I upgraded to the Super16 from a Super16 because it kept the RGB underglow lights for an easy way (RGB) to identify what layer I was on with a quick glance or peripheral vision and added 2 rotary encoders and a USB 2.0 hub with USB-C ports. The F13 to F24 keys were selected as they are rarely used so you won't run into conflicts with existing application shortcuts and AutoHotKey recognizes them without any issues. *Note:* MacOS does not support/recognize F21 to F24 so these would need to be remapped for Mac users. +AutoHotKey Companion Keymap for Hub16 macropad is designed be a quick and easy way to get started with AutoHotKey and to provide a foundation for customizing your own macropad. I upgraded to the Hub16 from a Super16 because it kept the RGB underglow lights for an easy way (RGB) to identify what layer I was on with a quick glance or peripheral vision and added 2 rotary encoders and a USB 2.0 hub with USB-C ports. The F13 to F24 keys were selected as they are rarely used so you won't run into conflicts with existing application shortcuts and AutoHotKey recognizes them without any issues. *Note:* MacOS does not support/recognize F21 to F24 so these would need to be remapped for Mac users. Same functionality can be accomplished with other similar applications on the host system like Keyboard Maestro, AutoIt, etc. @@ -64,7 +64,7 @@ While the first 5 layers are accessible with only 1 key press at most, the 5th ( ## Host Configuration -Once the keymap has been flashed to the Super16, you can download the accompanying AutoHotKey file or create your own and have it start automatically either via a Windows Task or another way. Using AutoHotKey allows adjustment of functionality of the buttons without the need to change your map and reflash the macropad every time. +Once the keymap has been flashed to the Hub16, you can download the accompanying AutoHotKey file or create your own and have it start automatically either via a Windows Task or another way. Using AutoHotKey allows adjustment of functionality of the buttons without the need to change your map and reflash the macropad every time. Starting the AHK file can be done either by: * Creating a Windows Task * Adding the AHK to the startup folder diff --git a/keyboards/hub16/keymaps/ahk_companion/rules.mk b/keyboards/hub16/keymaps/ahk_companion/rules.mk deleted file mode 100755 index 022a3eeeed..0000000000 --- a/keyboards/hub16/keymaps/ahk_companion/rules.mk +++ /dev/null @@ -1,3 +0,0 @@ -TAP_DANCE_ENABLE = no # Support for tap dancing - - diff --git a/keyboards/hub16/keymaps/default/keymap.c b/keyboards/hub16/keymaps/default/keymap.c new file mode 100755 index 0000000000..e077fe7409 --- /dev/null +++ b/keyboards/hub16/keymaps/default/keymap.c @@ -0,0 +1,50 @@ +/* Copyright 2019 Josh Johnson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( /* Base */ + KC_MUTE, KC_MPLY, + KC_7, KC_8, KC_9, KC_PAST, + KC_4, KC_5, KC_6, KC_PMNS, + KC_1, KC_2, KC_3, KC_PPLS, + MO(1), KC_0, KC_PDOT,KC_PENT + ), + + [1] = LAYOUT( /* LED Control */ + _______, _______, + _______, RGB_MOD, RGB_RMOD, RGB_TOG, + RGB_VAD, RGB_VAI, RGB_HUD, RGB_HUI, + RGB_SAD, RGB_SAI, _______, _______, + _______, _______, RESET, _______ + ), +}; + +void encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { /* Left Encoder */ + if (clockwise) { + tap_code(KC_VOLD); + } else { + tap_code(KC_VOLU); + } + } else if (index == 1) { /* Right Encoder */ + if (clockwise) { + tap_code(KC_MPRV); + } else { + tap_code(KC_MNXT); + } + } +} diff --git a/keyboards/hub16/keymaps/default/keymap.json b/keyboards/hub16/keymaps/default/keymap.json deleted file mode 100644 index 6f4814eac8..0000000000 --- a/keyboards/hub16/keymaps/default/keymap.json +++ /dev/null @@ -1 +0,0 @@ -{"version":1,"notes":"","documentation":"\"This file is a QMK Configurator export. You can import this at . It can also be used directly with QMK's source code.\n\nTo setup your QMK environment check out the tutorial: \n\nYou can convert this file to a keymap.c using this command: `qmk json2c {keymap}`\n\nYou can compile this keymap using this command: `qmk compile {keymap}`\"\n","keyboard":"hub16","keymap":"default","layout":"LAYOUT","layers":[["KC_NLCK","KC_PSLS","KC_P7","KC_P8","KC_P9","KC_PPLS","KC_P4","KC_P5","KC_P6","KC_PCMM","KC_P1","KC_P2","KC_P3","KC_PEQL","KC_P0","KC_P0","KC_PDOT","KC_PENT"]],"author":""} diff --git a/keyboards/hub16/keymaps/default_tap_dance/keymap.c b/keyboards/hub16/keymaps/default_tap_dance/keymap.c deleted file mode 100755 index d3cad67ae1..0000000000 --- a/keyboards/hub16/keymaps/default_tap_dance/keymap.c +++ /dev/null @@ -1,115 +0,0 @@ -/* Copyright 2019 Josh Johnson - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public 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 - -// Function key we are 'wrapping' usual key presses in -#define KC_WRAP KC_F24 - -// Keyboard Layers -enum keyboard_layers{ - _BASE = 0, - _CTRL -}; - -// Tap Dance Declarations -void td_ctrl (qk_tap_dance_state_t *state, void *user_data); - -enum tap_dance { CTRL = 0, BASE = 1 }; - -qk_tap_dance_action_t tap_dance_actions[] = { - // Tap once for standard key on base layer, twice to toggle to control layer - [CTRL] = ACTION_TAP_DANCE_FN(td_ctrl), - [BASE] = ACTION_TAP_DANCE_LAYER_MOVE(_______, _BASE)}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT( /* Base */ - KC_S, KC_V, - KC_A, KC_B, KC_C, KC_D, - KC_E, KC_F, KC_G, KC_H, - KC_I, KC_J, KC_K, KC_L, - KC_M, KC_N, KC_O, TD(CTRL) - ), - - [_CTRL] = LAYOUT( /* Control */ - KC_NO, KC_NO, - _______, RGB_MOD, RGB_RMOD, RGB_TOG, - RGB_VAD, RGB_VAI, RGB_HUD, RGB_HUI, - RGB_SAD, RGB_SAI, _______, _______, - _______, _______, RESET, TD(BASE) - ), -}; - -// Keyboard is setup to 'wrap' the pressed key with an unused Fxx key, -// allowing for easy differentiation from a real keyboard. -void encoder_update_user(uint8_t index, bool clockwise) { - if (index == 0) { /* Left Encoder */ - if (clockwise) { - register_code(KC_WRAP); - tap_code(KC_R); - unregister_code(KC_WRAP); - } else { - register_code(KC_WRAP); - tap_code(KC_Q); - unregister_code(KC_WRAP); - } - } else if (index == 1) { /* Right Encoder */ - if (clockwise) { - register_code(KC_WRAP); - tap_code(KC_U); - unregister_code(KC_WRAP); - } else { - register_code(KC_WRAP); - tap_code(KC_T); - unregister_code(KC_WRAP); - } - } -} - -// Below stolen from TaranVH (https://github.com/TaranVH/2nd-keyboard/blob/master/HASU_USB/F24/keymap.c) -// Shoutout to drashna on the QMK discord for basically writing this for me.... :P -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - static uint8_t f24_tracker; - switch (keycode) { - case KC_A ... KC_F23: - case KC_EXECUTE ... KC_EXSEL: - if (record->event.pressed) { - register_code(KC_WRAP); - f24_tracker++; - register_code(keycode); - } else { - unregister_code(keycode); - f24_tracker--; - if (!f24_tracker) { - unregister_code(KC_WRAP); - } - } - return false; - break; - } - return true; -} - -// Below works around TD() not running key press through process_record_user. -// Fixes bug of CTRL layer move key not being wrapped in by modifier on single tap -void td_ctrl (qk_tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - register_code(KC_WRAP); - tap_code(KC_P); - unregister_code(KC_WRAP); - } else if (state->count == 2) { - layer_move(_CTRL); - } -} \ No newline at end of file diff --git a/keyboards/hub16/keymaps/default_tap_dance/rules.mk b/keyboards/hub16/keymaps/default_tap_dance/rules.mk deleted file mode 100644 index 25ec20cc46..0000000000 --- a/keyboards/hub16/keymaps/default_tap_dance/rules.mk +++ /dev/null @@ -1 +0,0 @@ -TAP_DANCE_ENABLE = yes # Support for tap dancing diff --git a/keyboards/hub16/keymaps/macro/keymap.c b/keyboards/hub16/keymaps/macro/keymap.c new file mode 100755 index 0000000000..3bf8fa31fd --- /dev/null +++ b/keyboards/hub16/keymaps/macro/keymap.c @@ -0,0 +1,115 @@ +/* Copyright 2019 Josh Johnson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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 + +// Function key we are 'wrapping' usual key presses in +#define KC_WRAP KC_F24 + +// Keyboard Layers +enum keyboard_layers{ + _BASE = 0, + _CTRL +}; + +// Tap Dance Declarations +void td_ctrl (qk_tap_dance_state_t *state, void *user_data); + +enum tap_dance { CTRL = 0, BASE = 1 }; + +qk_tap_dance_action_t tap_dance_actions[] = { + // Tap once for standard key on base layer, twice to toggle to control layer + [CTRL] = ACTION_TAP_DANCE_FN(td_ctrl), + [BASE] = ACTION_TAP_DANCE_LAYER_MOVE(_______, _BASE)}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT( /* Base */ + KC_S, KC_V, + KC_A, KC_B, KC_C, KC_D, + KC_E, KC_F, KC_G, KC_H, + KC_I, KC_J, KC_K, KC_L, + KC_M, KC_N, KC_O, TD(CTRL) + ), + + [_CTRL] = LAYOUT( /* Control */ + KC_NO, KC_NO, + _______, RGB_MOD, RGB_RMOD, RGB_TOG, + RGB_VAD, RGB_VAI, RGB_HUD, RGB_HUI, + RGB_SAD, RGB_SAI, _______, _______, + _______, _______, RESET, TD(BASE) + ), +}; + +// Keyboard is setup to 'wrap' the pressed key with an unused Fxx key, +// allowing for easy differentiation from a real keyboard. +void encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { /* Left Encoder */ + if (clockwise) { + register_code(KC_WRAP); + tap_code(KC_R); + unregister_code(KC_WRAP); + } else { + register_code(KC_WRAP); + tap_code(KC_Q); + unregister_code(KC_WRAP); + } + } else if (index == 1) { /* Right Encoder */ + if (clockwise) { + register_code(KC_WRAP); + tap_code(KC_U); + unregister_code(KC_WRAP); + } else { + register_code(KC_WRAP); + tap_code(KC_T); + unregister_code(KC_WRAP); + } + } +} + +// Below stolen from TaranVH (https://github.com/TaranVH/2nd-keyboard/blob/master/HASU_USB/F24/keymap.c) +// Shoutout to drashna on the QMK discord for basically writing this for me.... :P +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + static uint8_t f24_tracker; + switch (keycode) { + case KC_A ... KC_F23: + case KC_EXECUTE ... KC_EXSEL: + if (record->event.pressed) { + register_code(KC_WRAP); + f24_tracker++; + register_code(keycode); + } else { + unregister_code(keycode); + f24_tracker--; + if (!f24_tracker) { + unregister_code(KC_WRAP); + } + } + return false; + break; + } + return true; +} + +// Below works around TD() not running key press through process_record_user. +// Fixes bug of CTRL layer move key not being wrapped in by modifier on single tap +void td_ctrl (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + register_code(KC_WRAP); + tap_code(KC_P); + unregister_code(KC_WRAP); + } else if (state->count == 2) { + layer_move(_CTRL); + } +} diff --git a/keyboards/hub16/keymaps/macro/rules.mk b/keyboards/hub16/keymaps/macro/rules.mk new file mode 100644 index 0000000000..e5ddcae8d9 --- /dev/null +++ b/keyboards/hub16/keymaps/macro/rules.mk @@ -0,0 +1 @@ +TAP_DANCE_ENABLE = yes diff --git a/keyboards/hub16/keymaps/no_mod/keymap.c b/keyboards/hub16/keymaps/no_mod/keymap.c deleted file mode 100755 index 7c57ffbfe2..0000000000 --- a/keyboards/hub16/keymaps/no_mod/keymap.c +++ /dev/null @@ -1,78 +0,0 @@ -/* Copyright 2019 Josh Johnson - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public 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 - -// Keyboard Layers -enum keyboard_layers{ - _BASE = 0, - _CONTROL -}; - -// Tap Dance Declarations -enum tap_dance { TD_TO_LED = 0, TD_TO_DEFAULT = 1 }; - -qk_tap_dance_action_t tap_dance_actions[] = { - // Tap once for standard key, twice to toggle to control layer - [TD_TO_LED] = ACTION_TAP_DANCE_DUAL_ROLE(KC_P, _CONTROL), - [TD_TO_DEFAULT] = ACTION_TAP_DANCE_DUAL_ROLE(KC_P, _BASE)}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT( /* Base */ - KC_S, KC_V, - KC_A, KC_B, KC_C, KC_D, - KC_E, KC_F, KC_G, KC_H, - KC_I, KC_J, KC_K, KC_L, - KC_M, KC_N, KC_O, TD(TD_TO_LED) - ), - - [_CONTROL] = LAYOUT( /* LED Control */ - KC_NO, KC_NO, - _______, RGB_MOD, RGB_RMOD, RGB_TOG, - RGB_VAD, RGB_VAI, RGB_HUD, RGB_HUI, - RGB_SAD, RGB_SAI, _______, _______, - _______, _______, RESET, TD(TD_TO_DEFAULT) - ), -}; - -void encoder_update_user(uint8_t index, bool clockwise) { - if (index == 0) { /* Left Encoder */ - if (clockwise) { - tap_code(KC_R); - } else { - tap_code(KC_Q); - } - } else if (index == 1) { /* Right Encoder */ - if (clockwise) { - tap_code(KC_U); - } else { - tap_code(KC_T); - } - } -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - // Example of "pressing" CONTROL+SHIFT+V instead of "A" on keyboard - // More info: https://docs.qmk.fm/#/feature_macros - // case KC_A: - // if (record->event.pressed) { - // SEND_STRING(SS_LCTL(SS_LSFT("v"))); - // } else { - // } - // break; - } - return true; -}; diff --git a/keyboards/hub16/keymaps/via/rules.mk b/keyboards/hub16/keymaps/via/rules.mk index b1c00b69f5..1e5b99807c 100644 --- a/keyboards/hub16/keymaps/via/rules.mk +++ b/keyboards/hub16/keymaps/via/rules.mk @@ -1,4 +1 @@ VIA_ENABLE = yes -CONSOLE_ENABLE = no -COMMAND_ENABLE = no -TAP_DANCE_ENABLE = no -- cgit v1.2.3