From 90a7193bf3eec00d7f9a110a4aa0f7f57530f38e Mon Sep 17 00:00:00 2001 From: Ashelyn Rose Date: Tue, 18 May 2021 22:08:41 -0600 Subject: [PATCH] =?UTF-8?q?Elegantly=20handle=20numlock=20when=20typing=20?= =?UTF-8?q?=C3=86=20and=20=C3=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- keymap/keymap.c | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/keymap/keymap.c b/keymap/keymap.c index c94a0e9..c599a71 100644 --- a/keymap/keymap.c +++ b/keymap/keymap.c @@ -61,7 +61,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, RGB_SPD, RGB_VAI, RGB_SPI, RGB_HUI, TG(_TL), _______, U_T_AUTO,U_T_AGCR,_______, KC_PSCR, KC_SLCK, KC_PAUS, _______, KC_DEL, \ _______, RGB_RMOD,RGB_VAD, RGB_MOD, RGB_HUD, TG(_GL), TG(_UL), _______, _______, G(KC_L), _______, _______, RCTL(KC_ENT), KC_VOLU, \ _______, RGB_TOG, _______, _______, _______, MD_BOOT, NK_TOGG, DBG_TOG, _______, _______, RCTL(KC_SLSH), _______, KC_PGUP, KC_VOLD, \ - _______, _______, _______, KC_MEDIA_PLAY_PAUSE, _______, MO(_FL), RCTL(KC_LEFT), KC_PGDN, RCTL(KC_RGHT) \ + KC_NLCK, _______, _______, KC_MEDIA_PLAY_PAUSE, _______, MO(_FL), RCTL(KC_LEFT), KC_PGDN, RCTL(KC_RGHT) \ ), [_TALI_LAYER] = LAYOUT( XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ @@ -361,24 +361,46 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if(keycode == KC_A){ if(record->event.pressed) { + bool numlock_enabled = host_keyboard_led_state().num_lock; + if (!numlock_enabled) { + register_code(KC_NUMLOCK); + unregister_code(KC_NUMLOCK); + } + register_code(KC_LALT); tap_code(KC_KP_0); tap_code(KC_KP_1); tap_code(KC_KP_9); tap_code(KC_KP_8); unregister_code(KC_LALT); + + if (!numlock_enabled) { + register_code(KC_NUMLOCK); + unregister_code(KC_NUMLOCK); + } } target_skipped = true; } if(keycode == KC_S){ if(record->event.pressed) { + bool numlock_enabled = host_keyboard_led_state().num_lock; + if (!numlock_enabled) { + register_code(KC_NUMLOCK); + unregister_code(KC_NUMLOCK); + } + register_code(KC_LALT); tap_code(KC_KP_0); tap_code(KC_KP_2); tap_code(KC_KP_3); tap_code(KC_KP_0); unregister_code(KC_LALT); + + if (!numlock_enabled) { + register_code(KC_NUMLOCK); + unregister_code(KC_NUMLOCK); + } } target_skipped = true; }