diff --git a/keyboards/klor/config.h b/keyboards/klor/config.h
index d67cf801..1d88248c 100644
--- a/keyboards/klor/config.h
+++ b/keyboards/klor/config.h
@@ -38,8 +38,9 @@ along with this program. If not, see .
#ifdef AUDIO_ENABLE
# define KLOR_SOUND W__NOTE(_DS0), W__NOTE(_DS1), H__NOTE(_DS2), H__NOTE(_DS3), Q__NOTE(_DS4), Q__NOTE(_DS5), E__NOTE(_DS6), E__NOTE(_DS7), S__NOTE(_DS8), Q__NOTE(_GS0)
-# define STARTUP_SONG SONG(KLOR_SOUND)
# define BYE_SOUND H__NOTE(_DS4), H__NOTE(_DS3), W__NOTE(_DS1)
+
+# define STARTUP_SONG SONG(KLOR_SOUND)
# define GOODBYE_SONG SONG(BYE_SOUND)
# define DEFAULT_LAYER_SONGS \
{ SONG(QWERTY_SOUND), SONG(COLEMAK_SOUND) }
@@ -49,15 +50,15 @@ along with this program. If not, see .
// │ h a p t i c f e e d b a c k │
// └─────────────────────────────────────────────────┘
-#ifdef HAPTIC_ENABLE
-# define FB_ERM_LRA 1
-# define FB_BRAKEFACTOR 3 // For 1x:0, 2x:1, 3x:2, 4x:3, 6x:4, 8x:5, 16x:6, Disable Braking:7
-# define FB_LOOPGAIN 1 // For Low:0, Medium:1, High:2, Very High:3
-# define RATED_VOLTAGE 2
-# define V_PEAK 2.8
-# define V_RMS 2.0
-# define F_LRA 150 // resonance freq
-# define DRV_GREETING alert_750ms
+#if defined(HAPTIC_ENABLE) && defined(HAPTIC_DRV2605L)
+# define DRV2605L_FB_ERM_LRA 1
+# define DRV2605L_FB_BRAKEFACTOR 3 // For 1x:0, 2x:1, 3x:2, 4x:3, 6x:4, 8x:5, 16x:6, Disable Braking:7
+# define DRV2605L_FB_LOOPGAIN 1 // For Low:0, Medium:1, High:2, Very High:3
+# define DRV2605L_RATED_VOLTAGE 2
+# define DRV2605L_V_PEAK 2.8
+# define DRV2605L_V_RMS 2.0
+# define DRV2605L_F_LRA 150 // resonance freq
+# define DRV2605L_GREETING DRV2605L_EFFECT_750_MS_ALERT_100
#endif
// ┌─────────────────────────────────────────────────┐
diff --git a/keyboards/klor/keymaps/t4corun/rules.mk b/keyboards/klor/keymaps/t4corun/rules.mk
index 9125104c..956e11ac 100644
--- a/keyboards/klor/keymaps/t4corun/rules.mk
+++ b/keyboards/klor/keymaps/t4corun/rules.mk
@@ -5,7 +5,6 @@
# keyboards\klor\rules.mk
# keyboards\klor\2040\rules.mk
AUDIO_ENABLE = yes
-MUSIC_ENABLE = yes
HAPTIC_ENABLE = yes
RGB_MATRIX_ENABLE = yes
diff --git a/users/t4corun/config.h b/users/t4corun/config.h
index 312fdd42..8cce84d5 100644
--- a/users/t4corun/config.h
+++ b/users/t4corun/config.h
@@ -52,4 +52,12 @@
#if defined(OLED_ENABLE)
# include "config/oled_config.h"
+#endif
+
+#if defined(HAPTIC_ENABLE)
+# include "config/haptic_config.h"
+#endif
+
+#if defined(AUDIO_ENABLE)
+# include "config/audio_config.h"
#endif
\ No newline at end of file
diff --git a/users/t4corun/config/audio_config.h b/users/t4corun/config/audio_config.h
new file mode 100644
index 00000000..46baa0b9
--- /dev/null
+++ b/users/t4corun/config/audio_config.h
@@ -0,0 +1,30 @@
+#pragma once
+
+/* Audio
+*
+* https://docs.qmk.fm/#/feature_audio
+* https://docs.qmk.fm/#/squeezing_avr?id=audio-settings
+*
+*/
+
+//Clear variables we plan to use that might be set elsewhere
+#undef NO_MUSIC_MODE
+#undef AUDIO_CLICKY
+#undef STARTUP_SONG
+#undef GOODBYE_SONG
+#undef DEFAULT_LAYER_SONGS
+#undef KLOR_SOUND
+
+//Set common configuration for all keyboards
+#define KLOR_SOUND W__NOTE(_DS0), W__NOTE(_DS1), H__NOTE(_DS2), H__NOTE(_DS3), Q__NOTE(_DS4), Q__NOTE(_DS5), E__NOTE(_DS6), E__NOTE(_DS7), S__NOTE(_DS8), Q__NOTE(_GS0)
+#define BYE_SOUND H__NOTE(_DS4), H__NOTE(_DS3), W__NOTE(_DS1)
+
+#define NO_MUSIC_MODE
+#define AUDIO_CLICKY
+#define STARTUP_SONG SONG(KLOR_SOUND)
+#define GOODBYE_SONG SONG(BYE_SOUND)
+#define DEFAULT_LAYER_SONGS \
+ { SONG(QWERTY_SOUND) \
+ ,SONG(COLEMAK_SOUND) \
+ ,SONG(GUITAR_SOUND) \
+ }
diff --git a/users/t4corun/config/combo_config.h b/users/t4corun/config/combo_config.h
index bf15c3bd..ba731e1f 100644
--- a/users/t4corun/config/combo_config.h
+++ b/users/t4corun/config/combo_config.h
@@ -22,5 +22,5 @@
#define COMBO_TERM 35
-#define COMBO_MUST_TAP_PER_COMBO
+//#define COMBO_MUST_TAP_PER_COMBO
#define COMBO_SHOULD_TRIGGER
\ No newline at end of file
diff --git a/users/t4corun/config/haptic_config.h b/users/t4corun/config/haptic_config.h
new file mode 100644
index 00000000..bd1ef320
--- /dev/null
+++ b/users/t4corun/config/haptic_config.h
@@ -0,0 +1,17 @@
+#pragma once
+
+/* Haptic Feedback
+*
+* https://docs.qmk.fm/#/feature_haptic_feedback
+*
+*/
+
+#if defined(HAPTIC_DRV2605L)
+//Clear variables we plan to use that might be set elsewhere
+# undef DRV2605L_GREETING
+# undef DRV2605L_DEFAULT_MODE
+
+//Set common configuration for all keyboards
+# define DRV2605L_GREETING DRV2605L_EFFECT_750_MS_ALERT_100
+# define DRV2605L_DEFAULT_MODE DRV2605L_EFFECT_STRONG_CLICK_1_100
+#endif //HAPTIC_DRV2605L
\ No newline at end of file
diff --git a/users/t4corun/config/rgbmatrix_config.h b/users/t4corun/config/rgbmatrix_config.h
index 5612f3e1..adddafc3 100644
--- a/users/t4corun/config/rgbmatrix_config.h
+++ b/users/t4corun/config/rgbmatrix_config.h
@@ -139,7 +139,10 @@
#define RGB_MATRIX_DEFAULT_SPD 32
//Set per keyboard configuration
-#if defined(KEYBOARD_bastardkb_charybdis_3x5) || defined(KEYBOARD_dztech_dz60rgb_v2_1) || defined(KEYBOARD_bluebell_swoop)
+#if defined(KEYBOARD_bastardkb_charybdis_3x5) \
+ || defined(KEYBOARD_dztech_dz60rgb_v2_1) \
+ || defined(KEYBOARD_bluebell_swoop) \
+ || defined(KEYBOARD_klor_2040)
# define ENABLE_RGB_MATRIX_BREATHING
# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
@@ -165,7 +168,7 @@
# define ENABLE_RGB_MATRIX_BREATHING
# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
# define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_BREATHING
-#endif //defined(KEYBOARD_bastardkb_charybdis_3x5) || defined(KEYBOARD_dztech_dz60rgb_v2_1)
+#endif //KEYBOARD_bastardkb_charybdis_3x5...
//heatmap specific settings
#if defined(ENABLE_RGB_MATRIX_TYPING_HEATMAP)
diff --git a/users/t4corun/config/tapping_config.h b/users/t4corun/config/tapping_config.h
index ef891794..d3215835 100644
--- a/users/t4corun/config/tapping_config.h
+++ b/users/t4corun/config/tapping_config.h
@@ -27,6 +27,7 @@
#define WAIT_DELAY 5 //custom variable to configure time between taps
#define TAPPING_TERM 175
+#define TAPPING_TERM_PER_KEY
#define QUICK_TAP_TERM 120
diff --git a/users/t4corun/features/combo.c b/users/t4corun/features/combo.c
index 38d17391..2ecdffe5 100644
--- a/users/t4corun/features/combo.c
+++ b/users/t4corun/features/combo.c
@@ -1,18 +1,18 @@
#include "combo.h"
+/*
bool get_combo_must_tap(uint16_t index, combo_t *combo) {
switch (index) {
-#if defined(MOUSEKEY_ENABLE)
- case MOUSE_BUTTON3:
- case MOUSE_BUTTON4:
- case MOUSE_BUTTON5:
- case MOUSE_DRGTOG:
-#endif //MOUSEKEY_ENABLEdf
+// case MOUSE_BUTTON3:
+// case MOUSE_BUTTON4:
+// case MOUSE_BUTTON5:
+// case MOUSE_DRGTOG:
+
case KEY_ENT:
- case KEY_TAB:
+// case KEY_TAB:
return true;
default:
@@ -20,7 +20,7 @@ bool get_combo_must_tap(uint16_t index, combo_t *combo) {
}
-}
+} */
bool combo_should_trigger(uint16_t combo_index, combo_t *combo, uint16_t keycode, keyrecord_t *record) {
@@ -29,11 +29,13 @@ bool combo_should_trigger(uint16_t combo_index, combo_t *combo, uint16_t keycode
switch (combo_index) {
- case MOUSE_BUTTON1:
- case MOUSE_BUTTON2:
- case MOUSE_BUTTON3:
- case MOUSE_BUTTON4:
- case MOUSE_BUTTON5:
+
+// case MOUSE_BUTTON1:
+// case MOUSE_BUTTON2:
+// case MOUSE_BUTTON3:
+// case MOUSE_BUTTON4:
+// case MOUSE_BUTTON5:
+
case MOUSE_DRGTOG:
if ( get_highest_layer(layer_state | default_layer_state) > _DEFAULT_LAYER_1 ) return false;
diff --git a/users/t4corun/features/combo.h b/users/t4corun/features/combo.h
index b4790cd6..4ced55b4 100644
--- a/users/t4corun/features/combo.h
+++ b/users/t4corun/features/combo.h
@@ -2,39 +2,32 @@
#include "t4corun.h"
-
-#if defined(MOUSEKEY_ENABLE)
-const uint16_t PROGMEM mou_btn1_combo[] = { KC_D, KC_F, COMBO_END };
-const uint16_t PROGMEM mou_btn2_combo[] = { KC_S, KC_D, COMBO_END };
-const uint16_t PROGMEM mou_btn3_combo[] = { KC_F, KC_G, COMBO_END };
-const uint16_t PROGMEM mou_btn4_combo[] = { KC_F, KC_R, COMBO_END };
-const uint16_t PROGMEM mou_btn5_combo[] = { KC_T, KC_G, COMBO_END };
+//const uint16_t PROGMEM mou_btn1_combo[] = { KC_D, KC_F, COMBO_END };
+//const uint16_t PROGMEM mou_btn2_combo[] = { KC_S, KC_D, COMBO_END };
+//const uint16_t PROGMEM mou_btn3_combo[] = { KC_F, KC_G, COMBO_END };
+//const uint16_t PROGMEM mou_btn4_combo[] = { KC_F, KC_R, COMBO_END };
+//const uint16_t PROGMEM mou_btn5_combo[] = { KC_T, KC_G, COMBO_END };
const uint16_t PROGMEM mou_drg_combo[] = { KC_X, KC_C, COMBO_END };
-#endif //MOUSEKEY_ENABLE
-const uint16_t PROGMEM key_ent_combo[] = { KC_C, KC_V, COMBO_END };
-const uint16_t PROGMEM key_tab_combo[] = { KC_U, KC_I, COMBO_END };
-const uint16_t PROGMEM key_bspc_combo[] = { KC_M, TR_COMM, COMBO_END };
+
+//const uint16_t PROGMEM key_ent_combo[] = { KC_C, KC_V, COMBO_END };
+//const uint16_t PROGMEM key_tab_combo[] = { KC_U, KC_I, COMBO_END };
+//const uint16_t PROGMEM key_bspc_combo[] = { KC_M, TR_COMM, COMBO_END };
enum combos {
-
-#if defined(MOUSEKEY_ENABLE)
- MOUSE_BUTTON1,
- MOUSE_BUTTON2,
- MOUSE_BUTTON3,
- MOUSE_BUTTON4,
- MOUSE_BUTTON5,
+// MOUSE_BUTTON1,
+// MOUSE_BUTTON2,
+// MOUSE_BUTTON3,
+// MOUSE_BUTTON4,
+// MOUSE_BUTTON5,
MOUSE_DRGTOG,
-#endif //MOUSEKEY_ENABLE
-
- KEY_ENT,
- KEY_TAB,
- KEY_BSPC,
+// KEY_ENT,
+// KEY_TAB,
+// KEY_BSPC,
COMBO_LENGTH
-
};
@@ -43,18 +36,15 @@ uint16_t COMBO_LEN = COMBO_LENGTH;
combo_t key_combos[COMBO_LENGTH] = {
+// [MOUSE_BUTTON1] = COMBO(mou_btn1_combo, KC_BTN1),
+// [MOUSE_BUTTON2] = COMBO(mou_btn2_combo, KC_BTN2),
+// [MOUSE_BUTTON3] = COMBO(mou_btn3_combo, KC_BTN3),
+// [MOUSE_BUTTON4] = COMBO(mou_btn4_combo, KC_BTN4),
+// [MOUSE_BUTTON5] = COMBO(mou_btn5_combo, KC_BTN5),
+ [MOUSE_DRGTOG] = COMBO(mou_drg_combo, TR_DRGS)
-#if defined(MOUSEKEY_ENABLE)
- [MOUSE_BUTTON1] = COMBO(mou_btn1_combo, KC_BTN1),
- [MOUSE_BUTTON2] = COMBO(mou_btn2_combo, KC_BTN2),
- [MOUSE_BUTTON3] = COMBO(mou_btn3_combo, KC_BTN3),
- [MOUSE_BUTTON4] = COMBO(mou_btn4_combo, KC_BTN4),
- [MOUSE_BUTTON5] = COMBO(mou_btn5_combo, KC_BTN5),
- [MOUSE_DRGTOG] = COMBO(mou_drg_combo, TR_DRGS),
-#endif //MOUSEKEY_ENABLE
-
- [KEY_ENT] = COMBO(key_ent_combo, KC_ENT),
- [KEY_TAB] = COMBO(key_tab_combo, KC_TAB),
- [KEY_BSPC] = COMBO(key_bspc_combo, KC_BSPC)
+// [KEY_ENT] = COMBO(key_ent_combo, KC_ENT),
+// [KEY_TAB] = COMBO(key_tab_combo, KC_TAB),
+// [KEY_BSPC] = COMBO(key_bspc_combo, KC_BSPC)
};
\ No newline at end of file
diff --git a/users/t4corun/features/keyoverride.c b/users/t4corun/features/keyoverride.c
index a21b2e28..60ea2b09 100644
--- a/users/t4corun/features/keyoverride.c
+++ b/users/t4corun/features/keyoverride.c
@@ -29,10 +29,17 @@ const key_override_t f10_override = ko_make_with_layers(MOD_MASK_CSA, K
const key_override_t f11_override = ko_make_with_layers(MOD_MASK_CSA, KC_DOT, KC_F11, 1<<_NUMBER);
const key_override_t f12_override = ko_make_with_layers(MOD_MASK_CSA, KC_MINS, KC_F12, 1<<_NUMBER);
-const key_override_t mb1_override = ko_make_with_layers(MOD_MASK_CTRL, KC_BTN1, KC_PSCR, 1<<_NUMBER);
-const key_override_t mb2_override = ko_make_with_layers(MOD_MASK_ALT, KC_BTN2, SC_FILE, 1<<_NUMBER);
+const key_override_t mb2_override = ko_make_with_layers(MOD_MASK_CTRL, KC_BTN2, KC_BTN4, 1<<_NUMBER);
+const key_override_t mb3_override = ko_make_with_layers(MOD_MASK_ALT, KC_BTN3, KC_BTN5, 1<<_NUMBER);
+#if defined(HAPTIC_ENABLE)
+const key_override_t hfnext_override = ko_make_with_layers(MOD_MASK_SHIFT, TR_HNXT, HF_PREV, 1<<_CONFIG);
+const key_override_t hfconu_override = ko_make_with_layers(MOD_MASK_SHIFT, TR_HCNU, HF_COND, 1<<_CONFIG);
+#endif //HAPTIC_ENABLE
+#if defined(AUDIO_ENABLE)
+const key_override_t ckup_override = ko_make_with_layers(MOD_MASK_SHIFT, CK_UP, CK_DOWN, 1<<_CONFIG);
+#endif //AUDIO_ENABLE
const key_override_t **key_overrides = (const key_override_t *[]) {
@@ -50,8 +57,18 @@ const key_override_t **key_overrides = (const key_override_t *[]) {
&f10_override,
&f11_override,
&f12_override,
- &mb1_override,
&mb2_override,
+ &mb3_override,
+
+#if defined(HAPTIC_ENABLE)
+ &hfnext_override,
+ &hfconu_override,
+#endif //HAPTIC_ENABLE
+
+#if defined(AUDIO_ENABLE)
+ &ckup_override,
+#endif //AUDIO_ENABLE
+
NULL // Null terminate the array of overrides!
};
\ No newline at end of file
diff --git a/users/t4corun/features/tapping.c b/users/t4corun/features/tapping.c
new file mode 100644
index 00000000..8f74b616
--- /dev/null
+++ b/users/t4corun/features/tapping.c
@@ -0,0 +1,11 @@
+#include tapping.h
+
+uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case NAV:
+ return TAPPING_TERM - 40;
+
+ default:
+ return TAPPING_TERM;
+ }
+}
\ No newline at end of file
diff --git a/users/t4corun/features/tapping.h b/users/t4corun/features/tapping.h
new file mode 100644
index 00000000..2a576cc3
--- /dev/null
+++ b/users/t4corun/features/tapping.h
@@ -0,0 +1,2 @@
+#pragma once
+#include "t4corun.h"
\ No newline at end of file
diff --git a/users/t4corun/rules.mk b/users/t4corun/rules.mk
index 8100f634..e4d9e80a 100644
--- a/users/t4corun/rules.mk
+++ b/users/t4corun/rules.mk
@@ -25,20 +25,23 @@ POINTING_DEVICE_ENABLE ?= no
OLED_ENABLE ?= no
ENCODER_ENABLE ?= no
ENCODER_MAP_ENABLE ?= no
+HAPTIC_ENABLE ?= no
+AUDIO_ENABLE ?= no
# qmk features we will force
EXTRAKEY_ENABLE = yes
-AUDIO_ENABLE = no
CAPS_WORD_ENABLE = yes
MOUSEKEY_ENABLE = yes
COMBO_ENABLE = yes
KEY_OVERRIDE_ENABLE = yes
+MUSIC_MODE = no
# ---------------------------------------------------------
# include my code that will be common across all my keyboards
SRC += \
t4corun.c \
+ features/tapping.c \
features/taphold.c \
features/capsword.c \
features/keyoverride.c \
diff --git a/users/t4corun/t4corun.h b/users/t4corun/t4corun.h
index 76ddbc44..ee85be7b 100644
--- a/users/t4corun/t4corun.h
+++ b/users/t4corun/t4corun.h
@@ -47,7 +47,7 @@ enum keycodes {
#define ___x___ KC_NO
// momentary layer
-#define NAV MO(_NAVIGATION)
+#define NAV LT(_NAVIGATION, KC_0)
#define NUM MO(_NUMBER)
#define CONFIG MO(_CONFIG)
@@ -152,6 +152,36 @@ enum keycodes {
#endif //RGB_MATRIX_ENABLE || RGBLIGHT_ENABLE
+#if defined(HAPTIC_ENABLE)
+# define TR_HTOG HF_TOGG
+# define TR_HFBK HF_FDBK
+# define TR_HNXT HF_NEXT
+# define TR_HCNU HF_CONU
+# define TR_HRST HF_RST
+#else
+# define TR_HTOG ___x___
+# define TR_HFBK ___x___
+# define TR_HNXT ___x___
+# define TR_HCNU ___x___
+# define TR_HRST ___x___
+#endif //HAPTIC_ENABLe
+
+
+#if defined(AUDIO_ENABLE)
+# define TR_ATOG AU_TOGG
+# define TR_CTOG CK_TOGG
+# define TR_CKUP CK_UP
+# define TR_CRST CK_RST
+#else
+# define TR_ATOG ___x___
+# define TR_CTOG ___x___
+# define TR_CKUP ___x___
+# define TR_CRST ___x___
+#endif //AUDIO_ENABLE
+
+
+
+
#define _DEFAULT_LAYER_1 FIRST_DEFAULT_LAYER
#define _DEFAULT_LAYER_2 (FIRST_DEFAULT_LAYER + 1)
#define _DEFAULT_LAYER_3 (FIRST_DEFAULT_LAYER + 2)
@@ -192,15 +222,15 @@ enum keycodes {
#define LAYER_NAVIGATION \
- KC_ESC, KC_HOME, KC_UP, KC_END, KC_PGUP, ___x___, ___x___, ___x___, ___x___, CONFIG, \
- ___x___, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, ___x___, _SCAG_MODS________________________, \
- _UCCPR_L___________________________________, ___x___, KC_APP, TR_SNIP, TR_SDPI, TR_PDPI, \
+ KC_ESC, KC_HOME, KC_UP, KC_END, KC_PGUP, ___x___, KC_APP, SC_FILE, SC_SNIP, CONFIG, \
+ ___x___, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_BSPC, _SCAG_MODS________________________, \
+ _UCCPR_L___________________________________, ___x___, KC_TAB, TR_SNIP, TR_SDPI, TR_PDPI, \
ZOOMRST, NUM, KC_ENT, _LAYER_TRANS_____________
#define LAYER_NUMBER \
KC_ESC, KC_BTN3, KC_BTN2, KC_BTN1, TR_GRV, ___x___, KC_7, KC_8, KC_9, KC_COMM, \
- _GACS_MODS________________________, TR_SCLN, KC_0, KC_4, KC_5, KC_6, KC_DOT, \
+ _GACS_MODS________________________, TR_SCLN, KC_BSPC, KC_4, KC_5, KC_6, KC_DOT, \
_UCCPR_L___________________________________, ___x___, KC_1, KC_2, KC_3, KC_MINS, \
_LAYER_TRANS_____________, _BASE_R4_________________
@@ -213,8 +243,7 @@ enum keycodes {
#define LAYER_CONFIG \
- _NONE_5____________________________________, ___x___, ___x___, EE_CLR, QK_BOOT, _______, \
- _NONE_5____________________________________, ___x___, TR_LSFT, ___x___, ___x___, TR_RMOD, \
+ TR_HRST, TR_HCNU, TR_HNXT, TR_HFBK, TR_HTOG, ___x___, ___x___, EE_CLR, QK_BOOT, _______, \
+ TR_CRST, TR_CKUP, TR_CTOG, ___x___, TR_ATOG, ___x___, TR_LSFT, ___x___, ___x___, TR_RMOD, \
KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, TR_RTOG, TR_RHUI, TR_RSAI, TR_RVAI, TR_RSPI, \
BASELYR, TR_DMR1, TR_DMP1, ___x___, ___x___, TR_RTOG
-