Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

updating osx_whiskey_tango_foxtrot_capslock to use process_record_user #16715

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@ enum layer_names {

typedef enum onoff_t {OFF, ON} onoff;

#define caps_led_on ergodox_right_led_2_on
#define caps_led_off ergodox_right_led_2_off


const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap 0: Basic layer
*
Expand Down Expand Up @@ -123,7 +127,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/
// MEDIA AND TENKEY
[MDIA] = LAYOUT_ergodox(
KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_F14, KC_F15,
QK_BOOT, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_F14, KC_F15,
KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
Expand All @@ -142,6 +146,45 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS, KC_TRNS, KC_TRNS
),
};
#ifndef NO_FAKE_CAPS
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
static onoff caps_state = OFF;

switch (keycode) {
case KC_CAPS:
if (record->event.pressed) {
if (caps_state == OFF) {
caps_led_on();
caps_state = ON;
} else {
caps_led_off();
caps_state = OFF;
}
}
break;
default:
if (keycode < KC_A || keycode > KC_Z) {
// This isn't an alpha or a KC_CAPS, continue on as usual.
return true;
}
if (record->event.pressed) {
bool shifted = (caps_state == ON && get_mods() == 0);
if (shifted) {
register_code(KC_LSFT);
}
register_code(keycode);
if (shifted) {
unregister_code(KC_LSFT);
}
} else {
unregister_code(keycode);
}
break;
}
// If we get here, we've already handled the keypresses.
return false;
}
#endif

// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# uncomment below to disable fake capslock
# OPT_DEFS += -DNO_FAKE_CAPS