Fix symbols and wordbreaks

This commit is contained in:
Matt Skalecki 2024-02-23 19:36:01 -05:00
commit 09a977f582
6 changed files with 250 additions and 130 deletions

View file

@ -23,5 +23,3 @@
// User Added // User Added
#define COMBO_COUNT 10 #define COMBO_COUNT 10
#define TAPPING_TOGGLE 2 #define TAPPING_TOGGLE 2
#define USER_PRINT
#define DEBUG

View file

@ -77,9 +77,15 @@ bool process_check(uint16_t *keycode, keyrecord_t *record, uint8_t *mods)
case QK_ONE_SHOT_MOD ... QK_ONE_SHOT_MOD_MAX: case QK_ONE_SHOT_MOD ... QK_ONE_SHOT_MOD_MAX:
return false; return false;
// Mask for base keycode from shifted keys. // bake shift mod into keycode symbols
case QK_LSFT ... QK_LSFT + 255: case KC_1 ... KC_SLASH:
case QK_RSFT ... QK_RSFT + 255: if (*mods & MOD_MASK_SHIFT) {
*keycode |= QK_LSFT;
}
return true;
// Clear shift for alphas
case LSFT(KC_A) ... LSFT(KC_Z):
case RSFT(KC_A) ... RSFT(KC_Z):
if (*keycode >= QK_LSFT && *keycode <= (QK_LSFT + 255)) { if (*keycode >= QK_LSFT && *keycode <= (QK_LSFT + 255)) {
*mods |= MOD_LSFT; *mods |= MOD_LSFT;
} else { } else {
@ -109,6 +115,9 @@ bool process_check(uint16_t *keycode, keyrecord_t *record, uint8_t *mods)
return false; return false;
} }
*keycode = QK_MOD_TAP_GET_TAP_KEYCODE(*keycode); *keycode = QK_MOD_TAP_GET_TAP_KEYCODE(*keycode);
if (*mods & MOD_MASK_SHIFT) {
*keycode |= QK_LSFT;
}
break; break;
#else #else
case QK_MOD_TAP ... QK_MOD_TAP_MAX: case QK_MOD_TAP ... QK_MOD_TAP_MAX:
@ -290,9 +299,13 @@ void handle_result(trie_t *trie, trie_search_result_t *res)
// Send backspaces // Send backspaces
multi_tap(KC_BSPC, res->num_backspaces); multi_tap(KC_BSPC, res->num_backspaces);
// Send completion string // Send completion string
bool ends_with_wordbreak = false;
for (int i = res->completion_offset; i < trie->completions_size; ++i) { for (int i = res->completion_offset; i < trie->completions_size; ++i) {
char ascii_code = CDATA(i); char ascii_code = CDATA(i);
if (!ascii_code) { if (!ascii_code) {
if (i > 0 && CDATA(i-1) == KC_SPC) {
ends_with_wordbreak = true;
}
break; break;
} }
tap_code16(char_to_keycode(ascii_code)); tap_code16(char_to_keycode(ascii_code));
@ -301,10 +314,16 @@ void handle_result(trie_t *trie, trie_search_result_t *res)
switch (res->func_code) { switch (res->func_code) {
case 1: // repeat case 1: // repeat
handle_repeat_key(); handle_repeat_key();
return; break;
case 2: // set one-shot shift case 2: // set one-shot shift
set_oneshot_mods(MOD_LSFT); set_oneshot_mods(MOD_LSFT);
return; break;
case 3: // disable auto-wordbreak
ends_with_wordbreak = false;
}
if (ends_with_wordbreak) {
enqueue_keycode(KC_SPC);
} }
} }
@ -363,16 +382,13 @@ bool process_context_magic(uint16_t keycode, keyrecord_t *record)
keycode = 0x0100 + keycode - US_MAG1; keycode = 0x0100 + keycode - US_MAG1;
break; break;
case KC_A ... KC_0: case KC_A ... KC_0:
// process normally case S(KC_1) ... S(KC_0):
break;
case KC_MINUS ...KC_SLASH: case KC_MINUS ...KC_SLASH:
// treat " (shifted ') as a word boundary // process normally
if (keycode == KC_QUOTE && (mods & MOD_MASK_SHIFT) != 0)
keycode = KC_SPC;
break; break;
case S(KC_MINUS) ...S(KC_SLASH): case S(KC_MINUS) ...S(KC_SLASH):
// treat " (shifted ') as a word boundary // treat " (shifted ') as a word boundary
if (S(KC_QUOTE)) if (keycode == S(KC_QUOTE))
keycode = KC_SPC; keycode = KC_SPC;
break; break;
case KC_BSPC: case KC_BSPC:

