void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { if (record->event.pressed) { uint16_t unicode = (opt << 8) | id; register_code(KC_LALT); register_code(hextokeycode((unicode & 0xF000) >> 12)); unregister_code(hextokeycode((unicode & 0xF000) >> 12)); register_code(hextokeycode((unicode & 0x0F00) >> 8)); unregister_code(hextokeycode((unicode & 0x0F00) >> 8)); register_code(hextokeycode((unicode & 0x00F0) >> 4)); unregister_code(hextokeycode((unicode & 0x00F0) >> 4)); register_code(hextokeycode((unicode & 0x000F))); unregister_code(hextokeycode((unicode & 0x000F))); /* Test 'a' */ // register_code(hextokeycode(0x0)); // unregister_code(hextokeycode(0x0)); // register_code(hextokeycode(0x0)); // unregister_code(hextokeycode(0x0)); // register_code(hextokeycode(0x6)); // unregister_code(hextokeycode(0x6)); // register_code(hextokeycode(0x1)); // unregister_code(hextokeycode(0x1)); unregister_code(KC_LALT); }
void unicode_action_function(uint16_t hi, uint16_t lo) { switch (unicode_mode) { case UC_MODE_WIN: register_code(KC_LALT); register_code(KC_PPLS); unregister_code(KC_PPLS); register_code(hextokeycode((hi & 0xF0) >> 4)); unregister_code(hextokeycode((hi & 0xF0) >> 4)); register_code(hextokeycode((hi & 0x0F))); unregister_code(hextokeycode((hi & 0x0F))); register_code(hextokeycode((lo & 0xF0) >> 4)); unregister_code(hextokeycode((lo & 0xF0) >> 4)); register_code(hextokeycode((lo & 0x0F))); unregister_code(hextokeycode((lo & 0x0F))); unregister_code(KC_LALT); break; case UC_MODE_LINUX: register_code(KC_LCTL); register_code(KC_LSFT); register_code(KC_U); unregister_code(KC_U); register_code(hextokeycode((hi & 0xF0) >> 4)); unregister_code(hextokeycode((hi & 0xF0) >> 4)); register_code(hextokeycode((hi & 0x0F))); unregister_code(hextokeycode((hi & 0x0F))); register_code(hextokeycode((lo & 0xF0) >> 4)); unregister_code(hextokeycode((lo & 0xF0) >> 4)); register_code(hextokeycode((lo & 0x0F))); unregister_code(hextokeycode((lo & 0x0F))); unregister_code(KC_LCTL); unregister_code(KC_LSFT); break; case UC_MODE_OSX: break; } }