diff --git a/keyboards/geekboards/macropad_v2/config.h b/keyboards/geekboards/macropad_v2/config.h index cb671bfab766..452eeb998be6 100644 --- a/keyboards/geekboards/macropad_v2/config.h +++ b/keyboards/geekboards/macropad_v2/config.h @@ -19,7 +19,7 @@ #define VENDOR_ID 0x0483 #define PRODUCT_ID 0xA372 #define DEVICE_VER 0x0002 -#define MANUFACTURER GeekBoards +#define MANUFACTURER Geekboards #define PRODUCT Macropad v2 /* key matrix size */ diff --git a/keyboards/geekboards/macropad_v2/keymaps/vial/config.h b/keyboards/geekboards/macropad_v2/keymaps/vial/config.h new file mode 100644 index 000000000000..5a78281d2a19 --- /dev/null +++ b/keyboards/geekboards/macropad_v2/keymaps/vial/config.h @@ -0,0 +1,9 @@ +#pragma once +#define VIAL_TAP_DANCE_ENTRIES 4 +#define VIAL_COMBO_ENTRIES 4 +#define VIAL_KEY_OVERRIDE_ENTRIES 4 + +#define VIAL_KEYBOARD_UID {0x2E, 0xFF, 0x8E, 0x5B, 0x9F, 0xF3, 0xDD, 0xE3} +#define VIAL_UNLOCK_COMBO_ROWS { 0, 1 } +#define VIAL_UNLOCK_COMBO_COLS { 0, 0 } + diff --git a/keyboards/geekboards/macropad_v2/keymaps/vial/keymap.c b/keyboards/geekboards/macropad_v2/keymaps/vial/keymap.c new file mode 100644 index 000000000000..fecfc2e93225 --- /dev/null +++ b/keyboards/geekboards/macropad_v2/keymaps/vial/keymap.c @@ -0,0 +1,91 @@ +/* Copyright 2020 Geekboards ltd. (geekboards.ru / geekboards.de) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H +#include + +bool is_alt_tab_active = false; +uint16_t alt_tab_timer = 0; + +enum custom_keycodes { + ALT_TAB = USER00, + SHIFT_ALT_TAB = USER01, +}; + +const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_2x4( + KC_1, KC_2, KC_3, KC_4, + KC_5, KC_6, KC_7, KC_8 + ), + + [1] = LAYOUT_ortho_2x4( + KC_A, KC_B, KC_C, KC_D, + KC_E, KC_F, KC_G, KC_H + ) +}; + +//------------ SUPER ALTTAB --------------- +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case ALT_TAB: + if (record->event.pressed) { + if (!is_alt_tab_active) { + is_alt_tab_active = true; + register_code(KC_LALT); + } + alt_tab_timer = timer_read(); + register_code(KC_TAB); + } else { + unregister_code(KC_TAB); + } + break; + case SHIFT_ALT_TAB: + if (record->event.pressed) { + if (!is_alt_tab_active) { + is_alt_tab_active = true; + register_code(KC_LALT); + register_code(KC_LSFT); + } + alt_tab_timer = timer_read(); + register_code(KC_TAB); + } else { + unregister_code(KC_TAB); + } + break; + } + return true; +} + +void matrix_scan_user(void) { + if (is_alt_tab_active) { + if (timer_elapsed(alt_tab_timer) > 1000) { + unregister_code(KC_LALT); + unregister_code(KC_LSFT); + is_alt_tab_active = false; + } + } +} + +void keyboard_post_init_user(void) { + // set default macro after reset (alt-tab) + uint8_t get[16] = {0}; + uint8_t zero[16] = {0}; + dynamic_keymap_macro_get_buffer(0,16,get); + if(memcmp(get, zero, 16) == 0) + { + uint8_t set[] = {2, 0xe2, 2, 0xe1, 3, 0xe1, 3, 0xe2, 0}; + dynamic_keymap_macro_set_buffer(0, 9, set); + } +} diff --git a/keyboards/geekboards/macropad_v2/keymaps/vial/readme.md b/keyboards/geekboards/macropad_v2/keymaps/vial/readme.md new file mode 100644 index 000000000000..8846bd59166f --- /dev/null +++ b/keyboards/geekboards/macropad_v2/keymaps/vial/readme.md @@ -0,0 +1 @@ +# The default keymap for Geekboards Macropad v2 diff --git a/keyboards/geekboards/macropad_v2/keymaps/vial/rules.mk b/keyboards/geekboards/macropad_v2/keymaps/vial/rules.mk new file mode 100644 index 000000000000..8f4bbec64ff3 --- /dev/null +++ b/keyboards/geekboards/macropad_v2/keymaps/vial/rules.mk @@ -0,0 +1,6 @@ +# LTO_ENABLE = yes +VIA_ENABLE = yes +VIAL_ENABLE = yes + +RGB_MATRIX_ENABLE = yes +VIALRGB_ENABLE = yes diff --git a/keyboards/geekboards/macropad_v2/keymaps/vial/vial.json b/keyboards/geekboards/macropad_v2/keymaps/vial/vial.json new file mode 100644 index 000000000000..902e943befda --- /dev/null +++ b/keyboards/geekboards/macropad_v2/keymaps/vial/vial.json @@ -0,0 +1,17 @@ +{ + "name": "Geekboards Macropad v2", + "vendorId": "0x0483", + "productId": "0xA372", + "customKeycodes": [ + {"name": "Alt Tab", "title": "Alt Tab", "shortName": "AltTab"}, + {"name": "Shift Alt Tab", "title": "Shift Alt Tab", "shortName": "ShiftAltTab"} + ], + "lighting": "vialrgb", + "matrix": { "rows": 2, "cols": 4 }, + "layouts": { + "keymap": [ + ["0,0", "0,1", "0,2", "0,3"], + ["1,0", "1,1", "1,2", "1,3"] + ] + } +} diff --git a/keyboards/geekboards/macropad_v2/readme.md b/keyboards/geekboards/macropad_v2/readme.md index 45bb7df6f3af..b28114635c5d 100644 --- a/keyboards/geekboards/macropad_v2/readme.md +++ b/keyboards/geekboards/macropad_v2/readme.md @@ -10,7 +10,7 @@ Hardware Availability: https://geekboards.ru Compile instruction for this keyboard (after setting up your build environment): - make geekboards/macropad_v2:via + make geekboards/macropad_v2:vial ## Update firmware ### Enter bootloader @@ -27,6 +27,6 @@ Alternatively: ### Flash - make geekboards/macropad_v2:via:flash + make geekboards/macropad_v2:vial: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).