View file

@ -1,7 +1,7 @@
{ {
"rules_file_name": "./magickey_dict.txt", "rules_file_name": "./magickey_dict.txt",
"magic_chars": "👆👍★✪", "magic_chars": "👆👍★✪",
"wordbreak_char": ":", "wordbreak_char": "",
"output_func_chars": "↻⇑", "output_func_chars": "↻⇑",
"comment_char": "#", "comment_char": "#",
"separator": "⇒" "separator": "⇒"

View file

@ -26,23 +26,55 @@
#pragma once #pragma once
// Autocorrection dictionary with longest match semantics: // Autocorrection dictionary with longest match semantics:
// Autocorrection dictionary (59 entries): // Autocorrection dictionary (98 entries):
// 👍 -> ↻ // 👍 -> ↻
// j👆 -> just
// j👆👆 -> justment
// 👆👆 -> 👆n
// j👍 -> join
// jud👆 -> judge
// jud👆👆 -> judgment
// d★ -> develop // d★ -> develop
// d★t -> development // d★t -> development
// d★r -> developer // d★r -> developer
// d★d -> developed // d★d -> developed
// :i👍 -> I // ⎵i👍 -> I
// :i👍m -> I'm // ⎵i👍m -> I'm
// :i👍d -> I'd // ⎵i👍d -> I'd
// :i👍l -> I'll // ⎵i👍l -> I'll
// :👆 -> the // ⎵c👍 -> come
// ⎵s👍 -> some
// ⎵c👍u -> could
// ⎵w👍u -> would
// ⎵s👍u -> should
// ⎵c👍ut -> couldn't
// ⎵w👍ut -> wouldn't
// ⎵s👍ut -> shouldn't
// ⎵c👍uv -> could've
// ⎵w👍uv -> would've
// ⎵s👍uv -> should've
// ⎵👆 -> the
// ⎵👆r -> there
// ⎵👆rs -> there's
// ⎵👆i -> their
// ⎵👆yr -> they're
// ⎵👆yl -> they'll
// ⎵👆d -> they'd
// ⎵👆s -> these
// ⎵👆t -> that
// ⎵👆a -> than
// ⎵👆o -> those
// ⎵t👍 -> time
// ⎵t👍g -> though
// ⎵t👍t -> thought
// ⎵t👍r -> through
// ⎵t👍c -> technology
// ⎵t👍a -> take
// ⎵w👍 -> why
// ⎵w👍n -> when
// ⎵w👍e -> where
// ⎵w👍t -> what
// ⎵w👍r -> we're
// ⎵w👍d -> we'd
// ⎵w👍l -> we'll
// ⎵w👍v -> we've
// a👆 -> abo
// a👆👍 -> about
// a👆👆 -> above
// v👆 -> ver // v👆 -> ver
// s👆 -> sk // s👆 -> sk
// x👆 -> es // x👆 -> es
@ -51,6 +83,12 @@
// k👆 -> ks // k👆 -> ks
// l👆 -> lk // l👆 -> lk
// r👆 -> rl // r👆 -> rl
// j👆 -> just
// j👆👆 -> justment
// ⎵j👍 -> join
// ⎵j👍d -> judge
// ⎵j👍dt -> judgment
// ⎵j👍dta -> judgmental
// c👆 -> cy // c👆 -> cy
// p👆 -> py // p👆 -> py
// d👆 -> dy // d👆 -> dy
@ -61,68 +99,95 @@
// b👆 -> before // b👆 -> before
// f👆 -> first // f👆 -> first
// z👆 -> zone // z👆 -> zone
// 👆👆 -> 👆n
// n👆 -> nion // n👆 -> nion
// h👆 -> however // h👆 -> however
// u👆 -> eu // u👆 -> ue
// e👆 -> ue // e👆 -> eu
// o👆 -> oa // o👆 -> oa
// a👆 -> abo // ,👆 -> ,⎵but
// ,👆 -> ,:but
// i👆 -> ion // i👆 -> ion
// .👆 -> .\ [escape] // .👆 -> .\ [escape]
// :👍 -> for // ⎵👍 -> for
// a👍 -> and // a👍 -> and
// x👍 -> xer // x👍 -> xer
// k👍 -> know // k👍 -> know
// i👍 -> ing // i👍 -> ing
// y👍 -> you // y👍 -> you
// q👍 -> quick // q👍 -> quick
// w👍 -> would // j👍 -> join
// c👍 -> ck // c👍 -> ck
// n👍 -> nf // n👍 -> nf
// h👍 -> hn // h👍 -> hn
// ,👍 -> ,:and // ,👍 -> ,⎵and
// .👍 -> .:⇑ // .👍 -> .⎵⇑
// ?👍 -> ?:⇑ // ?👍 -> ?⎵⇑
// ;👍 -> ;:⇑ // :👍 -> :⎵⇑
// !👍 -> !:⇑ // ;👍 -> ;⎵⇑
// !👍 -> !⎵⇑
#define MAGICKEY_MIN_LENGTH 1 // "👍" #define MAGICKEY_MIN_LENGTH 1 // "👍"
#define MAGICKEY_MAX_LENGTH 5 // "jud👆👆" #define MAGICKEY_MAX_LENGTH 6 // "⎵j👍dta"
#define DICTIONARY_SIZE 270 #define DICTIONARY_SIZE 558
#define COMPLETIONS_SIZE 161 #define COMPLETIONS_SIZE 295
#define MAGICKEY_COUNT 4 #define MAGICKEY_COUNT 4
static const uint16_t magickey_data[DICTIONARY_SIZE] PROGMEM = { static const uint16_t magickey_data[DICTIONARY_SIZE] PROGMEM = {
0x4007, 0x0011, 0x000F, 0x001F, 0x0010, 0x0025, 0x0015, 0x002B, 0x0017, 0x0030, 0x0102, 0x0035, 0x0100, 0x0039, 0x0101, 0x00C3, 0x4004, 0x0025, 0x0006, 0x003C, 0x0007, 0x0042, 0x0008, 0x0064, 0x000A, 0x006A, 0x000C, 0x0070, 0x000F, 0x0075, 0x0010, 0x008C,
0x0000, 0x4102, 0x0016, 0x0101, 0x001A, 0x0000, 0x0007, 0x0000, 0x8000, 0x0000, 0x000C, 0x002C, 0x0000, 0x8000, 0x0003, 0x0101, 0x0011, 0x0092, 0x0012, 0x0098, 0x0015, 0x009D, 0x0016, 0x00C0, 0x0017, 0x00CE, 0x0018, 0x0109, 0x0019, 0x011E, 0x0102, 0x013D,
0x000C, 0x002C, 0x0000, 0x8000, 0x0006, 0x0101, 0x000C, 0x002C, 0x0000, 0x8000, 0x000A, 0x0102, 0x0007, 0x0000, 0x8000, 0x000D, 0x0100, 0x0141, 0x0101, 0x01C3, 0x0000, 0x4017, 0x002C, 0x0100, 0x0033, 0x0101, 0x0037, 0x0000, 0x0007, 0x0101, 0x000D, 0x002C,
0x0102, 0x0007, 0x0000, 0x8000, 0x0010, 0x0007, 0x0000, 0x8000, 0x0015, 0x4036, 0x0076, 0x0037, 0x0078, 0x002C, 0x007A, 0x0004, 0x0000, 0x8000, 0x0000, 0x002C, 0x0000, 0x8001, 0x0003, 0x0017, 0x002C, 0x0000, 0x8003, 0x0006, 0x0101, 0x0017, 0x002C, 0x0000,
0x007C, 0x0005, 0x007E, 0x0006, 0x0080, 0x0007, 0x0082, 0x0008, 0x0089, 0x0009, 0x008B, 0x000A, 0x008D, 0x000B, 0x008F, 0x000C, 0x8003, 0x000A, 0x4102, 0x0049, 0x0100, 0x004D, 0x0101, 0x0051, 0x0000, 0x0007, 0x0000, 0x8000, 0x0014, 0x002C, 0x0000, 0x8000,
0x0091, 0x000D, 0x0093, 0x000E, 0x0095, 0x000F, 0x0097, 0x0010, 0x0099, 0x0011, 0x009B, 0x0012, 0x009D, 0x0013, 0x009F, 0x0014, 0x0017, 0x400C, 0x0058, 0x000D, 0x005C, 0x001A, 0x0060, 0x0000, 0x002C, 0x0000, 0x8000, 0x001B, 0x002C, 0x0000, 0x8003, 0x001E,
0x00A1, 0x0015, 0x00A3, 0x0016, 0x00A5, 0x0017, 0x00A7, 0x0018, 0x00A9, 0x0019, 0x00AB, 0x001A, 0x00AD, 0x001B, 0x00AF, 0x001C, 0x002C, 0x0000, 0x8002, 0x0023, 0x0101, 0x001A, 0x002C, 0x0000, 0x8001, 0x0027, 0x0101, 0x0017, 0x002C, 0x0000, 0x8003, 0x002B,
0x00B1, 0x001D, 0x00B3, 0x0100, 0x00B5, 0x0000, 0x8000, 0x001C, 0x8000, 0x0021, 0x8000, 0x0023, 0x8000, 0x0027, 0x8000, 0x002A, 0x0100, 0x002C, 0x0000, 0x8000, 0x0031, 0x401C, 0x007A, 0x0101, 0x007F, 0x0000, 0x0100, 0x002C, 0x0000, 0x8003, 0x0034, 0x400C,
0x8000, 0x0030, 0xC000, 0x0030, 0x0018, 0x000D, 0x0000, 0x8000, 0x0032, 0x8001, 0x0035, 0x8000, 0x0038, 0x8000, 0x0030, 0x8000, 0x0084, 0x001A, 0x0088, 0x0000, 0x002C, 0x0000, 0x8000, 0x0039, 0x002C, 0x0000, 0x8002, 0x003D, 0x0101, 0x000C, 0x002C, 0x0000,
0x003D, 0x8000, 0x0044, 0x8000, 0x0047, 0x8000, 0x004B, 0x8000, 0x004D, 0x8000, 0x004F, 0x8000, 0x0053, 0x8000, 0x0057, 0x8000, 0x8000, 0x0042, 0x0101, 0x001A, 0x002C, 0x0000, 0x8001, 0x0045, 0x0100, 0x002C, 0x0000, 0x8001, 0x0048, 0x401C, 0x00A6, 0x0102,
0x0030, 0x8000, 0x0059, 0x8000, 0x0061, 0x8000, 0x004D, 0x8000, 0x0010, 0x8001, 0x0063, 0x8000, 0x000D, 0x8000, 0x0066, 0x8001, 0x00AB, 0x0100, 0x00AF, 0x0101, 0x00B3, 0x0000, 0x0100, 0x002C, 0x0000, 0x8003, 0x004C, 0x0007, 0x0000, 0x8000, 0x0051, 0x002C,
0x006B, 0x8000, 0x006E, 0x8000, 0x0070, 0xC000, 0x0074, 0x4007, 0x00BC, 0x000D, 0x00C1, 0x0000, 0x0018, 0x000D, 0x0000, 0x8001, 0x0000, 0x8000, 0x0054, 0x4017, 0x00B8, 0x001A, 0x00BC, 0x0000, 0x002C, 0x0000, 0x8003, 0x0057, 0x002C, 0x0000, 0x8002, 0x005E,
0x0010, 0x8000, 0x0010, 0xC800, 0x0076, 0x421E, 0x00E8, 0x0036, 0x00EA, 0x0037, 0x00EC, 0x002C, 0x00EE, 0x0033, 0x00F0, 0x0238, 0x4015, 0x00C5, 0x0100, 0x00CA, 0x0000, 0x0100, 0x002C, 0x0000, 0x8000, 0x0063, 0x002C, 0x0000, 0x8000, 0x0066, 0x4007, 0x00D9,
0x00F2, 0x0004, 0x00F4, 0x0006, 0x00F6, 0x000B, 0x00F8, 0x000C, 0x00FA, 0x000D, 0x0100, 0x000E, 0x0102, 0x0011, 0x0104, 0x0014, 0x0018, 0x00DF, 0x0102, 0x00F4, 0x0100, 0x00F8, 0x0101, 0x00FC, 0x0000, 0x0101, 0x000D, 0x002C, 0x0000, 0x8001, 0x0069, 0x0101,
0x0106, 0x001A, 0x0108, 0x001B, 0x010A, 0x001C, 0x010C, 0x0000, 0x9000, 0x0077, 0x8000, 0x0079, 0x9000, 0x0077, 0x8000, 0x007E, 0x0000, 0x4006, 0x00E8, 0x0016, 0x00EC, 0x001A, 0x00F0, 0x0000, 0x002C, 0x0000, 0x8000, 0x006E, 0x002C, 0x0000, 0x8000, 0x006E,
0x9000, 0x0077, 0x9000, 0x0077, 0x8000, 0x0082, 0x8000, 0x004D, 0x8000, 0x0074, 0xC000, 0x0085, 0x002C, 0x0000, 0x8001, 0x0088, 0x002C, 0x0000, 0x8000, 0x006E, 0x0007, 0x0000, 0x8000, 0x0069, 0x002C, 0x0000, 0x8001, 0x0072, 0x4017, 0x0101, 0x001A, 0x0105,
0x8000, 0x008A, 0x8000, 0x008E, 0x8000, 0x0092, 0x8000, 0x0094, 0x8000, 0x0099, 0x8000, 0x000D, 0x8000, 0x009E 0x0000, 0x002C, 0x0000, 0x8003, 0x0075, 0x002C, 0x0000, 0x8001, 0x0072, 0x0101, 0x0000, 0x4006, 0x0112, 0x0016, 0x0116, 0x001A,
0x011A, 0x0000, 0x002C, 0x0000, 0x8002, 0x007C, 0x002C, 0x0000, 0x8003, 0x0080, 0x002C, 0x0000, 0x8002, 0x0086, 0x4018, 0x0123,
0x0101, 0x0138, 0x0000, 0x0101, 0x0000, 0x4006, 0x012C, 0x0016, 0x0130, 0x001A, 0x0134, 0x0000, 0x002C, 0x0000, 0x8000, 0x008B,
0x002C, 0x0000, 0x8000, 0x008B, 0x002C, 0x0000, 0x8000, 0x008B, 0x001A, 0x002C, 0x0000, 0x8002, 0x008F, 0x0007, 0x0000, 0x8000,
0x0094, 0x4036, 0x017E, 0x0037, 0x0180, 0x0004, 0x0182, 0x0005, 0x0184, 0x0006, 0x0186, 0x0007, 0x0188, 0x0008, 0x018A, 0x0009,
0x018C, 0x000A, 0x018E, 0x000B, 0x0190, 0x000C, 0x0192, 0x000D, 0x0194, 0x000E, 0x0196, 0x000F, 0x0198, 0x0010, 0x019A, 0x0011,
0x019C, 0x0012, 0x019E, 0x0013, 0x01A0, 0x0014, 0x01A2, 0x0015, 0x01A4, 0x0016, 0x01A6, 0x0017, 0x01A8, 0x0018, 0x01AA, 0x0019,
0x01AC, 0x001A, 0x01AE, 0x001B, 0x01B0, 0x001C, 0x01B2, 0x001D, 0x01B4, 0x002C, 0x01B6, 0x0100, 0x01B8, 0x0000, 0x8000, 0x009B,
0x8000, 0x00A0, 0x8000, 0x00A2, 0x8000, 0x00A5, 0x8000, 0x00AB, 0x8000, 0x00AB, 0x8000, 0x00AD, 0x8000, 0x00AF, 0x8000, 0x00AB,
0x8000, 0x00B4, 0x8000, 0x00BB, 0x8000, 0x00BE, 0x8000, 0x00C2, 0x8000, 0x00C4, 0x8000, 0x00C6, 0x8000, 0x00CA, 0x8000, 0x00CE,
0x8000, 0x00AB, 0x8000, 0x00D0, 0x8000, 0x00D8, 0x8000, 0x00C4, 0x8000, 0x0069, 0x8000, 0x00DA, 0x8000, 0x0051, 0x8000, 0x00DC,
0x8001, 0x00E1, 0x8000, 0x00E4, 0x8000, 0x00E6, 0x8000, 0x00EA, 0xC000, 0x00EE, 0x4004, 0x01BF, 0x000D, 0x01C1, 0x0000, 0x8000,
0x00F0, 0x8000, 0x0069, 0xC800, 0x00F3, 0x421E, 0x01F0, 0x0036, 0x01F2, 0x0037, 0x01F4, 0x0233, 0x01F6, 0x0033, 0x01F8, 0x0238,
0x01FA, 0x0004, 0x01FC, 0x0006, 0x01FE, 0x000B, 0x0204, 0x000C, 0x0206, 0x000D, 0x020C, 0x000E, 0x0212, 0x0011, 0x0214, 0x0014,
0x0216, 0x0016, 0x0218, 0x0017, 0x021C, 0x001A, 0x0220, 0x001B, 0x0224, 0x001C, 0x0226, 0x002C, 0x0228, 0x0100, 0x022A, 0x0000,
0x9000, 0x00F4, 0x8000, 0x00F6, 0x9000, 0x00F4, 0x9000, 0x00F4, 0x9000, 0x00F4, 0x9000, 0x00F4, 0x8000, 0x00FB, 0xC000, 0x00C4,
0x002C, 0x0000, 0x8000, 0x00FE, 0x8000, 0x00EE, 0xC000, 0x0102, 0x002C, 0x0000, 0x8001, 0x0105, 0xC000, 0x0107, 0x002C, 0x0000,
0x8000, 0x0107, 0x8000, 0x010B, 0x8000, 0x010F, 0x8000, 0x0111, 0x002C, 0x0000, 0x8000, 0x00FE, 0x002C, 0x0000, 0x8000, 0x0116,
0x002C, 0x0000, 0x8000, 0x011A, 0x8000, 0x0051, 0x8000, 0x011D, 0x8000, 0x0120, 0x0004, 0x0000, 0x8000, 0x0124
}; };
static const uint8_t magickey_completions_data[COMPLETIONS_SIZE] PROGMEM = { static const uint8_t magickey_completions_data[COMPLETIONS_SIZE] PROGMEM = {
0x65, 0x64, 0x00, 0x27, 0x64, 0x00, 0x27, 0x6C, 0x6C, 0x00, 0x27, 0x6D, 0x00, 0x65, 0x72, 0x00, 0x61, 0x6C, 0x00, 0x61, 0x6E, 0x00, 0x61, 0x6B, 0x65, 0x00, 0x65, 0x63, 0x68, 0x6E, 0x6F, 0x6C,
0x6D, 0x65, 0x6E, 0x74, 0x00, 0x65, 0x76, 0x65, 0x6C, 0x6F, 0x70, 0x00, 0x20, 0x62, 0x75, 0x74, 0x6F, 0x67, 0x79, 0x00, 0x65, 0x64, 0x00, 0x79, 0x27, 0x64, 0x00, 0x27, 0x64, 0x00, 0x75, 0x64,
0x00, 0x5C, 0x00, 0x74, 0x68, 0x65, 0x00, 0x62, 0x6F, 0x00, 0x65, 0x66, 0x6F, 0x72, 0x65, 0x00, 0x67, 0x65, 0x00, 0x65, 0x27, 0x64, 0x00, 0x65, 0x72, 0x65, 0x00, 0x68, 0x6F, 0x75, 0x67, 0x68,
0x79, 0x00, 0x67, 0x65, 0x00, 0x75, 0x65, 0x00, 0x69, 0x72, 0x73, 0x74, 0x00, 0x6F, 0x77, 0x65, 0x00, 0x69, 0x72, 0x00, 0x79, 0x27, 0x6C, 0x6C, 0x00, 0x27, 0x6C, 0x6C, 0x00, 0x65, 0x27, 0x6C,
0x76, 0x65, 0x72, 0x00, 0x6F, 0x6E, 0x00, 0x75, 0x73, 0x74, 0x00, 0x73, 0x00, 0x6B, 0x00, 0x65, 0x6C, 0x00, 0x27, 0x6D, 0x00, 0x65, 0x6E, 0x00, 0x6F, 0x73, 0x65, 0x00, 0x79, 0x27, 0x72, 0x65,
0x6E, 0x74, 0x00, 0x69, 0x6F, 0x6E, 0x00, 0x61, 0x00, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6F, 0x6E, 0x00, 0x65, 0x72, 0x00, 0x72, 0x65, 0x00, 0x68, 0x72, 0x6F, 0x75, 0x67, 0x68, 0x00, 0x65, 0x27,
0x00, 0x6C, 0x00, 0x65, 0x75, 0x00, 0x68, 0x69, 0x63, 0x68, 0x00, 0x65, 0x73, 0x00, 0x70, 0x00, 0x72, 0x65, 0x00, 0x27, 0x73, 0x00, 0x73, 0x65, 0x00, 0x6D, 0x65, 0x6E, 0x74, 0x00, 0x6E, 0x27,
0x6F, 0x6E, 0x65, 0x00, 0x6E, 0x00, 0x00, 0x20, 0x00, 0x20, 0x61, 0x6E, 0x64, 0x00, 0x66, 0x6F, 0x74, 0x00, 0x61, 0x74, 0x00, 0x68, 0x6F, 0x75, 0x67, 0x68, 0x74, 0x00, 0x75, 0x6C, 0x64, 0x00,
0x72, 0x00, 0x6E, 0x64, 0x00, 0x6E, 0x67, 0x00, 0x49, 0x00, 0x6F, 0x69, 0x6E, 0x00, 0x6E, 0x6F, 0x68, 0x6F, 0x75, 0x6C, 0x64, 0x00, 0x6F, 0x75, 0x6C, 0x64, 0x00, 0x27, 0x76, 0x65, 0x00, 0x65,
0x77, 0x00, 0x66, 0x00, 0x75, 0x69, 0x63, 0x6B, 0x00, 0x6F, 0x75, 0x6C, 0x64, 0x00, 0x6F, 0x75, 0x27, 0x76, 0x65, 0x00, 0x65, 0x76, 0x65, 0x6C, 0x6F, 0x70, 0x00, 0x20, 0x62, 0x75, 0x74, 0x00,
0x00 0x5C, 0x00, 0x62, 0x6F, 0x00, 0x65, 0x66, 0x6F, 0x72, 0x65, 0x00, 0x79, 0x00, 0x75, 0x00, 0x69,
0x72, 0x73, 0x74, 0x00, 0x6F, 0x77, 0x65, 0x76, 0x65, 0x72, 0x00, 0x6F, 0x6E, 0x00, 0x75, 0x73,
0x74, 0x00, 0x73, 0x00, 0x6B, 0x00, 0x65, 0x6E, 0x74, 0x00, 0x69, 0x6F, 0x6E, 0x00, 0x61, 0x00,
0x75, 0x65, 0x73, 0x74, 0x69, 0x6F, 0x6E, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x68, 0x69, 0x63, 0x68,
0x00, 0x65, 0x73, 0x00, 0x70, 0x00, 0x6F, 0x6E, 0x65, 0x00, 0x74, 0x68, 0x65, 0x00, 0x6E, 0x00,
0x76, 0x65, 0x00, 0x00, 0x20, 0x00, 0x20, 0x61, 0x6E, 0x64, 0x00, 0x6E, 0x64, 0x00, 0x6F, 0x6D,
0x65, 0x00, 0x6E, 0x67, 0x00, 0x49, 0x00, 0x6F, 0x69, 0x6E, 0x00, 0x6E, 0x6F, 0x77, 0x00, 0x66,
0x00, 0x75, 0x69, 0x63, 0x6B, 0x00, 0x69, 0x6D, 0x65, 0x00, 0x68, 0x79, 0x00, 0x6F, 0x75, 0x00,
0x66, 0x6F, 0x72, 0x00, 0x75, 0x74, 0x00
}; };

View file

@ -3,25 +3,62 @@
👍 ⇒ ↻ 👍 ⇒ ↻
j👆 ⇒ just
j👆👆 ⇒ justment
👆👆 ⇒ 👆n
j👍 ⇒ join
jud👆 ⇒ judge
jud👆👆 ⇒ judgment
d★ ⇒ develop d★ ⇒ develop
d★t ⇒ development d★t ⇒ development
d★r ⇒ developer d★r ⇒ developer
d★d ⇒ developed d★d ⇒ developed
:i👍 ⇒ I ⎵i👍 ⇒ I
:i👍m ⇒ I'm i👍m ⇒ I'm
:i👍d ⇒ I'd i👍d ⇒ I'd
:i👍l ⇒ I'll i👍l ⇒ I'll
# final
:👆 ⇒ the ⎵c👍 ⇒ come
⎵s👍 ⇒ some
⎵c👍u ⇒ could
⎵w👍u ⇒ would
⎵s👍u ⇒ should
⎵c👍ut ⇒ couldn't
⎵w👍ut ⇒ wouldn't
⎵s👍ut ⇒ shouldn't
⎵c👍uv ⇒ could've
⎵w👍uv ⇒ would've
⎵s👍uv ⇒ should've
⎵👆 ⇒ the
⎵👆r ⇒ there
⎵👆rs ⇒ there's
⎵👆i ⇒ their
⎵👆yr ⇒ they're
⎵👆yl ⇒ they'll
⎵👆d ⇒ they'd
⎵👆s ⇒ these
⎵👆t ⇒ that
⎵👆a ⇒ than
⎵👆o ⇒ those
⎵t👍 ⇒ time
⎵t👍g ⇒ though
⎵t👍t ⇒ thought
⎵t👍r ⇒ through
⎵t👍c ⇒ technology
⎵t👍a ⇒ take
⎵w👍 ⇒ why
⎵w👍n ⇒ when
⎵w👍e ⇒ where
⎵w👍t ⇒ what
⎵w👍r ⇒ we're
⎵w👍d ⇒ we'd
⎵w👍l ⇒ we'll
⎵w👍v ⇒ we've
a👆 ⇒ abo
a👆👍 ⇒ about
a👆👆 ⇒ above
v👆 ⇒ ver v👆 ⇒ ver
s👆 ⇒ sk s👆 ⇒ sk
@ -33,7 +70,13 @@ k👆 ⇒ ks
l👆 ⇒ lk l👆 ⇒ lk
r👆 ⇒ rl r👆 ⇒ rl
j👆 ⇒ just j👆 ⇒ just
j👆👆 ⇒ justment
⎵j👍 ⇒ join
⎵j👍d ⇒ judge
⎵j👍dt ⇒ judgment
⎵j👍dta ⇒ judgmental
c👆 ⇒ cy c👆 ⇒ cy
p👆 ⇒ py p👆 ⇒ py
@ -50,17 +93,16 @@ z👆 ⇒ zone
n👆 ⇒ nion n👆 ⇒ nion
h👆 ⇒ however h👆 ⇒ however
u👆 ⇒ eu u👆 ⇒ ue
e👆 ⇒ ue e👆 ⇒ eu
o👆 ⇒ oa o👆 ⇒ oa
a👆 ⇒ abo
,👆 ⇒ ,:but ,👆 ⇒ ,but
i👆 ⇒ ion i👆 ⇒ ion
.👆 ⇒ .\ .👆 ⇒ .\
:👍 ⇒ for 👍 ⇒ for
a👍 ⇒ and a👍 ⇒ and
x👍 ⇒ xer x👍 ⇒ xer
k👍 ⇒ know k👍 ⇒ know
@ -68,13 +110,12 @@ i👍 ⇒ ing
y👍 ⇒ you y👍 ⇒ you
q👍 ⇒ quick q👍 ⇒ quick
j👍 ⇒ join j👍 ⇒ join
w👍 ⇒ would
c👍 ⇒ ck c👍 ⇒ ck
n👍 ⇒ nf n👍 ⇒ nf
h👍 ⇒ hn h👍 ⇒ hn
,👍 ⇒ ,:and ,👍 ⇒ ,and
.👍 ⇒ .: .👍 ⇒ .
?👍 ⇒ ?: ?👍 ⇒ ?
:👍 ⇒ :: :👍 ⇒ :
;👍 ⇒ ;: ;👍 ⇒ ;
!👍 ⇒ !: !👍 ⇒ !

View file

@ -1,6 +1,6 @@
# Set any rules.mk overrides for your specific keymap here. # Set any rules.mk overrides for your specific keymap here.
# See rules at https://docs.qmk.fm/#/config_options?id=the-rulesmk-file # See rules at https://docs.qmk.fm/#/config_options?id=the-rulesmk-file
CONSOLE_ENABLE = yes CONSOLE_ENABLE = no
COMMAND_ENABLE = no COMMAND_ENABLE = no
SPACE_CADET_ENABLE = no SPACE_CADET_ENABLE = no
COMBO_ENABLE = yes COMBO_ENABLE = yes