Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clean up Unicode API usage in user keymaps #21849

Merged
merged 1 commit into from
Aug 27, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,6 @@ A layout based on neo2
#endif
#define LEADER_TIMEOUT 300

#define TAP_ONCE(code) \
register_code (code); \
unregister_code (code)


// Automatic number generation of important keywords
enum my_keycodes{
// Layer numbers follow the neo2 terminology, i.e. base layer = layer 1
Expand Down Expand Up @@ -257,22 +252,11 @@ L06 -> <TBD>: UNSPECIFIED

void leader_end_user(void) {
if (leader_sequence_one_key(KC_1)) {
// ¯\_(ツ)_/¯
unicode_input_start(); register_hex(0xaf); unicode_input_finish();
register_code (KC_RALT); TAP_ONCE (KC_MINS); unregister_code (KC_RALT);
register_code (KC_RSFT); TAP_ONCE (KC_8); unregister_code (KC_RSFT);
unicode_input_start (); register_hex(0x30c4); unicode_input_finish();
register_code (KC_RSFT); TAP_ONCE (KC_9); TAP_ONCE(KC_7); unregister_code (KC_RSFT);
unicode_input_start (); register_hex(0xaf); unicode_input_finish();
send_unicode_string("¯\\_(ツ)_/¯");
}

if (leader_sequence_one_key(KC_2)) {
// 凸(ツ)凸
unicode_input_start(); register_hex(0x51F8); unicode_input_finish();
register_code (KC_RSFT); TAP_ONCE (KC_8); unregister_code (KC_RSFT);
unicode_input_start (); register_hex(0x30c4); unicode_input_finish();
register_code (KC_RSFT); TAP_ONCE (KC_9); unregister_code (KC_RSFT);
unicode_input_start (); register_hex(0x51F8); unicode_input_finish();
send_unicode_string("凸(ツ)凸");
}
}

Expand Down
16 changes: 4 additions & 12 deletions keyboards/planck/keymaps/rootiest/keymap.c
Original file line number Diff line number Diff line change
Expand Up @@ -1328,33 +1328,25 @@ void send_degree_symbol(tap_dance_state_t* state, void* user_data) {
switch (state->count) {
case 4:
// ℃
unicode_input_start();
register_hex(0x2103);
unicode_input_finish();
register_unicode(0x2103);
print("You pressed the Degrees key 4 times!\n");
reset_tap_dance(state);
break;
case 3:
//℉
unicode_input_start();
register_hex(0x2109);
unicode_input_finish();
register_unicode(0x2109);
print("You pressed the Degrees key 3 times!\n");
reset_tap_dance(state);
break;
case 2:
// €
unicode_input_start();
register_hex(0x20AC);
unicode_input_finish();
register_unicode(0x20AC);
print("You pressed the Degrees key 2 times!\n");
reset_tap_dance(state);
break;
case 1:
// °
unicode_input_start();
register_hex(0x00B0);
unicode_input_finish();
register_unicode(0x00B0);
print("You pressed the Degrees key 1 time!\n");
reset_tap_dance(state);
break;
Expand Down
56 changes: 14 additions & 42 deletions users/romus/romus.c
Original file line number Diff line number Diff line change
Expand Up @@ -291,97 +291,69 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
case TUR_A:
if (record->event.pressed) {
if ( is_capital ) {
unicode_input_start();
register_hex(0x00c2);
unicode_input_finish();
register_unicode(0x00c2);
} else {
unicode_input_start();
register_hex(0x00e2);
unicode_input_finish();
register_unicode(0x00e2);
}
}
return false;
break;
case TUR_O:
if (record->event.pressed) {
if ( is_capital ) {
unicode_input_start();
register_hex(0x00d6);
unicode_input_finish();
register_unicode(0x00d6);
} else {
unicode_input_start();
register_hex(0x00f6);
unicode_input_finish();
register_unicode(0x00f6);
}
}
return false;
break;
case TUR_U:
if (record->event.pressed) {
if ( is_capital ) {
unicode_input_start();
register_hex(0x00dc);
unicode_input_finish();
register_unicode(0x00dc);
} else {
unicode_input_start();
register_hex(0x00fc);
unicode_input_finish();
register_unicode(0x00fc);
}
}
return false;
break;
case TUR_I:
if (record->event.pressed) {
if ( is_capital ) {
unicode_input_start();
register_hex(0x0130);
unicode_input_finish();
register_unicode(0x0130);
} else {
unicode_input_start();
register_hex(0x0131);
unicode_input_finish();
register_unicode(0x0131);
}
}
return false;
break;
case TUR_G:
if (record->event.pressed) {
if ( is_capital ) {
unicode_input_start();
register_hex(0x011e);
unicode_input_finish();
register_unicode(0x011e);
} else {
unicode_input_start();
register_hex(0x011f);
unicode_input_finish();
register_unicode(0x011f);
}
}
return false;
break;
case TUR_C:
if (record->event.pressed) {
if ( is_capital ) {
unicode_input_start();
register_hex(0x00c7);
unicode_input_finish();
register_unicode(0x00c7);
} else {
unicode_input_start();
register_hex(0x00e7);
unicode_input_finish();
register_unicode(0x00e7);
}
}
return false;
break;
case TUR_S:
if (record->event.pressed) {
if ( is_capital ) {
unicode_input_start();
register_hex(0x015e);
unicode_input_finish();
register_unicode(0x015e);
} else {
unicode_input_start();
register_hex(0x015f);
unicode_input_finish();
register_unicode(0x015f);
}
}
return false;
Expand Down
11 changes: 6 additions & 5 deletions users/rupa/unicode.c
Original file line number Diff line number Diff line change
Expand Up @@ -125,37 +125,38 @@ bool u_xp(bool is_shifted, const char *shifted, const char *plain) {
};

void zalgo(void) {
unicode_input_start();
int number = (rand() % (8 + 1 - 2)) + 2;
unsigned int index;
for (index=0; index<number; index++) {
uint16_t hex = (rand() % (0x036F + 1 - 0x0300)) + 0x0300;
register_hex(hex);
}
unicode_input_finish();
}

bool combined_text(uint16_t keycode) {
if (keycode < KC_A || (keycode > KC_0 && keycode < KC_MINUS) || keycode > KC_SLASH) {
return false;
}
tap_code(keycode);
unicode_input_start();

switch (combined_mode) {
case CM_CIRCLE:
register_hex(0x20DD);
register_unicode(0x20DD);
break;
case CM_NO:
register_hex(0x20E0);
register_unicode(0x20E0);
break;
case CM_KEYCAP:
register_hex(0x20E3);
register_unicode(0x20E3);
break;
case CM_ZALGO:
zalgo();
break;
default:
break;
}
unicode_input_finish();
return true;
}

Expand Down
16 changes: 5 additions & 11 deletions users/spidey3/spidey3.c
Original file line number Diff line number Diff line change
Expand Up @@ -73,19 +73,13 @@ static uint32_t math_glyph_exceptions(const uint16_t keycode, const bool shifted
}

bool process_record_glyph_replacement(uint16_t keycode, keyrecord_t *record, uint32_t baseAlphaLower, uint32_t baseAlphaUpper, uint32_t zeroGlyph, uint32_t baseNumberOne, uint32_t spaceGlyph, uint32_t (*exceptions)(const uint16_t keycode, const bool shifted), uint8_t temp_mod, uint8_t temp_osm) {
void _register(uint32_t codepoint) {
unicode_input_start();
register_hex32(codepoint);
unicode_input_finish();
}

if ((((temp_mod | temp_osm) & (MOD_MASK_CTRL | MOD_MASK_ALT | MOD_MASK_GUI))) == 0) {
bool shifted = ((temp_mod | temp_osm) & MOD_MASK_SHIFT);
if (exceptions) {
uint32_t res = exceptions(keycode, shifted);
if (res) {
if (record->event.pressed) {
_register(res);
register_unicode(res);
}
return false;
}
Expand All @@ -100,7 +94,7 @@ bool process_record_glyph_replacement(uint16_t keycode, keyrecord_t *record, uin

bool caps = host_keyboard_led_state().caps_lock;
uint32_t base = ((shifted == caps) ? baseAlphaLower : baseAlphaUpper);
_register(base + (keycode - KC_A));
register_unicode(base + (keycode - KC_A));
set_mods(temp_mod);
}
return false;
Expand All @@ -109,20 +103,20 @@ bool process_record_glyph_replacement(uint16_t keycode, keyrecord_t *record, uin
return true;
}
if (record->event.pressed) {
_register(zeroGlyph);
register_unicode(zeroGlyph);
}
return false;
case KC_1 ... KC_9:
if (shifted) { // skip shifted numbers, so that we can still use symbols etc.
return true;
}
if (record->event.pressed) {
_register(baseNumberOne + (keycode - KC_1));
register_unicode(baseNumberOne + (keycode - KC_1));
}
return false;
case KC_SPACE:
if (record->event.pressed) {
_register(spaceGlyph); // em space
register_unicode(spaceGlyph); // em space
}
return false;
}
Expand Down