diff options
author | Nick Choi <nikchi@users.noreply.github.com> | 2018-05-04 21:39:59 -0400 |
---|---|---|
committer | Drashna Jaelre <drashna@live.com> | 2018-05-04 18:39:59 -0700 |
commit | 824e48f294a9de0a2c4816d294da5d93ec295bf1 (patch) | |
tree | 0b1a05e5533230194a12b642c566edad478af75e | |
parent | 50b5c6ad72682776705b0faf5b8ef87deec5cd6a (diff) | |
download | qmk_firmware-824e48f294a9de0a2c4816d294da5d93ec295bf1.tar.gz qmk_firmware-824e48f294a9de0a2c4816d294da5d93ec295bf1.zip |
infinite emoji (#2898)
-rw-r--r-- | keyboards/frosty_flake/keymaps/nikchi/keymap.c | 147 |
1 files changed, 66 insertions, 81 deletions
diff --git a/keyboards/frosty_flake/keymaps/nikchi/keymap.c b/keyboards/frosty_flake/keymaps/nikchi/keymap.c index f9cff0b84..bf7c5e588 100644 --- a/keyboards/frosty_flake/keymaps/nikchi/keymap.c +++ b/keyboards/frosty_flake/keymaps/nikchi/keymap.c | |||
@@ -6,15 +6,16 @@ | |||
6 | #include "quantum.h" | 6 | #include "quantum.h" |
7 | 7 | ||
8 | #define _______ KC_TRNS | 8 | #define _______ KC_TRNS |
9 | #define EMOJIBLOCK 5 | 9 | #define MAXEMOJITAPS 80 |
10 | 10 | ||
11 | 11 | ||
12 | //declarations for tap dancing emojis | 12 | //declarations for tap dancing emojis |
13 | void register_hex32(uint32_t hex); | 13 | void register_hex32(uint32_t hex); |
14 | void cycleEmojis(qk_tap_dance_state_t *state, void *user_data); | 14 | void cycleEmojis(qk_tap_dance_state_t *state, void *user_data); |
15 | void cycleAnimals(qk_tap_dance_state_t *state, void *user_data); | 15 | void cycleAnimals(qk_tap_dance_state_t *state, void *user_data); |
16 | void cycleHands(qk_tap_dance_state_t *state, void *user_data); | 16 | void cycleFoods(qk_tap_dance_state_t *state, void *user_data); |
17 | void cycleMemes(qk_tap_dance_state_t *state, void *user_data); | 17 | void cycleEtc(qk_tap_dance_state_t *state, void *user_data); |
18 | void cycleAll(qk_tap_dance_state_t *state, void *user_data); | ||
18 | 19 | ||
19 | void tap(uint16_t keycode){ | 20 | void tap(uint16_t keycode){ |
20 | register_code(keycode); | 21 | register_code(keycode); |
@@ -28,36 +29,20 @@ enum taps{ | |||
28 | ANIMAL, | 29 | ANIMAL, |
29 | HAND, | 30 | HAND, |
30 | MEMES, | 31 | MEMES, |
31 | COPA | 32 | COPA, |
33 | ALLS | ||
32 | }; | 34 | }; |
33 | 35 | ||
34 | enum unicode_name { // split every five emojis | 36 | enum unicode_name { |
35 | THINK = 1, // thinking face 🤔 | 37 | EMOTIS = 1,//80, //1F60x - 1F64x |
36 | GRIN, // grinning face 😊 | 38 | ANIMALS, //64, //1F40x - 1F43x |
37 | SMRK, // smirk 😏 | 39 | SYMBOLS,// = 45, //1F300 - 1F32C |
38 | WEARY, // good shit 😩 | 40 | FOODS,// = 87 , //1F32D - |
39 | UNAMU, // unamused 😒 | 41 | ETC,// = 192, //1F44x -1F4Fx |
40 | 42 | VEHICLES,// = 83, //1F68x - 1F6Dx | |
41 | SNEK, // snke 🐍 | 43 | SUPPLEMENT,// = 32, //1F91x-1F92x |
42 | PENGUIN, // 🐧 | 44 | ALCHEMY,// = 116 //1F70x - 1F773 |
43 | DRAGON, // 🐉 | 45 | |
44 | MONKEY, // 🐒 | ||
45 | CHICK, // 🐥 | ||
46 | |||
47 | OKOK, // 👌 | ||
48 | EFFU, // 🖕 | ||
49 | INUP, // 👆 | ||
50 | THUP, // 👍 | ||
51 | THDN, // 👎 | ||
52 | |||
53 | BBB, // dat B 🅱 | ||
54 | AVO, // avocado 🥑 | ||
55 | BRED, // unicode consortium pls make toast 🍞 | ||
56 | EGGPL, // EGGPLANT 🍆 | ||
57 | WATER, // wet 💦 | ||
58 | |||
59 | LIT // fire 🔥 | ||
60 | |||
61 | }; | 46 | }; |
62 | 47 | ||
63 | enum my_macros { | 48 | enum my_macros { |
@@ -75,8 +60,12 @@ qk_tap_dance_action_t tap_dance_actions[] = { | |||
75 | [COPA] = ACTION_TAP_DANCE_DOUBLE(LCTL(KC_C), LCTL(KC_V)), | 60 | [COPA] = ACTION_TAP_DANCE_DOUBLE(LCTL(KC_C), LCTL(KC_V)), |
76 | [EMOJIS] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(cycleEmojis, NULL, NULL, 800), | 61 | [EMOJIS] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(cycleEmojis, NULL, NULL, 800), |
77 | [ANIMAL] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(cycleAnimals, NULL, NULL, 800), | 62 | [ANIMAL] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(cycleAnimals, NULL, NULL, 800), |
78 | [HAND] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(cycleHands, NULL, NULL, 800), | 63 | //[SYMBOLS] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(cycleSymbols, NULL, NULL, 800), |
79 | [MEMES] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(cycleMemes, NULL, NULL, 800) | 64 | [FOODS] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(cycleFoods, NULL, NULL, 800), |
65 | [ETC] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(cycleEtc, NULL, NULL, 800), | ||
66 | //[VEHICLES] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(cycleVehicles, NULL, NULL, 800), | ||
67 | //[SUPPLEMENT] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(cycleSupplement, NULL, NULL, 800), | ||
68 | [ALLS] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(cycleAll, NULL, NULL, 800) | ||
80 | // Other declarations would go here, separated by commas, if you have them | 69 | // Other declarations would go here, separated by commas, if you have them |
81 | }; | 70 | }; |
82 | 71 | ||
@@ -107,29 +96,17 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { | |||
107 | return MACRO_NONE; | 96 | return MACRO_NONE; |
108 | }; | 97 | }; |
109 | 98 | ||
99 | |||
110 | // emojis in unicode | 100 | // emojis in unicode |
111 | const uint32_t PROGMEM unicode_map[] = { | 101 | const uint32_t PROGMEM unicode_map[] = { |
112 | [THINK] = 0x1F914, | 102 | [EMOTIS] = 0x1F600, |
113 | [GRIN] = 0x1F600, | 103 | [ANIMALS] = 0x1F400, |
114 | [BBB] = 0x1F171, | 104 | [SYMBOLS] = 0x1F300, |
115 | [AVO] = 0x1F951, | 105 | [FOODS] = 0x1F32D, |
116 | [BRED] = 0x1F35E, | 106 | [ETC] = 0x1F440, |
117 | [SMRK] = 0x1F60F, | 107 | [VEHICLES] = 0x1F680, |
118 | [WEARY] = 0x1F629, | 108 | [SUPPLEMENT] = 0x1F910, |
119 | [EGGPL] = 0x1F346, | 109 | [ALCHEMY] = 0x1F700 |
120 | [WATER] = 0x1F4A6, | ||
121 | [LIT] = 0x1F525, | ||
122 | [UNAMU] = 0x1F612, | ||
123 | [SNEK] = 0x1F40D, | ||
124 | [PENGUIN] = 0x1F427, | ||
125 | [MONKEY] = 0x1F412, | ||
126 | [CHICK] = 0x1F425, | ||
127 | [DRAGON] = 0x1F409, | ||
128 | [OKOK] = 0x1F44C, | ||
129 | [EFFU] = 0x1F595, | ||
130 | [INUP] = 0x1F446, | ||
131 | [THDN] = 0x1F44E, | ||
132 | [THUP] = 0x1F44D | ||
133 | }; | 110 | }; |
134 | // Layouts | 111 | // Layouts |
135 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | 112 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
@@ -141,11 +118,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
141 | KC_LSPO,KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M,KC_COMM, KC_DOT,KC_SLSH, KC_RSPC, KC_UP, KC_P1, KC_P2, KC_P3,KC_PENT, \ | 118 | KC_LSPO,KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M,KC_COMM, KC_DOT,KC_SLSH, KC_RSPC, KC_UP, KC_P1, KC_P2, KC_P3,KC_PENT, \ |
142 | TD(TD_CTCPS),KC_LGUI,KC_LALT, KC_SPC, KC_LEAD,KC_RGUI, KC_APP,MO(1) , KC_LEFT,KC_DOWN,KC_RGHT, KC_P0,KC_PDOT), | 119 | TD(TD_CTCPS),KC_LGUI,KC_LALT, KC_SPC, KC_LEAD,KC_RGUI, KC_APP,MO(1) , KC_LEFT,KC_DOWN,KC_RGHT, KC_P0,KC_PDOT), |
143 | [1] = KEYMAP(\ | 120 | [1] = KEYMAP(\ |
144 | KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR,KC_SLCK,KC_PAUS, \ | 121 | TD(ALLS), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR,KC_SLCK,KC_PAUS, \ |
145 | TD(EMOJIS),TD(ANIMAL),TD(HAND),TD(MEMES),X(WEARY),X(UNAMU), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL,KC_BSPC, KC_MPRV,KC_MPLY,KC_MNXT, KC_NLCK,KC_PSLS,KC_PAST,KC_PMNS, \ | 122 | KC_GRV, TD(EMOJIS),TD(ANIMAL),TD(ETC),TD(FOODS), KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,KC_MINS, KC_EQL,KC_BSPC, KC_MPRV,KC_MPLY,KC_MNXT, KC_NLCK,KC_PSLS,KC_PAST,KC_PMNS, \ |
146 | KC_TAB, KC_Q, M(0), KC_E, KC_R,X(EGGPL),X(WATER), KC_U, KC_I, KC_O, KC_P, KC_UP ,KC_RBRC,KC_BSLS, KC_MUTE,KC_VOLD,KC_VOLU, KC_P7, KC_P8, KC_P9,KC_PPLS, \ | 123 | KC_TAB, KC_Q, M(0), KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_UP ,KC_RBRC,KC_BSLS, KC_MUTE,KC_VOLD,KC_VOLU, KC_P7, KC_P8, KC_P9,KC_PPLS, \ |
147 | KC_LCTL, M(1), M(3), M(2), KC_F, X(LIT), X(SNEK), KC_J, KC_K, KC_L,KC_LEFT,KC_RGHT, KC_ENT, KC_P4, KC_P5, KC_P6, \ | 124 | KC_LCTL, M(1), M(3), M(2), KC_F, KC_G, KC_H, KC_J, KC_K, KC_L,KC_LEFT,KC_RGHT, KC_ENT, KC_P4, KC_P5, KC_P6, \ |
148 | KC_LSFT,KC_NUBS, KC_Z, KC_X, KC_C, TD(COPA), X(BBB), X(AVO), KC_M,KC_COMM, KC_DOT,KC_DOWN, KC_RSFT, KC_MS_U, KC_P1, KC_P2, KC_P3,KC_PENT, \ | 125 | KC_LSFT,KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M,KC_COMM, KC_DOT,KC_DOWN, KC_RSFT, KC_MS_U, KC_P1, KC_P2, KC_P3,KC_PENT, \ |
149 | KC_BTN1,KC_BTN3,KC_BTN2, KC_SPC, KC_RALT,KC_RGUI, TG(2),_______ , KC_MS_L,KC_MS_D,KC_MS_R, KC_P0,KC_PDOT), | 126 | KC_BTN1,KC_BTN3,KC_BTN2, KC_SPC, KC_RALT,KC_RGUI, TG(2),_______ , KC_MS_L,KC_MS_D,KC_MS_R, KC_P0,KC_PDOT), |
150 | [2] = KEYMAP(\ | 127 | [2] = KEYMAP(\ |
151 | KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR,KC_SLCK,KC_PAUS, \ | 128 | KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR,KC_SLCK,KC_PAUS, \ |
@@ -153,7 +130,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
153 | KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,KC_LBRC,KC_RBRC,KC_BSLS, KC_MUTE,KC_VOLD,KC_VOLU, KC_P7, KC_P8, KC_P9,KC_PPLS, \ | 130 | KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,KC_LBRC,KC_RBRC,KC_BSLS, KC_MUTE,KC_VOLD,KC_VOLU, KC_P7, KC_P8, KC_P9,KC_PPLS, \ |
154 | KC_LCTL, KC_D, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L,KC_SCLN,KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, \ | 131 | KC_LCTL, KC_D, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L,KC_SCLN,KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, \ |
155 | KC_LSFT,KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M,KC_COMM, KC_DOT,KC_SLSH, KC_RSFT, KC_MS_U, KC_P1, KC_P2, KC_P3,KC_PENT, \ | 132 | KC_LSFT,KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M,KC_COMM, KC_DOT,KC_SLSH, KC_RSFT, KC_MS_U, KC_P1, KC_P2, KC_P3,KC_PENT, \ |
156 | KC_BTN1,KC_BTN3,KC_BTN2, KC_SPC, KC_RALT,KC_RGUI, _______, _______, KC_MS_L,KC_MS_D,KC_MS_R, KC_P0,KC_PDOT), | 133 | KC_BTN1,KC_BTN3,KC_BTN2, KC_SPC, KC_RALT,KC_RGUI, TG(2) , KC_NO , KC_MS_L,KC_MS_D,KC_MS_R, KC_P0,KC_PDOT), |
157 | }; | 134 | }; |
158 | 135 | ||
159 | LEADER_EXTERNS(); | 136 | LEADER_EXTERNS(); |
@@ -169,12 +146,6 @@ void matrix_scan_user(void) { | |||
169 | tap(KC_C); | 146 | tap(KC_C); |
170 | unregister_code(KC_LCTL); | 147 | unregister_code(KC_LCTL); |
171 | } | 148 | } |
172 | SEQ_THREE_KEYS(KC_L,KC_I,KC_T) { // 🔥🔥 | ||
173 | unicode_input_start(); | ||
174 | register_hex32(pgm_read_dword(&unicode_map[LIT])); | ||
175 | unicode_input_finish(); | ||
176 | } | ||
177 | |||
178 | } | 149 | } |
179 | } | 150 | } |
180 | 151 | ||
@@ -183,17 +154,31 @@ void matrix_init_user(void) { | |||
183 | set_unicode_input_mode(UC_WINC); | 154 | set_unicode_input_mode(UC_WINC); |
184 | }; | 155 | }; |
185 | 156 | ||
157 | void cycleAll(qk_tap_dance_state_t *state, void *user_data) { | ||
158 | if(state->count == 1) { | ||
159 | unicode_input_start(); | ||
160 | register_hex32(pgm_read_dword(&unicode_map[EMOTIS])); | ||
161 | unicode_input_finish(); | ||
162 | } | ||
163 | else if(state->count <= 1642) { | ||
164 | tap(KC_BSPC); | ||
165 | unicode_input_start(); | ||
166 | register_hex32(pgm_read_dword(&unicode_map[1])+state->count); | ||
167 | unicode_input_finish(); | ||
168 | } | ||
169 | }; | ||
170 | |||
186 | 171 | ||
187 | void cycleEmojis(qk_tap_dance_state_t *state, void *user_data) { | 172 | void cycleEmojis(qk_tap_dance_state_t *state, void *user_data) { |
188 | if(state->count == 1) { | 173 | if(state->count == 1) { |
189 | unicode_input_start(); | 174 | unicode_input_start(); |
190 | register_hex32(pgm_read_dword(&unicode_map[state->count])); | 175 | register_hex32(pgm_read_dword(&unicode_map[EMOTIS])); |
191 | unicode_input_finish(); | 176 | unicode_input_finish(); |
192 | } | 177 | } |
193 | else if(state->count <= EMOJIBLOCK) { | 178 | else if(state->count <= 80) { |
194 | tap(KC_BSPC); | 179 | tap(KC_BSPC); |
195 | unicode_input_start(); | 180 | unicode_input_start(); |
196 | register_hex32(pgm_read_dword(&unicode_map[state->count])); | 181 | register_hex32(pgm_read_dword(&unicode_map[EMOTIS])+state->count); |
197 | unicode_input_finish(); | 182 | unicode_input_finish(); |
198 | } | 183 | } |
199 | }; | 184 | }; |
@@ -201,43 +186,43 @@ void cycleEmojis(qk_tap_dance_state_t *state, void *user_data) { | |||
201 | void cycleAnimals(qk_tap_dance_state_t *state, void *user_data) { | 186 | void cycleAnimals(qk_tap_dance_state_t *state, void *user_data) { |
202 | if(state->count == 1) { | 187 | if(state->count == 1) { |
203 | unicode_input_start(); | 188 | unicode_input_start(); |
204 | register_hex32(pgm_read_dword(&unicode_map[state->count+5])); | 189 | register_hex32(pgm_read_dword(&unicode_map[ANIMALS])); |
205 | unicode_input_finish(); | 190 | unicode_input_finish(); |
206 | } | 191 | } |
207 | else if(state->count <= EMOJIBLOCK) { | 192 | else if(state->count <= MAXEMOJITAPS) { |
208 | tap(KC_BSPC); | 193 | tap(KC_BSPC); |
209 | unicode_input_start(); | 194 | unicode_input_start(); |
210 | register_hex32(pgm_read_dword(&unicode_map[state->count+5])); | 195 | register_hex32(pgm_read_dword(&unicode_map[ANIMALS])+state->count); |
211 | unicode_input_finish(); | 196 | unicode_input_finish(); |
212 | } | 197 | } |
213 | }; | 198 | }; |
214 | 199 | ||
215 | void cycleHands(qk_tap_dance_state_t *state, void *user_data) { | 200 | void cycleFoods(qk_tap_dance_state_t *state, void *user_data) { |
216 | if(state->count == 1) { | 201 | if(state->count == 1) { |
217 | unicode_input_start(); | 202 | unicode_input_start(); |
218 | register_hex32(pgm_read_dword(&unicode_map[state->count+10])); | 203 | register_hex32(pgm_read_dword(&unicode_map[FOODS])); |
219 | unicode_input_finish(); | 204 | unicode_input_finish(); |
220 | } | 205 | } |
221 | else if(state->count <= EMOJIBLOCK) { | 206 | else if(state->count <= 87) { |
222 | tap(KC_BSPC); | 207 | tap(KC_BSPC); |
223 | unicode_input_start(); | 208 | unicode_input_start(); |
224 | register_hex32(pgm_read_dword(&unicode_map[state->count+10])); | 209 | register_hex32(pgm_read_dword(&unicode_map[FOODS])+state->count); |
225 | unicode_input_finish(); | 210 | unicode_input_finish(); |
226 | } | 211 | } |
227 | }; | 212 | }; |
228 | 213 | ||
229 | void cycleMemes(qk_tap_dance_state_t *state, void *user_data) { | 214 | |
215 | void cycleEtc(qk_tap_dance_state_t *state, void *user_data) { | ||
230 | if(state->count == 1) { | 216 | if(state->count == 1) { |
231 | unicode_input_start(); | 217 | unicode_input_start(); |
232 | register_hex32(pgm_read_dword(&unicode_map[state->count+15])); | 218 | register_hex32(pgm_read_dword(&unicode_map[ETC])); |
233 | unicode_input_finish(); | 219 | unicode_input_finish(); |
234 | } | 220 | } |
235 | else if(state->count <= EMOJIBLOCK) { | 221 | else if(state->count <= MAXEMOJITAPS) { |
236 | tap(KC_BSPC); | 222 | tap(KC_BSPC); |
237 | unicode_input_start(); | 223 | unicode_input_start(); |
238 | register_hex32(pgm_read_dword(&unicode_map[state->count+15])); | 224 | register_hex32(pgm_read_dword(&unicode_map[ETC])+state->count); |
239 | unicode_input_finish(); | 225 | unicode_input_finish(); |
240 | } | 226 | } |
241 | }; | 227 | }; |
242 | 228 | ||
243 | |||