Browse Source

Add toggle for Disable CTRL-SPACE function (ANSI and ISO)

pull/17398/head
gourdo1 1 year ago
parent
commit
5b249cf0c6
4 changed files with 55 additions and 33 deletions
  1. +7
    -2
      keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/keymap.c
  2. +7
    -2
      keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/keymap.c
  3. +39
    -25
      users/gourdo1/gourdo1.c
  4. +2
    -4
      users/gourdo1/gourdo1.h

+ 7
- 2
keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/keymap.c View File

@ -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();


+ 7
- 2
keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/keymap.c View File

@ -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();


+ 39
- 25
users/gourdo1/gourdo1.c View File

@ -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);
}

+ 2
- 4
users/gourdo1/gourdo1.h View File

@ -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


Loading…
Cancel
Save