diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/keymap.c index a326e8f86a9..8fdbdb24db1 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/keymap.c +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/keymap.c @@ -76,7 +76,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #ifdef GAME_ENABLE [_FN1] = LAYOUT( EE_CLR, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_VOLD, KC_VOLU, KC_PSCR, KC_SLCK, KC_PAUS, KC_SLEP, - PRNCONF, TG_CAPS, TG_PAD, TG_ESC, TG_DEL, TG_TDCAP,TG_ENC, TG_INS, _______, _______, _______, RGB_TOD, RGB_TOI, _______, RGB_TOG, + PRNCONF, TG_CAPS, TG_PAD, TG_ESC, TG_DEL, TG_TDCAP,TG_ENC, TG_INS,TG_CTLSPC, _______, _______, RGB_TOD, RGB_TOI, _______, RGB_TOG, _______, RGB_SAD, RGB_VAI, RGB_SAI, NK_TOGG, _______, YAHOO, _______, _______, OUTLOOK, TG(_GAME),SWAP_L, SWAP_R, RESET, KC_HOME, KC_CAPS, RGB_HUD, RGB_VAD, RGB_HUI, _______, GMAIL, HOTMAIL, _______, _______, LOCKPC, _______, _______, _______, KC_END, _______, RGB_NITE,_______, _______, _______, _______, KC_NLCK, _______, _______, DOTCOM, KC_CAD, _______, RGB_MOD, _______, @@ -95,7 +95,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #else [_FN1] = LAYOUT( EE_CLR, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_VOLD, KC_VOLU, KC_PSCR, KC_SLCK, KC_PAUS, KC_SLEP, - PRNCONF, TG_CAPS, TG_PAD, TG_ESC, TG_DEL, TG_TDCAP,TG_ENC, TG_INS, _______, _______, _______, RGB_TOD, RGB_TOI, _______, RGB_TOG, + PRNCONF, TG_CAPS, TG_PAD, TG_ESC, TG_DEL, TG_TDCAP,TG_ENC, TG_INS,TG_CTLSPC, _______, _______, RGB_TOD, RGB_TOI, _______, RGB_TOG, _______, RGB_SAD, RGB_VAI, RGB_SAI, NK_TOGG, _______, YAHOO, _______, _______, OUTLOOK, KC_PAUS, SWAP_L, SWAP_R, RESET, KC_HOME, KC_CAPS, RGB_HUD, RGB_VAD, RGB_HUI, _______, GMAIL, HOTMAIL, _______, _______, LOCKPC, _______, _______, _______, KC_END, _______, RGB_NITE,_______, _______, _______, _______, KC_NLCK, _______, _______, DOTCOM, KC_CAD, _______, RGB_MOD, _______, @@ -390,6 +390,11 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { } else { rgb_matrix_set_color(LED_7, RGB_PURPLE); } + if (user_config.disable_ctrl_space) { + rgb_matrix_set_color(LED_8, RGB_GREEN); + } else { + rgb_matrix_set_color(LED_8, RGB_PURPLE); + } // Add RGB Timeout Indicator -- shows 0 to 139 using F row and num row; larger numbers using 16bit code uint16_t timeout_threshold = get_timeout_threshold(); diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/keymap.c b/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/keymap.c index fa77e6ac7d4..9d44a60712d 100644 --- a/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/keymap.c +++ b/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/keymap.c @@ -77,7 +77,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #ifdef GAME_ENABLE [_FN1] = LAYOUT( EE_CLR, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_VOLD, KC_VOLU, KC_PSCR, KC_SLCK, KC_PAUS, KC_SLEP, - PRNCONF, TG_CAPS, TG_PAD, TG_ESC, TG_DEL, TG_TDCAP,TG_ENC, TG_INS, _______, _______, _______, RGB_TOD, RGB_TOI, _______, RGB_TOG, + PRNCONF, TG_CAPS, TG_PAD, TG_ESC, TG_DEL, TG_TDCAP,TG_ENC, TG_INS,TG_CTLSPC, _______, _______, RGB_TOD, RGB_TOI, _______, RGB_TOG, _______, RGB_SAD, RGB_VAI, RGB_SAI, NK_TOGG, _______, YAHOO, _______, _______, OUTLOOK, TG(_GAME),SWAP_L, SWAP_R, KC_HOME, KC_CAPS, RGB_HUD, RGB_VAD, RGB_HUI, _______, GMAIL, HOTMAIL, _______, _______, LOCKPC, _______, _______, _______, _______, KC_END, _______, RESET, RGB_NITE,_______, _______, _______, _______, KC_NLCK, _______, _______, DOTCOM, KC_CAD, _______, RGB_MOD, _______, @@ -96,7 +96,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #else [_FN1] = LAYOUT( EE_CLR, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_VOLD, KC_VOLU, KC_PSCR, KC_SLCK, KC_PAUS, KC_SLEP, - PRNCONF, TG_CAPS, TG_PAD, TG_ESC, TG_DEL, TG_TDCAP,TG_ENC, TG_INS, _______, _______, _______, RGB_TOD, RGB_TOI, _______, RGB_TOG, + PRNCONF, TG_CAPS, TG_PAD, TG_ESC, TG_DEL, TG_TDCAP,TG_ENC, TG_INS,TG_CTLSPC, _______, _______, RGB_TOD, RGB_TOI, _______, RGB_TOG, _______, RGB_SAD, RGB_VAI, RGB_SAI, NK_TOGG, _______, YAHOO, _______, _______, OUTLOOK, KC_PAUS, SWAP_L, SWAP_R, KC_HOME, KC_CAPS, RGB_HUD, RGB_VAD, RGB_HUI, _______, GMAIL, HOTMAIL, _______, _______, LOCKPC, _______, _______, _______, _______, KC_END, _______, RESET, RGB_NITE,_______, _______, _______, _______, KC_NLCK, _______, _______, DOTCOM, KC_CAD, _______, RGB_MOD, _______, @@ -391,6 +391,11 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { } else { rgb_matrix_set_color(LED_7, RGB_PURPLE); } + if (user_config.disable_ctrl_space) { + rgb_matrix_set_color(LED_8, RGB_GREEN); + } else { + rgb_matrix_set_color(LED_8, RGB_PURPLE); + } // Add RGB Timeout Indicator -- shows 0 to 139 using F row and num row; larger numbers using 16bit code uint16_t timeout_threshold = get_timeout_threshold(); diff --git a/users/gourdo1/gourdo1.c b/users/gourdo1/gourdo1.c index 8531fb401b0..8879f03c245 100644 --- a/users/gourdo1/gourdo1.c +++ b/users/gourdo1/gourdo1.c @@ -183,6 +183,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t * record) { } else { SEND_STRING("[SHIFT]-[DEL]"SS_TAP(X_ENT)); } + SEND_STRING("8. Disable CTRL-SPACE function "); + if (user_config.disable_ctrl_space) { + SEND_STRING("[ON]"SS_TAP(X_ENT)); + } else { + SEND_STRING("[OFF]"SS_TAP(X_ENT)); + } SEND_STRING(SS_TAP(X_ENT)"The latest firmware updates are always here: https://github.com/gourdo1/gmmkpro-media"SS_TAP(X_ENT)); } break; @@ -229,6 +235,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t * record) { eeconfig_update_user(user_config.raw); // Writes the new status to EEPROM } break; + case TG_CTLSPC: // Toggle CTRL-SPACE disable function + if (record->event.pressed) { + user_config.disable_ctrl_space ^= 1; // Toggles the status + eeconfig_update_user(user_config.raw); // Writes the new status to EEPROM + } + break; //return false; // Key to the left of encoder function (default HOME) @@ -404,33 +416,34 @@ bool process_record_user(uint16_t keycode, keyrecord_t * record) { break; // Treat Control+Space as if regular Space - case KC_SPC: { - // Initialize a boolean variable that keeps track of the space key status: registered or not? - static bool spckey_registered; - if (record -> event.pressed) { - // Detect the activation of either ctrl keys - if (mod_state & MOD_MASK_CTRL) { - // First temporarily canceling both ctrls so that - // ctrl isn't applied to the KC_SPC keycode - del_mods(MOD_MASK_CTRL); - register_code(KC_SPC); - // Update the boolean variable to reflect the status of KC_SPC - spckey_registered = true; - // Reapplying modifier state so that the held ctrl key(s) - // still work even after having tapped the Space key. - set_mods(mod_state); - return false; - } - } else { // on release of KC_SPC - // In case KC_SPC is still being sent even after the release of KC_SPC - if (spckey_registered) { - unregister_code(KC_SPC); - spckey_registered = false; - return false; + case KC_SPC: + if(user_config.disable_ctrl_space) { + // Initialize a boolean variable that keeps track of the space key status: registered or not? + static bool spckey_registered; + if (record -> event.pressed) { + // Detect the activation of either ctrl keys + if (mod_state & MOD_MASK_CTRL) { + // First temporarily canceling both ctrls so that + // ctrl isn't applied to the KC_SPC keycode + del_mods(MOD_MASK_CTRL); + register_code(KC_SPC); + // Update the boolean variable to reflect the status of KC_SPC + spckey_registered = true; + // Reapplying modifier state so that the held ctrl key(s) + // still work even after having tapped the Space key. + set_mods(mod_state); + return false; + } + } else { // on release of KC_SPC + // In case KC_SPC is still being sent even after the release of KC_SPC + if (spckey_registered) { + unregister_code(KC_SPC); + spckey_registered = false; + return false; + } } } - } - break; + break; // Treat Shift+Space as if regular Space case KC_SHIFTSPC: { @@ -634,6 +647,7 @@ void eeconfig_init_user(void) { user_config.encoder_press_mute_or_media = true; user_config.esc_double_tap_to_baselyr = true; user_config.ins_on_shft_bkspc_or_del = true; + user_config.disable_ctrl_space = true; eeconfig_update_user(user_config.raw); } diff --git a/users/gourdo1/gourdo1.h b/users/gourdo1/gourdo1.h index bd69be63ba5..f08eb32ec61 100644 --- a/users/gourdo1/gourdo1.h +++ b/users/gourdo1/gourdo1.h @@ -51,7 +51,6 @@ enum custom_user_keycodes { KC_00 = SAFE_RANGE, ENCFUNC, // Encoder function CAPSNUM, // Capslock key function - //ESCLYR, // ESC layer function LEFTOFENC, // Key to the left of the encoder (i.e. F13) BELOWENC, // Key below encoder PRNCONF, // Print verbose statuses of all user_config toggles @@ -67,6 +66,7 @@ enum custom_user_keycodes { TG_ENC, // Toggle Encoder functionality TG_ESC, // Toggle ESC tapdance for _BASE layer TG_INS, // Toggle location of INS + TG_CTLSPC, // Toggle CTRL-SPACE disable function YAHOO, // yahoo.com OUTLOOK, // outlook.com @@ -90,7 +90,6 @@ enum custom_user_keycodes { // Tap Dance Definitions enum custom_tapdance { TD_LSFT_CAPS_WIN, - //TD_ESC_BASELYR }; // Set up boolean variables to track user customizable configuration options @@ -104,14 +103,13 @@ typedef union { bool double_tap_shift_for_capslock :1; bool encoder_press_mute_or_media :1; bool ins_on_shft_bkspc_or_del :1; + bool disable_ctrl_space :1; }; } user_config_t; user_config_t user_config; #define LSFTCAPSWIN TD(TD_LSFT_CAPS_WIN) -//#define ESCLYR TD(TD_ESC_BASELYR) -//#define CAPSNUM TD(TD_NUMPAD) // ENCODER ACTIONS #ifdef ENCODER_ENABLE