From 1ed03f498fa204178c2696c510ac6a2cd8524e2d Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sun, 26 Nov 2023 18:36:45 +0000 Subject: Remove userspace keymaps (#22544) --- users/drashna/keyrecords/unicode.c | 446 ------------------------------------- 1 file changed, 446 deletions(-) delete mode 100644 users/drashna/keyrecords/unicode.c (limited to 'users/drashna/keyrecords/unicode.c') diff --git a/users/drashna/keyrecords/unicode.c b/users/drashna/keyrecords/unicode.c deleted file mode 100644 index a4687d3e59..0000000000 --- a/users/drashna/keyrecords/unicode.c +++ /dev/null @@ -1,446 +0,0 @@ -// Copyright 2020 @ridingqwerty -// Copyright 2020 @tzarc -// Copyright 2021 Christopher Courtney, aka Drashna Jael're (@drashna) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "drashna.h" -#include "unicode.h" -#include "process_unicode_common.h" - -uint8_t unicode_typing_mode = UCTM_NO_MODE; -const char unicode_mode_str[UNCODES_MODE_END][13] PROGMEM = { - " Normal\0", - " Wide\0", - " Script\0", - " Blocks\0", - " Regional\0", - " Aussie\0", - " Zalgo\0", - "Super Script\0", - " Comic\0", -}; - -/** - * @brief Registers the unicode keystrokes based on desired unicode - * - * @param glyph Unicode character, supports up to 0x1FFFF (or higher) - */ -void tap_unicode_glyph_nomods(uint32_t glyph) { - uint8_t temp_mod = get_mods(); - clear_mods(); - clear_oneshot_mods(); - register_unicode(glyph); - set_mods(temp_mod); -} - -typedef uint32_t (*translator_function_t)(bool is_shifted, uint32_t keycode); - -#define DEFINE_UNICODE_RANGE_TRANSLATOR(translator_name, lower_alpha, upper_alpha, zero_glyph, number_one, space_glyph) \ - static inline uint32_t translator_name(bool is_shifted, uint32_t keycode) { \ - switch (keycode) { \ - case KC_A ... KC_Z: \ - return (is_shifted ? upper_alpha : lower_alpha) + keycode - KC_A; \ - case KC_0: \ - return zero_glyph; \ - case KC_1 ... KC_9: \ - return (number_one + keycode - KC_1); \ - case KC_SPACE: \ - return space_glyph; \ - } \ - return keycode; \ - } - -#define DEFINE_UNICODE_LUT_TRANSLATOR(translator_name, ...) \ - static inline uint32_t translator_name(bool is_shifted, uint32_t keycode) { \ - static const uint32_t translation[] = {__VA_ARGS__}; \ - uint32_t ret = keycode; \ - if ((keycode - KC_A) < ARRAY_SIZE(translation)) { \ - ret = translation[keycode - KC_A]; \ - } \ - return ret; \ - } - -/** - * @brief Handler function for outputting unicode. - * - * @param keycode Keycode from matrix. - * @param record keyrecord_t data structure - * @param translator translator lut for different unicode modes - * @return true Continue processing matrix press, and send to host - * @return false Replace keycode, and do not send to host - */ -bool process_record_glyph_replacement(uint16_t keycode, keyrecord_t *record, translator_function_t translator) { - uint8_t temp_mod = get_mods(); - uint8_t temp_osm = get_oneshot_mods(); - bool is_shifted = (temp_mod | temp_osm) & MOD_MASK_SHIFT; - if (((temp_mod | temp_osm) & (MOD_MASK_CTRL | MOD_MASK_ALT | MOD_MASK_GUI)) == 0) { - if (KC_A <= keycode && keycode <= KC_Z) { - if (record->event.pressed) { - tap_unicode_glyph_nomods(translator(is_shifted, keycode)); - } - return false; - } else if (KC_1 <= keycode && keycode <= KC_0) { - if (is_shifted) { // skip shifted numbers, so that we can still use symbols etc. - return process_record_keymap(keycode, record); - } - if (record->event.pressed) { - register_unicode(translator(is_shifted, keycode)); - } - return false; - } else if (keycode == KC_SPACE) { - if (record->event.pressed) { - register_unicode(translator(is_shifted, keycode)); - } - return false; - } - } - return true; -} - -DEFINE_UNICODE_RANGE_TRANSLATOR(unicode_range_translator_wide, 0xFF41, 0xFF21, 0xFF10, 0xFF11, 0x2003); -DEFINE_UNICODE_RANGE_TRANSLATOR(unicode_range_translator_script, 0x1D4EA, 0x1D4D0, 0x1D7CE, 0x1D7C1, 0x2002); -DEFINE_UNICODE_RANGE_TRANSLATOR(unicode_range_translator_boxes, 0x1F170, 0x1F170, '0', '1', 0x2002); -DEFINE_UNICODE_RANGE_TRANSLATOR(unicode_range_translator_regional, 0x1F1E6, 0x1F1E6, '0', '1', 0x2003); - -// DEFINE_UNICODE_LUT_TRANSLATOR(unicode_lut_translator_normal, -// 'a', // a -// 'b', // b -// 'c', // c -// 'd', // d -// 'e', // e -// 'f', // f -// 'g', // g -// 'h', // h -// 'i', // i -// 'j', // j -// 'k', // k -// 'l', // l -// 'm', // m -// 'n', // n -// 'o', // o -// 'p', // p -// 'q', // q -// 'r', // r -// 's', // s -// 't', // t -// 'u', // u -// 'v', // v -// 'w', // w -// 'x', // x -// 'y', // y -// 'z', // z -// '1', // 1 -// '2', // 2 -// '3', // 3 -// '4', // 4 -// '5', // 5 -// '6', // 6 -// '7', // 7 -// '8', // 8 -// '9', // 9 -// '0' // 0 -// ); - -DEFINE_UNICODE_LUT_TRANSLATOR(unicode_lut_translator_aussie, - 0x0250, // a - 'q', // b - 0x0254, // c - 'p', // d - 0x01DD, // e - 0x025F, // f - 0x0183, // g - 0x0265, // h - 0x1D09, // i - 0x027E, // j - 0x029E, // k - 'l', // l - 0x026F, // m - 'u', // n - 'o', // o - 'd', // p - 'b', // q - 0x0279, // r - 's', // s - 0x0287, // t - 'n', // u - 0x028C, // v - 0x028D, // w - 0x2717, // x - 0x028E, // y - 'z', // z - 0x0269, // 1 - 0x3139, // 2 - 0x0190, // 3 - 0x3123, // 4 - 0x03DB, // 5 - '9', // 6 - 0x3125, // 7 - '8', // 8 - '6', // 9 - '0' // 0 -); - -DEFINE_UNICODE_LUT_TRANSLATOR(unicode_lut_translator_super, - 0x1D43, // a - 0x1D47, // b - 0x1D9C, // c - 0x1D48, // d - 0x1D49, // e - 0x1DA0, // f - 0x1D4D, // g - 0x02B0, // h - 0x2071, // i - 0x02B2, // j - 0x1D4F, // k - 0x02E1, // l - 0x1D50, // m - 0x207F, // n - 0x1D52, // o - 0x1D56, // p - 0x06F9, // q - 0x02B3, // r - 0x02E2, // s - 0x1D57, // t - 0x1D58, // u - 0x1D5B, // v - 0x02B7, // w - 0x02E3, // x - 0x02B8, // y - 0x1DBB, // z - 0x00B9, // 1 - 0x00B2, // 2 - 0x00B3, // 3 - 0x2074, // 4 - 0x2075, // 5 - 0x2076, // 6 - 0x2077, // 7 - 0x2078, // 8 - 0x2079, // 9 - 0x2070 // 0 -); - -DEFINE_UNICODE_LUT_TRANSLATOR(unicode_lut_translator_comic, - 0x212B, // a - 0x212C, // b - 0x2102, // c - 0x2145, // d - 0x2107, // e - 0x2132, // f - 0x2141, // g - 0x210D, // h - 0x2148, // i - 0x2111, // j - 'k', // k - 0x2143, // l - 'm', // m - 0x2115, // n - 0x2134, // o - 0x2119, // p - 0x211A, // q - 0x211B, // r - 0x20B7, // s - 0x20B8, // t - 0x2127, // u - 'v', // v - 0x20A9, // w - 'x', // x - 0x213D, // y - 'z', // z - '1', // 1 - '2', // 2 - '3', // 3 - '4', // 4 - '5', // 5 - '6', // 6 - '7', // 7 - '8', // 8 - '9', // 9 - '0' // 0 -); - -bool process_record_aussie(uint16_t keycode, keyrecord_t *record) { - bool is_shifted = (get_mods() | get_oneshot_mods()) & MOD_MASK_SHIFT; - if ((KC_A <= keycode) && (keycode <= KC_0)) { - if (record->event.pressed) { - if (!process_record_glyph_replacement(keycode, record, unicode_lut_translator_aussie)) { - tap_code16_nomods(KC_LEFT); - return false; - } - } - } else if (record->event.pressed && keycode == KC_SPACE) { - tap_code16_nomods(KC_SPACE); - tap_code16_nomods(KC_LEFT); - return false; - } else if (record->event.pressed && keycode == KC_ENTER) { - tap_code16_nomods(KC_END); - tap_code16_nomods(KC_ENTER); - return false; - } else if (record->event.pressed && keycode == KC_HOME) { - tap_code16_nomods(KC_END); - return false; - } else if (record->event.pressed && keycode == KC_END) { - tap_code16_nomods(KC_HOME); - return false; - } else if (record->event.pressed && keycode == KC_BSPC) { - tap_code16_nomods(KC_DEL); - return false; - } else if (record->event.pressed && keycode == KC_DEL) { - tap_code16_nomods(KC_BSPC); - return false; - } else if (record->event.pressed && keycode == KC_QUOT) { - tap_unicode_glyph_nomods(is_shifted ? 0x201E : 0x201A); - tap_code16_nomods(KC_LEFT); - return false; - } else if (record->event.pressed && keycode == KC_COMMA) { - tap_unicode_glyph_nomods(is_shifted ? '<' : 0x2018); - tap_code16_nomods(KC_LEFT); - return false; - } else if (record->event.pressed && keycode == KC_DOT) { - tap_unicode_glyph_nomods(is_shifted ? '>' : 0x02D9); - tap_code16_nomods(KC_LEFT); - return false; - } else if (record->event.pressed && keycode == KC_SLASH) { - tap_unicode_glyph_nomods(is_shifted ? 0x00BF : '/'); - tap_code16_nomods(KC_LEFT); - return false; - } - return true; -} - -bool process_record_zalgo(uint16_t keycode, keyrecord_t *record) { - if ((KC_A <= keycode) && (keycode <= KC_0)) { - if (record->event.pressed) { - tap_code16_nomods(keycode); - - int number = (rand() % (8 + 1 - 2)) + 2; - for (int index = 0; index < number; index++) { - uint16_t hex = (rand() % (0x036F + 1 - 0x0300)) + 0x0300; - register_unicode(hex); - } - - return false; - } - } - return true; -} - -/** - * @brief Main handler for unicode input - * - * @param keycode Keycode from switch matrix - * @param record keyrecord_t data struture - * @return true Send keycode from matrix to host - * @return false Stop processing and do not send to host - */ - -bool process_record_unicode(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case UC_FLIP: // (ノಠ痊ಠ)ノ彡┻━┻ - if (record->event.pressed) { - send_unicode_string("(ノಠ痊ಠ)ノ彡┻━┻"); - } - break; - - case UC_TABL: // ┬─┬ノ( º _ ºノ) - if (record->event.pressed) { - send_unicode_string("┬─┬ノ( º _ ºノ)"); - } - break; - - case UC_SHRG: // ¯\_(ツ)_/¯ - if (record->event.pressed) { - send_unicode_string("¯\\_(ツ)_/¯"); - } - break; - - case UC_DISA: // ಠ_ಠ - if (record->event.pressed) { - send_unicode_string("ಠ_ಠ"); - } - break; - - case UC_IRNY: // ⸮ - if (record->event.pressed) { - register_unicode(0x2E2E); - } - break; - case UC_CLUE: // ‽ - if (record->event.pressed) { - register_unicode(0x203D); - } - break; - case KC_NOMODE ... KC_COMIC: - if (record->event.pressed) { - if (unicode_typing_mode != keycode - KC_NOMODE) { - unicode_typing_mode = keycode - KC_NOMODE; - } else { - unicode_typing_mode = UCTM_NO_MODE; - } - } - break; - } - - if (((get_mods() | get_oneshot_mods()) & ~MOD_MASK_SHIFT) != 0) { - return true; - } - - if (IS_QK_MOD_TAP(keycode) && record->tap.count) { - keycode = QK_MOD_TAP_GET_TAP_KEYCODE(keycode); - } - if (IS_QK_LAYER_TAP(keycode) && record->tap.count) { - keycode = QK_LAYER_TAP_GET_TAP_KEYCODE(keycode); - } - - if (unicode_typing_mode == UCTM_WIDE) { - if (((KC_A <= keycode) && (keycode <= KC_0)) || keycode == KC_SPACE) { - return process_record_glyph_replacement(keycode, record, unicode_range_translator_wide); - } - } else if (unicode_typing_mode == UCTM_SCRIPT) { - if (((KC_A <= keycode) && (keycode <= KC_0)) || keycode == KC_SPACE) { - return process_record_glyph_replacement(keycode, record, unicode_range_translator_script); - } - } else if (unicode_typing_mode == UCTM_BLOCKS) { - if (((KC_A <= keycode) && (keycode <= KC_0)) || keycode == KC_SPACE) { - return process_record_glyph_replacement(keycode, record, unicode_range_translator_boxes); - } - } else if (unicode_typing_mode == UCTM_REGIONAL) { - if (((KC_A <= keycode) && (keycode <= KC_0)) || keycode == KC_SPACE) { - if (!process_record_glyph_replacement(keycode, record, unicode_range_translator_regional)) { - wait_us(500); - tap_unicode_glyph_nomods(0x200C); - return false; - } - } - } else if (unicode_typing_mode == UCTM_SUPER) { - if (((KC_A <= keycode) && (keycode <= KC_0))) { - return process_record_glyph_replacement(keycode, record, unicode_lut_translator_super); - } - } else if (unicode_typing_mode == UCTM_COMIC) { - if (((KC_A <= keycode) && (keycode <= KC_0))) { - return process_record_glyph_replacement(keycode, record, unicode_lut_translator_comic); - } - } else if (unicode_typing_mode == UCTM_AUSSIE) { - return process_record_aussie(keycode, record); - } else if (unicode_typing_mode == UCTM_ZALGO) { - return process_record_zalgo(keycode, record); - } - return true; -} - -/** - * @brief Initialize the default unicode mode on firmware startup - * - */ -void keyboard_post_init_unicode(void) { - unicode_input_mode_init(); -} - -/** - * @brief Set the unicode input mode without extra functionality - * - * @param input_mode - */ -void set_unicode_input_mode_soft(uint8_t input_mode) { - unicode_config.input_mode = input_mode; - unicode_input_mode_set_kb(input_mode); -} -- cgit v1.2.3