diff --git a/keyboards/3w6/keymaps/helltm/combos.def b/keyboards/3w6/keymaps/helltm/combos.def new file mode 100644 index 000000000..49b95e5eb --- /dev/null +++ b/keyboards/3w6/keymaps/helltm/combos.def @@ -0,0 +1,18 @@ +CB(open_round_brackets_combo, KC_LPRN, KC_R, KC_T) +CB(open_square_brackets_combo, KC_LBRC, KC_F, KC_G) +CB(open_curly_brackets_combo, KC_LCBR, KC_V, KC_B) +CB(close_round_brackets_combo, KC_RPRN, KC_Y, KC_U) +CB(close_square_brackets_combo, KC_RBRC, KC_H, KC_J) +CB(close_curly_brackets_combo, KC_RCBR, KC_N, KC_M) + +CB(esc_combo, KC_ESC, KC_Q, KC_A) +CB(tab_combo, KC_TAB, KC_A, LSFT_T(KC_Z)) + +CB(single_quote_combo, KC_QUOT, KC_P, KC_SCLN) +CB(double_quote_combo, KC_DQUO, KC_SCLN, RSFT_T(KC_SLSH)) + +CB(plus_combo, KC_PLUS, KC_T, KC_G) +CB(asterisk_combo, KC_ASTR, KC_G, KC_B) + +CB(minus_combo, KC_MINS, KC_Y, KC_H) +CB(equal_combo, KC_EQL, KC_H, KC_N) diff --git a/keyboards/3w6/keymaps/helltm/combos.h b/keyboards/3w6/keymaps/helltm/combos.h new file mode 100644 index 000000000..85f44cd0d --- /dev/null +++ b/keyboards/3w6/keymaps/helltm/combos.h @@ -0,0 +1,35 @@ +/* Copyright 2021 HellSingCoder + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define CB(name, action, ...) C_##name, +enum user_combos { +#include "combos.def" + COMBO_LENGTH +}; +#undef CB +uint16_t COMBO_LEN = COMBO_LENGTH; + +#define CB(name, action, ...) const uint16_t PROGMEM name##_combo[] = {__VA_ARGS__, COMBO_END}; +#include "combos.def" +#undef CB + +combo_t key_combos[COMBO_LENGTH] = { +#define CB(name, action, ...) COMBO(name##_combo, action), +#include "combos.def" +#undef CB +}; diff --git a/keyboards/3w6/keymaps/helltm/config.h b/keyboards/3w6/keymaps/helltm/config.h new file mode 100644 index 000000000..9ccb616a0 --- /dev/null +++ b/keyboards/3w6/keymaps/helltm/config.h @@ -0,0 +1,20 @@ +/* Copyright 2021 HellSingCoder + * + * 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 + +/* Combo timer */ +#define COMBO_TERM 15 diff --git a/keyboards/3w6/keymaps/helltm/keymap.c b/keyboards/3w6/keymaps/helltm/keymap.c index 507085081..83ac6f02d 100644 --- a/keyboards/3w6/keymaps/helltm/keymap.c +++ b/keyboards/3w6/keymaps/helltm/keymap.c @@ -16,6 +16,10 @@ #include QMK_KEYBOARD_H +#ifdef COMBO_ENABLE +# include "combos.h" +#endif + enum layers { _ALPHA_QWERTY = 0, @@ -35,18 +39,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* * QWERTY - * _____ _____ - * .-----| E |-----._____ _____.-----| I |-----. - * .-----| W |_____| R | T | | Y | U |_____| O |-----. - * | Q |-----| D |-----|_____| |_____|-----| K |-----| P | - * |-----| S |_____| F | G | | H | J |_____| L |-----| - * | A |-----| C |-----|_____| |_____|-----| , < |-----| ; : | - * |-----| X |_____| V | B | | N | M |_____| . > |-----| - * | Z |-----' '-----|_____| |_____|-----' '-----| / ? | - * '-----' .-----. _____ .-.._ _..-. _____ .-----. '-----' - * SHIFT | WIN ||CTRL | / / \ \ | BSp || Del | SHIFT - * '-----':_____|/ ENT / \ SPC \|_____:'-----' - * NUM '--.._/ \_..--' NAV SYM + * + * _____________________ _____________________ + * __|__ | | __|__ + * _____ | | v v | | _____ + * .-----| E |-----._____ _____.-----| I |-----. + * .-----| W |_____| R | T | __ ( ) __ | Y | U |_____| O |-----. + * __ | Q |-----| D |-----|_____| __|--> + - <--|__ |_____|-----| K |-----| P | __ + * ESC <--|__ |-----| S |_____| F | G | [ ] | H | J |_____| L |-----| __|--> ' + * __ | A |-----| C |-----|_____| __ __ |_____|-----| , < |-----| ; : | __ + * TAB <--|__ |-----| X |_____| V | B | __|--> * { } = <--|__ | N | M |_____| . > |-----| __|--> " + * | Z |-----' '-----|_____| |_____|-----' '-----| / ? | + * '-----' .-----. _____ .-.._ _..-. _____ .-----. '-----' + * | | WIN ||CTRL | / / \ \ | BSp || Del | | + * SHIFT '-----':_____|/ ENT / \ SPC \|_____:'-----' SHIFT + * | '--.._/ \_..--' | | + * NUM NAV SYM */ [_ALPHA_QWERTY] = LAYOUT( KC_Q, KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , @@ -85,7 +93,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Esc |-----|Play |-----|_____| |_____|-----|Down |-----| BSp | * |-----|Prev |_____|Next | | |Home |Left |_____|Right|-----| * | Tab |-----|Stop |-----|_____| |_____|-----| |-----| ' " | - * |-----| |_____| |Swap | | | |_____| End |-----| + * |-----| |_____| | | | | |_____| End |-----| * | CPS |-----' '-----|_____| |_____|-----' '-----| Del | * '-----' .-----. _____ .-.._ _..-. _____ .-----. '-----' * SHIFT | ||CTRL | / / \ \ | BSp || | SHIFT @@ -93,10 +101,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * '--.._/ \_..--' */ [_NAV] = LAYOUT( - KC_ESC , KC_VOLD, KC_MUTE, KC_VOLU, XXXXXXX , XXXXXXX, KC_PGDN, KC_UP , KC_PGUP, KC_BSPC, - KC_TAB , KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX , KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_QUOT, - LSFT_T(KC_CAPS), XXXXXXX, KC_MSTP, XXXXXXX, KC_THUMB_SWAP, XXXXXXX, XXXXXXX, XXXXXXX, KC_END , RSFT_T(KC_DEL) , - XXXXXXX, _______, _______, _______, KC_BSPC, XXXXXXX + KC_ESC , KC_VOLD, KC_MUTE, KC_VOLU, XXXXXXX, XXXXXXX, KC_PGDN, KC_UP , KC_PGUP, KC_BSPC, + KC_TAB , KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_QUOT, + LSFT_T(KC_CAPS), XXXXXXX, KC_MSTP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_END , RSFT_T(KC_DEL) , + XXXXXXX, _______, _______, _______, KC_BSPC, XXXXXXX ), /* @@ -107,7 +115,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | 1 |-----| F3 |-----|_____| |_____|-----| F8 |-----| 0 | * |-----| F2 |_____| F4 | F5 | | F6 | F7 |_____| F9 |-----| * | F1 |-----| Scr |-----|_____| |_____|-----| |-----| F10 | - * |-----| TMg |_____| | | | | |_____| F11 |-----| + * |-----| TMg |_____| |Swap | | | |_____| F11 |-----| * |Shift|-----' '-----|_____| |_____|-----' '-----| F12 | * '-----' .-----. _____ .-.._ _..-. _____ .-----. '-----' * | ||CTRL | / / \ \ | BSp || | SHIFT @@ -115,10 +123,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * '--.._/ \_..--' */ [_NUM] = LAYOUT( - KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , - KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , - KC_LSFT, LCA(KC_DEL), SWIN(KC_S), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F11 , RSFT_T(KC_F12) , - XXXXXXX, _______, _______, _______, KC_BSPC, XXXXXXX + KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , + KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , + KC_LSFT, LCA(KC_DEL), SWIN(KC_S), XXXXXXX, KC_THUMB_SWAP, XXXXXXX, XXXXXXX, XXXXXXX, KC_F11 , RSFT_T(KC_F12) , + XXXXXXX, _______, _______, _______, KC_BSPC, XXXXXXX ), }; diff --git a/keyboards/3w6/keymaps/helltm/rules.mk b/keyboards/3w6/keymaps/helltm/rules.mk new file mode 100644 index 000000000..df85626f5 --- /dev/null +++ b/keyboards/3w6/keymaps/helltm/rules.mk @@ -0,0 +1,2 @@ +# Combos +COMBO_ENABLE = yes