Example #1
0
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);
    }
Example #2
0
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;
    }
}