diff --git a/keyboards/3w6/keymaps/helltm/combos.def b/keyboards/3w6/keymaps/helltm/combos.def
new file mode 100644
index 0000000000..49b95e5eb2
--- /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 0000000000..85f44cd0d4
--- /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 0000000000..9ccb616a03
--- /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 507085081f..83ac6f02de 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 0000000000..df85626f5f
--- /dev/null
+++ b/keyboards/3w6/keymaps/helltm/rules.mk
@@ -0,0 +1,2 @@
+# Combos
+COMBO_ENABLE = yes