From 8a1e656099a966966e7c81b08d9fb2770e8a61ad Mon Sep 17 00:00:00 2001 From: Zach Richard Date: Thu, 14 Dec 2017 00:20:44 -0500 Subject: new planck keymap, new feature - hybrid shift/enter action key (great for small keyboards!) (#2100) * new planck keymap, new feature - hybrid shift/enter action key (great for small keyboards!) * corrected documentation to specify rules.mk file instead of Makefile --- quantum/quantum.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'quantum/quantum.c') diff --git a/quantum/quantum.c b/quantum/quantum.c index 52f19af98..c80975f21 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -162,6 +162,11 @@ void reset_keyboard(void) { #define RSPC_KEY KC_0 #endif +// Shift / Enter setup +#ifndef SFTENT_KEY + #define SFTENT_KEY KC_ENT +#endif + static bool shift_interrupted[2] = {0, 0}; static uint16_t scs_timer[2] = {0, 0}; @@ -552,6 +557,24 @@ bool process_record_quantum(keyrecord_t *record) { } return false; } + + case KC_SFTENT: { + if (record->event.pressed) { + shift_interrupted[1] = false; + scs_timer[1] = timer_read (); + register_mods(MOD_BIT(KC_RSFT)); + } + else if (!shift_interrupted[1] && timer_elapsed(scs_timer[1]) < TAPPING_TERM) { + unregister_mods(MOD_BIT(KC_RSFT)); + register_code(SFTENT_KEY); + unregister_code(SFTENT_KEY); + } + else { + unregister_mods(MOD_BIT(KC_RSFT)); + } + return false; + } + case GRAVE_ESC: { uint8_t shifted = get_mods() & ((MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT) |MOD_BIT(KC_LGUI)|MOD_BIT(KC_RGUI))); -- cgit v1.2.3-24-g4f1b