diff options
Diffstat (limited to 'keyboards/lily58/keymaps/paulomp90/features')
-rw-r--r-- | keyboards/lily58/keymaps/paulomp90/features/custom_shift_keys.c | 67 | ||||
-rw-r--r-- | keyboards/lily58/keymaps/paulomp90/features/custom_shift_keys.h | 29 |
2 files changed, 0 insertions, 96 deletions
diff --git a/keyboards/lily58/keymaps/paulomp90/features/custom_shift_keys.c b/keyboards/lily58/keymaps/paulomp90/features/custom_shift_keys.c deleted file mode 100644 index f2e091c0b9..0000000000 --- a/keyboards/lily58/keymaps/paulomp90/features/custom_shift_keys.c +++ /dev/null @@ -1,67 +0,0 @@ -/* Copyright 2023 Paulo Pereira - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -#include "custom_shift_keys.h" - -bool process_custom_shift_keys(uint16_t keycode, keyrecord_t *record) { - static uint16_t registered_keycode = KC_NO; - - // If a custom shift key is registered, then this event is either - // releasing it or manipulating another key at the same time. Either way, - // we release the currently registered key. - if (registered_keycode != KC_NO) { - unregister_code16(registered_keycode); - registered_keycode = KC_NO; - } - - if (record->event.pressed) { // Press event. - const uint8_t mods = get_mods(); -#ifndef NO_ACTION_ONESHOT - if ((mods | get_weak_mods() | get_oneshot_mods()) & MOD_MASK_SHIFT) { -#else - if ((mods | get_weak_mods()) & MOD_MASK_SHIFT) { // Shift is held. -#endif // NO_ACTION_ONESHOT - // Continue default handling if this is a tap-hold key being held. - if ((IS_QK_MOD_TAP(keycode) || IS_QK_LAYER_TAP(keycode)) && - record->tap.count == 0) { - return true; - } - - // Search for a custom shift key whose keycode is `keycode`. - for (int i = 0; i < NUM_CUSTOM_SHIFT_KEYS; ++i) { - if (keycode == custom_shift_keys[i].keycode) { - registered_keycode = custom_shift_keys[i].shifted_keycode; - if (IS_QK_MODS(registered_keycode) && // Should key be shifted? - (QK_MODS_GET_MODS(registered_keycode) & MOD_LSFT) != 0) { - register_code16(registered_keycode); // If so, press directly. - } else { - // If not, cancel shift mods, press the key, and restore mods. - del_weak_mods(MOD_MASK_SHIFT); -#ifndef NO_ACTION_ONESHOT - del_oneshot_mods(MOD_MASK_SHIFT); -#endif // NO_ACTION_ONESHOT - unregister_mods(MOD_MASK_SHIFT); - register_code16(registered_keycode); - set_mods(mods); - } - return false; - } - } - } - } - - return true; // Continue with default handling. -} diff --git a/keyboards/lily58/keymaps/paulomp90/features/custom_shift_keys.h b/keyboards/lily58/keymaps/paulomp90/features/custom_shift_keys.h deleted file mode 100644 index 2097f2bb7e..0000000000 --- a/keyboards/lily58/keymaps/paulomp90/features/custom_shift_keys.h +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright 2023 Paulo Pereira - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - - -#pragma once -#include QMK_KEYBOARD_H - -typedef struct { - uint16_t keycode; - uint16_t shifted_keycode; -} custom_shift_key_t; - -extern const custom_shift_key_t custom_shift_keys[]; -extern uint8_t NUM_CUSTOM_SHIFT_KEYS; - -bool process_custom_shift_keys(uint16_t keycode, keyrecord_t *record);
\ No newline at end of file |