diff options
Diffstat (limited to 'layouts/community/ergodox/deadcyclo/keymap.c')
-rw-r--r-- | layouts/community/ergodox/deadcyclo/keymap.c | 563 |
1 files changed, 563 insertions, 0 deletions
diff --git a/layouts/community/ergodox/deadcyclo/keymap.c b/layouts/community/ergodox/deadcyclo/keymap.c new file mode 100644 index 000000000..0ae1ef7fb --- /dev/null +++ b/layouts/community/ergodox/deadcyclo/keymap.c | |||
@@ -0,0 +1,563 @@ | |||
1 | #include QMK_KEYBOARD_H | ||
2 | #include "debug.h" | ||
3 | #include "action_layer.h" | ||
4 | #include "version.h" | ||
5 | |||
6 | #define BASE 0 // default layer | ||
7 | #define SYMB 1 // symbols | ||
8 | #define MDIA 2 // media keys and navigation | ||
9 | #define UNI 3 // unicode 1 | ||
10 | #define UNI2 4 // unicode 2 | ||
11 | |||
12 | enum macros { | ||
13 | RUN | ||
14 | }; | ||
15 | |||
16 | enum function_ids { | ||
17 | EMOJI, | ||
18 | EMOJI2, | ||
19 | EPRM, | ||
20 | VRSN, | ||
21 | RGB_SLD, | ||
22 | GO_GROUP | ||
23 | }; | ||
24 | |||
25 | /* opt can only be 0-15 */ | ||
26 | enum emojis { | ||
27 | SHRUG, | ||
28 | YAY, | ||
29 | HUG, | ||
30 | SMILE, | ||
31 | SMILE2, | ||
32 | HMM1, | ||
33 | HMM2, | ||
34 | BEAR1, | ||
35 | BEAR2, | ||
36 | FUU, | ||
37 | EGGY1, | ||
38 | EGGY2, | ||
39 | FACE1, | ||
40 | FACE2, | ||
41 | UHU, | ||
42 | SMRK1 | ||
43 | }; | ||
44 | |||
45 | enum emojis2 { | ||
46 | SMRK2, | ||
47 | LOVE | ||
48 | }; | ||
49 | |||
50 | enum progmem_ids { | ||
51 | EMOJI_SHRUG, | ||
52 | EMOJI_YAY, | ||
53 | EMOJI_HUG, | ||
54 | EMOJI_SMILE, | ||
55 | EMOJI_SMILE2, | ||
56 | EMOJI_HMM1, | ||
57 | EMOJI_HMM2, | ||
58 | EMOJI_BEAR1, | ||
59 | EMOJI_BEAR2, | ||
60 | EMOJI_FUU, | ||
61 | EMOJI_EGGY1, | ||
62 | EMOJI_EGGY2, | ||
63 | EMOJI_FACE1, | ||
64 | EMOJI_FACE2, | ||
65 | EMOJI_UHU, | ||
66 | EMOJI_SMRK1, | ||
67 | EMOJI_SMRK2, | ||
68 | EMOJI_LOVE, | ||
69 | F_EPRM, | ||
70 | F_VRSN, | ||
71 | F_RGB_SLD, | ||
72 | I3_GO_GROUP_10, | ||
73 | I3_GO_GROUP_1, | ||
74 | I3_GO_GROUP_2, | ||
75 | I3_GO_GROUP_3, | ||
76 | I3_GO_GROUP_4, | ||
77 | I3_GO_GROUP_5, | ||
78 | I3_GO_GROUP_6, | ||
79 | I3_GO_GROUP_7, | ||
80 | I3_GO_GROUP_8, | ||
81 | I3_GO_GROUP_9, | ||
82 | }; | ||
83 | |||
84 | // TODO: Finish the macros for i3 (Macros should potentially be own function instead to make things easier? some of them at least, f. ex. the ones that use 1-0 keys so we can have a single switch) | ||
85 | |||
86 | // TODO: Do stuff with hyper and meh keys | ||
87 | // TODO: Add macros for lots of stuff. (Lastpass cli, pushbullet cli, other push service cli, linode cli, more?) | ||
88 | // TODO: Make macros for gnu screen and i3wm | ||
89 | // TODO: Need to change hotkeys for lastpass, and potentially make my own keys for them on one of my layers | ||
90 | // TODO: Look into using tap dance | ||
91 | // TODO: Use leader key for stuff. See https://github.com/qmk/qmk_firmware/wiki | ||
92 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
93 | /* Keymap 0: Basic layer | ||
94 | * | ||
95 | * ,--------------------------------------------------. ,--------------------------------------------------. | ||
96 | * | Esc/L3 | 1 | 2 | 3 | 4 | 5 | 6 | | 6 | 7 | 8 | 9 | 0 | - | =/L3 | | ||
97 | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| | ||
98 | * | Tab/L1 | Q | W | E | R | T | L1 | | L2 | Y | U | I | O | P | \/L1 | | ||
99 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | ||
100 | * | LCtrl | A | S | D | F | G |------| |------| H | J | K | L | ; | ctrl/'| | ||
101 | * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| | ||
102 | * | LShift |Z / L4|X / L2| C | V | B | | | | N | M | , |. / L2|/ / L4| RShift | | ||
103 | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' | ||
104 | * |Grv/L1| UNI |AltShf| Lalt | Ralt | | Lalt | Ralt | LEAD | UNI | ~/L1 | | ||
105 | * `----------------------------------' `----------------------------------' | ||
106 | * ,-------------. ,-------------. | ||
107 | * | App | Home | | PgUp | Ins | | ||
108 | * ,------|------|------| |------+--------+------. | ||
109 | * | | | End | | PgDn | | | | ||
110 | * | Space| TAB |------| |------| BSPC |Enter | | ||
111 | * | | | [ | | ] | | | | ||
112 | * `--------------------' `----------------------' | ||
113 | */ | ||
114 | // If it accepts an argument (i.e, is a function), it doesn't need KC_. | ||
115 | // Otherwise, it needs KC_* | ||
116 | [BASE] = LAYOUT_ergodox( // layer 0 : default | ||
117 | // left hand | ||
118 | LT(UNI,KC_ESC), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, | ||
119 | LT(SYMB,KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB), | ||
120 | KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, | ||
121 | KC_LSFT, LT(4, KC_Z), LT(MDIA, KC_X), KC_C, KC_V, KC_B, ALL_T(KC_NO), | ||
122 | LT(SYMB,KC_GRV),LCTL(LSFT(KC_U)), LALT(KC_LSFT), KC_RALT,KC_LALT, | ||
123 | ALT_T(KC_APP), KC_HOME, | ||
124 | KC_END, | ||
125 | KC_SPC,KC_TAB,KC_LBRC, | ||
126 | // right hand | ||
127 | KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, LT(UNI,KC_EQL), | ||
128 | TG(MDIA), KC_Y, KC_U, KC_I, KC_O, KC_P, LT(SYMB, KC_BSLS), | ||
129 | KC_H, KC_J, KC_K, KC_L, KC_SCLN,CTL_T(KC_QUOT), | ||
130 | MEH_T(KC_NO),KC_N, KC_M, KC_COMM,LT(MDIA, KC_DOT), LT(UNI2, KC_SLSH), KC_RSFT, | ||
131 | KC_LALT, KC_RALT,KC_LEAD,LCTL(LSFT(KC_U)), LT(SYMB,KC_TILD), | ||
132 | KC_PGUP, KC_INS, | ||
133 | KC_PGDN, | ||
134 | KC_RBRC,KC_BSPC, KC_ENT | ||
135 | ), | ||
136 | /* Keymap 1: Symbol Layer LCTL(LSFT(KC_U)) | ||
137 | * | ||
138 | * ,--------------------------------------------------. ,--------------------------------------------------. | ||
139 | * | | F1 | F2 | F3 | F4 | F5 | F6 | | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | ||
140 | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| | ||
141 | * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | | | ||
142 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | ||
143 | * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | | ||
144 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | ||
145 | * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | | ||
146 | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' | ||
147 | * | | | | | | | | . | 0 | = | | | ||
148 | * `----------------------------------' `----------------------------------' | ||
149 | * ,-------------. ,-------------. | ||
150 | * |Toggle|Animat| | Hue+ | Hue- | | ||
151 | * ,------|------|------| |------+------+------. | ||
152 | * |Bright|Bright|Solid | | | | | | ||
153 | * |ness- |ness+ |------| |------| DEL | | | ||
154 | * | | | | | EPRM | | | | ||
155 | * `--------------------' `--------------------' | ||
156 | */ | ||
157 | // SYMBOLS | ||
158 | [SYMB] = LAYOUT_ergodox( | ||
159 | // left hand | ||
160 | KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, | ||
161 | KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, | ||
162 | KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV, | ||
163 | KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS, | ||
164 | KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, | ||
165 | RGB_TOG,RGB_MOD, | ||
166 | F(F_RGB_SLD), | ||
167 | RGB_VAD,RGB_VAI,KC_TRNS, | ||
168 | // right hand | ||
169 | KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, | ||
170 | KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_TRNS, | ||
171 | KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS, | ||
172 | KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS, | ||
173 | KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS, | ||
174 | RGB_HUD, RGB_HUI, | ||
175 | KC_TRNS, | ||
176 | F(F_EPRM), KC_DEL, KC_TRNS | ||
177 | ), | ||
178 | /* Keymap 2: Media, mouse and navigation | ||
179 | * | ||
180 | * ,--------------------------------------------------. ,--------------------------------------------------. | ||
181 | * | | gg(1)| gg(2)| gg(3)| gg(4)| gg(5)| gg(6)| | gg(6)| gg(7)| gg(8)| gg(9)| gg(0)| | | | ||
182 | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| | ||
183 | * | | | | MsUp | RUN | | | | | | | Up | | | | | ||
184 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | ||
185 | * | | |MsLeft|MsDown|MsRght| |------| |------| | Left | Down | Right| | Play | | ||
186 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | ||
187 | * | | | | | | | | | | | Prev | Next | | | | | ||
188 | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' | ||
189 | * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | | ||
190 | * `----------------------------------' `----------------------------------' | ||
191 | * ,-------------. ,-------------. | ||
192 | * | | | | | | | ||
193 | * ,------|------|------| |------+------+------. | ||
194 | * | | | | | | |Brwser| | ||
195 | * | | |------| |------| |Back | | ||
196 | * | | | | | | | | | ||
197 | * `--------------------' `--------------------' | ||
198 | */ | ||
199 | // MEDIA , MOUSE and NAVIGATION | ||
200 | [MDIA] = LAYOUT_ergodox( | ||
201 | KC_TRNS, F(I3_GO_GROUP_1), F(I3_GO_GROUP_2), F(I3_GO_GROUP_3), F(I3_GO_GROUP_4), F(I3_GO_GROUP_5), F(I3_GO_GROUP_6), | ||
202 | KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, M(RUN), KC_TRNS, KC_TRNS, | ||
203 | KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, | ||
204 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
205 | KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, | ||
206 | KC_TRNS, KC_TRNS, | ||
207 | KC_TRNS, | ||
208 | KC_TRNS, KC_TRNS, KC_TRNS, | ||
209 | // right hand | ||
210 | F(I3_GO_GROUP_6), F(I3_GO_GROUP_7), F(I3_GO_GROUP_8), F(I3_GO_GROUP_9), F(I3_GO_GROUP_10), KC_TRNS, KC_TRNS, | ||
211 | KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, | ||
212 | KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_MPLY, | ||
213 | KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, | ||
214 | KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, | ||
215 | KC_TRNS, KC_TRNS, | ||
216 | KC_TRNS, | ||
217 | KC_TRNS, KC_TRNS, KC_WBAK | ||
218 | ), | ||
219 | |||
220 | /* Keymap 3: Unicode | ||
221 | * | ||
222 | * ,--------------------------------------------------. ,--------------------------------------------------. | ||
223 | * | | ┌ | ┐ | └ | ┘ | │ | ─ | | ╔ | ╗ | ╚ | ╝ | ║ | ═ | | | ||
224 | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| | ||
225 | * | | shrug| yay | hug | smile|smile2| | | | ■ | λ | → | ➙ | ▻ | █ | | ||
226 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | ||
227 | * | | hmm1 | hmm2 | bear1| bear2| fuu |------| |------| ☺ | ☻ | ☹ | ♡ | ♥ | ░ | | ||
228 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | ||
229 | * | | eggy1| eggy2| face1| face2| uhu | | | | ❤ | ☐ | ☑ | ☒ | ✓ | ▄ | | ||
230 | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' | ||
231 | * | | smrk1| smrk2| love | VER | | ✔ | ✗ | ✘ | ● | ▀ | | ||
232 | * `----------------------------------' `----------------------------------' | ||
233 | * ,-------------. ,-------------. | ||
234 | * | | | | ▒ | ▓ | | ||
235 | * ,------|------|------| |------+------+------. | ||
236 | * | | | | | | | | | ||
237 | * | | |------| |------| | | | ||
238 | * | | | | | | | | | ||
239 | * `--------------------' `--------------------' | ||
240 | */ | ||
241 | // Unicode | ||
242 | [UNI] = LAYOUT_ergodox( | ||
243 | KC_TRNS, UC(0x250c), UC(0x2510), UC(0x2514), UC(0x2518), UC(0x2502), UC(0x2500), | ||
244 | KC_TRNS, F(EMOJI_SHRUG), F(EMOJI_YAY), F(EMOJI_HUG), F(EMOJI_SMILE), F(EMOJI_SMILE2), KC_TRNS, | ||
245 | KC_TRNS, F(EMOJI_HMM1), F(EMOJI_HMM2), F(EMOJI_BEAR1), F(EMOJI_BEAR2), F(EMOJI_FUU), | ||
246 | KC_TRNS, F(EMOJI_EGGY1), F(EMOJI_EGGY2), F(EMOJI_FACE1), F(EMOJI_FACE2), F(EMOJI_UHU), KC_TRNS, | ||
247 | KC_TRNS, F(EMOJI_SMRK1), F(EMOJI_SMRK2), F(EMOJI_LOVE), F(F_VRSN), | ||
248 | KC_TRNS, KC_TRNS, | ||
249 | KC_TRNS, | ||
250 | KC_TRNS, KC_TRNS, KC_TRNS, | ||
251 | // right hand | ||
252 | UC(0x2554), UC(0x2557), UC(0x255a), UC(0x255d), UC(0x2551), UC(0x2550), KC_TRNS, | ||
253 | KC_TRNS, UC(0x25a0), UC(0x03bb), UC(0x2192), UC(0x2799), UC(0x25bb), UC(0x2588), | ||
254 | UC(0x263a), UC(0x263b), UC(0x2639), UC(0x2661), UC(0x2665), UC(0x2591), | ||
255 | KC_TRNS, UC(0x2764), UC(0x2610), UC(0x2611), UC(0x2612), UC(0x2713), UC(0x2584), | ||
256 | UC(0x2714), UC(0x2717), UC(0x2718), UC(0x25cf), UC(0x2580), | ||
257 | UC(0x2592), UC(0x2593), | ||
258 | KC_TRNS, | ||
259 | KC_TRNS, KC_TRNS, KC_TRNS | ||
260 | ), | ||
261 | |||
262 | /* Keymap 4: Unicode 2 | ||
263 | * | ||
264 | * ,--------------------------------------------------. ,--------------------------------------------------. | ||
265 | * | | ¹ | ² | ³ | ⁴ | ⁵ | ⁶ | | ⁶ | ⁷ | ⁸ | ⁹ | ⁰ | ℃ | ™ | | ||
266 | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| | ||
267 | * | | ₁ | ₂ | ₃ | ₄ | ₅ | ₆ | | ₆ | ₇ | ₈ | ₉ | ₀ | ⁄ | | | ||
268 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | ||
269 | * | | ⅞ | ⅝ | ⅜ | ⅛ | ⅚ |------| |------| ⅓ | ⅒ | ⅑ | ⅐ | ¾ | | | ||
270 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | ||
271 | * | | | | ⅗ | ⅖ | ⅕ | ⅔ | | ¼ | ⅙ | ⅘ | ½ | | | | | ||
272 | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' | ||
273 | * | | | | | | | | | | | | | ||
274 | * `----------------------------------' `----------------------------------' | ||
275 | * ,-------------. ,-------------. | ||
276 | * | | | | | | | ||
277 | * ,------|------|------| |------+------+------. | ||
278 | * | | | | | | | | | ||
279 | * | | |------| |------| | | | ||
280 | * | | | | | | | | | ||
281 | * `--------------------' `--------------------' | ||
282 | */ | ||
283 | // Unicode 2 | ||
284 | [UNI2] = LAYOUT_ergodox( | ||
285 | KC_TRNS, UC(0x00b9), UC(0x00b2), UC(0x00b3), UC(0x2074), UC(0x2075), UC(0x2076), | ||
286 | KC_TRNS, UC(0x2081), UC(0x2082), UC(0x2083), UC(0x2084), UC(0x2085), UC(0x2086), | ||
287 | KC_TRNS, UC(0x215e), UC(0x215d), UC(0x215c), UC(0x215b), UC(0x215a), | ||
288 | KC_TRNS, KC_TRNS, KC_TRNS, UC(0x2157), UC(0x2156), UC(0x2155), UC(0x2154), | ||
289 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
290 | KC_TRNS, KC_TRNS, | ||
291 | KC_TRNS, | ||
292 | KC_TRNS, KC_TRNS, KC_TRNS, | ||
293 | // right hand | ||
294 | UC(0x2076), UC(0x2077), UC(0x2078), UC(0x2079), UC(0x2070), UC(0x2103), UC(0x2122), | ||
295 | UC(0x2086), UC(0x2087), UC(0x2088), UC(0x2089), UC(0x2080), UC(0x2044), KC_TRNS, | ||
296 | UC(0x2153), UC(0x2152), UC(0x2151), UC(0x2150), UC(0x00be), KC_TRNS, | ||
297 | UC(0x00bc), UC(0x2159), UC(0x2158), UC(0x00bd), KC_TRNS, KC_TRNS, KC_TRNS, | ||
298 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
299 | KC_TRNS, KC_TRNS, | ||
300 | KC_TRNS, | ||
301 | KC_TRNS, KC_TRNS, KC_TRNS | ||
302 | ), | ||
303 | }; | ||
304 | |||
305 | const uint16_t PROGMEM fn_actions[] = { | ||
306 | [EMOJI_SHRUG] = ACTION_FUNCTION_OPT(EMOJI, SHRUG), | ||
307 | [EMOJI_YAY] = ACTION_FUNCTION_OPT(EMOJI, YAY), | ||
308 | [EMOJI_HUG] = ACTION_FUNCTION_OPT(EMOJI,HUG), | ||
309 | [EMOJI_SMILE] = ACTION_FUNCTION_OPT(EMOJI,SMILE), | ||
310 | [EMOJI_SMILE2] = ACTION_FUNCTION_OPT(EMOJI,SMILE2), | ||
311 | [EMOJI_HMM1] = ACTION_FUNCTION_OPT(EMOJI,HMM1), | ||
312 | [EMOJI_HMM2] = ACTION_FUNCTION_OPT(EMOJI,HMM2), | ||
313 | [EMOJI_BEAR1] = ACTION_FUNCTION_OPT(EMOJI,BEAR1), | ||
314 | [EMOJI_BEAR2] = ACTION_FUNCTION_OPT(EMOJI,BEAR2), | ||
315 | [EMOJI_FUU] = ACTION_FUNCTION_OPT(EMOJI,FUU), | ||
316 | [EMOJI_EGGY1] = ACTION_FUNCTION_OPT(EMOJI,EGGY1), | ||
317 | [EMOJI_EGGY2] = ACTION_FUNCTION_OPT(EMOJI,EGGY2), | ||
318 | [EMOJI_FACE1] = ACTION_FUNCTION_OPT(EMOJI,FACE1), | ||
319 | [EMOJI_FACE2] = ACTION_FUNCTION_OPT(EMOJI,FACE2), | ||
320 | [EMOJI_UHU] = ACTION_FUNCTION_OPT(EMOJI,UHU), | ||
321 | [EMOJI_SMRK1] = ACTION_FUNCTION_OPT(EMOJI,SMRK1), | ||
322 | [EMOJI_SMRK2] = ACTION_FUNCTION_OPT(EMOJI2,SMRK2), | ||
323 | [EMOJI_LOVE] = ACTION_FUNCTION_OPT(EMOJI2,LOVE), | ||
324 | [F_EPRM] = ACTION_FUNCTION(EPRM), | ||
325 | [F_VRSN] = ACTION_FUNCTION(VRSN), | ||
326 | [F_RGB_SLD] = ACTION_FUNCTION(RGB_SLD), | ||
327 | [I3_GO_GROUP_10]= ACTION_FUNCTION_OPT(GO_GROUP,0), | ||
328 | [I3_GO_GROUP_1] = ACTION_FUNCTION_OPT(GO_GROUP,1), | ||
329 | [I3_GO_GROUP_2] = ACTION_FUNCTION_OPT(GO_GROUP,2), | ||
330 | [I3_GO_GROUP_3] = ACTION_FUNCTION_OPT(GO_GROUP,3), | ||
331 | [I3_GO_GROUP_4] = ACTION_FUNCTION_OPT(GO_GROUP,4), | ||
332 | [I3_GO_GROUP_5] = ACTION_FUNCTION_OPT(GO_GROUP,5), | ||
333 | [I3_GO_GROUP_6] = ACTION_FUNCTION_OPT(GO_GROUP,6), | ||
334 | [I3_GO_GROUP_7] = ACTION_FUNCTION_OPT(GO_GROUP,7), | ||
335 | [I3_GO_GROUP_8] = ACTION_FUNCTION_OPT(GO_GROUP,8), | ||
336 | [I3_GO_GROUP_9] = ACTION_FUNCTION_OPT(GO_GROUP,9), | ||
337 | }; | ||
338 | |||
339 | #define TAP_ONCE(code) \ | ||
340 | register_code (code); \ | ||
341 | unregister_code (code) | ||
342 | |||
343 | void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { | ||
344 | if (record->event.pressed) { | ||
345 | switch(id) { | ||
346 | case EPRM: | ||
347 | eeconfig_init(); | ||
348 | break; | ||
349 | case VRSN: | ||
350 | SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); | ||
351 | break; | ||
352 | case RGB_SLD: | ||
353 | #ifdef RGBLIGHT_ENABLE | ||
354 | rgblight_mode(1); | ||
355 | #endif | ||
356 | break; | ||
357 | case GO_GROUP: | ||
358 | register_code(KC_LCTL); TAP_ONCE(KC_I); unregister_code(KC_LCTL); | ||
359 | TAP_ONCE(KC_G); | ||
360 | if (opt == 0) { | ||
361 | TAP_ONCE(39); | ||
362 | } else { | ||
363 | TAP_ONCE(29+opt); | ||
364 | } | ||
365 | break; | ||
366 | case EMOJI: | ||
367 | switch(opt) { | ||
368 | case SHRUG: | ||
369 | unicode_input_start(); register_hex(0xaf); unicode_input_finish(); | ||
370 | TAP_ONCE (KC_BSLS); | ||
371 | register_code (KC_RSFT); TAP_ONCE (KC_MINS); TAP_ONCE (KC_9); unregister_code (KC_RSFT); | ||
372 | unicode_input_start (); register_hex(0x30c4); unicode_input_finish(); | ||
373 | register_code (KC_RSFT); TAP_ONCE (KC_0); TAP_ONCE (KC_MINS); unregister_code (KC_RSFT); | ||
374 | TAP_ONCE (KC_SLSH); | ||
375 | unicode_input_start (); register_hex(0xaf); unicode_input_finish(); | ||
376 | break; | ||
377 | case YAY: | ||
378 | SEND_STRING ("\\o/"); | ||
379 | break; | ||
380 | case HUG: | ||
381 | unicode_input_start(); register_hex(0x0f3c); unicode_input_finish(); | ||
382 | TAP_ONCE (KC_SPC); | ||
383 | unicode_input_start(); register_hex(0x3064); unicode_input_finish(); | ||
384 | TAP_ONCE (KC_SPC); | ||
385 | unicode_input_start(); register_hex(0x25d5); unicode_input_finish(); | ||
386 | unicode_input_start(); register_hex(0x005f); unicode_input_finish(); | ||
387 | unicode_input_start(); register_hex(0x25d5); unicode_input_finish(); | ||
388 | TAP_ONCE (KC_SPC); | ||
389 | unicode_input_start(); register_hex(0x0f3d); unicode_input_finish(); | ||
390 | unicode_input_start(); register_hex(0x3064); unicode_input_finish(); | ||
391 | break; | ||
392 | case SMILE: | ||
393 | unicode_input_start(); register_hex(0x0298); unicode_input_finish(); | ||
394 | unicode_input_start(); register_hex(0x203f); unicode_input_finish(); | ||
395 | unicode_input_start(); register_hex(0x0298); unicode_input_finish(); | ||
396 | break; | ||
397 | case SMILE2: | ||
398 | unicode_input_start(); register_hex(0x0028); unicode_input_finish(); | ||
399 | unicode_input_start(); register_hex(0x0298); unicode_input_finish(); | ||
400 | unicode_input_start(); register_hex(0x203f); unicode_input_finish(); | ||
401 | unicode_input_start(); register_hex(0x0298); unicode_input_finish(); | ||
402 | unicode_input_start(); register_hex(0x0029); unicode_input_finish(); | ||
403 | break; | ||
404 | case HMM1: | ||
405 | unicode_input_start(); register_hex(0x0ca0); unicode_input_finish(); | ||
406 | unicode_input_start(); register_hex(0x005f); unicode_input_finish(); | ||
407 | unicode_input_start(); register_hex(0x0ca0); unicode_input_finish(); | ||
408 | break; | ||
409 | case HMM2: | ||
410 | unicode_input_start(); register_hex(0x0028); unicode_input_finish(); | ||
411 | unicode_input_start(); register_hex(0x0ca0); unicode_input_finish(); | ||
412 | unicode_input_start(); register_hex(0x005f); unicode_input_finish(); | ||
413 | unicode_input_start(); register_hex(0x0ca0); unicode_input_finish(); | ||
414 | unicode_input_start(); register_hex(0x0029); unicode_input_finish(); | ||
415 | break; | ||
416 | case BEAR1: | ||
417 | unicode_input_start(); register_hex(0x0295); unicode_input_finish(); | ||
418 | unicode_input_start(); register_hex(0x2022); unicode_input_finish(); | ||
419 | unicode_input_start(); register_hex(0x1d25); unicode_input_finish(); | ||
420 | unicode_input_start(); register_hex(0x2022); unicode_input_finish(); | ||
421 | unicode_input_start(); register_hex(0x0294); unicode_input_finish(); | ||
422 | break; | ||
423 | case BEAR2: | ||
424 | unicode_input_start(); register_hex(0x0028); unicode_input_finish(); | ||
425 | unicode_input_start(); register_hex(0x1d54); unicode_input_finish(); | ||
426 | unicode_input_start(); register_hex(0x1d25); unicode_input_finish(); | ||
427 | unicode_input_start(); register_hex(0x1d54); unicode_input_finish(); | ||
428 | unicode_input_start(); register_hex(0x0029); unicode_input_finish(); | ||
429 | break; | ||
430 | case FUU: | ||
431 | unicode_input_start(); register_hex(0x256d); unicode_input_finish(); | ||
432 | unicode_input_start(); register_hex(0x2229); unicode_input_finish(); | ||
433 | unicode_input_start(); register_hex(0x256e); unicode_input_finish(); | ||
434 | unicode_input_start(); register_hex(0x0028); unicode_input_finish(); | ||
435 | unicode_input_start(); register_hex(0x002d); unicode_input_finish(); | ||
436 | unicode_input_start(); register_hex(0x005f); unicode_input_finish(); | ||
437 | unicode_input_start(); register_hex(0x002d); unicode_input_finish(); | ||
438 | unicode_input_start(); register_hex(0x0029); unicode_input_finish(); | ||
439 | unicode_input_start(); register_hex(0x256d); unicode_input_finish(); | ||
440 | unicode_input_start(); register_hex(0x2229); unicode_input_finish(); | ||
441 | unicode_input_start(); register_hex(0x256e); unicode_input_finish(); | ||
442 | break; | ||
443 | case EGGY1: | ||
444 | unicode_input_start(); register_hex(0x0028); unicode_input_finish(); | ||
445 | unicode_input_start(); register_hex(0x256f); unicode_input_finish(); | ||
446 | unicode_input_start(); register_hex(0x00b0); unicode_input_finish(); | ||
447 | unicode_input_start(); register_hex(0x25a1); unicode_input_finish(); | ||
448 | unicode_input_start(); register_hex(0x00b0); unicode_input_finish(); | ||
449 | unicode_input_start(); register_hex(0xff09); unicode_input_finish(); | ||
450 | unicode_input_start(); register_hex(0x256f); unicode_input_finish(); | ||
451 | break; | ||
452 | case EGGY2: | ||
453 | unicode_input_start(); register_hex(0x30ce); unicode_input_finish(); | ||
454 | unicode_input_start(); register_hex(0x0028); unicode_input_finish(); | ||
455 | unicode_input_start(); register_hex(0x0020); unicode_input_finish(); | ||
456 | unicode_input_start(); register_hex(0x309c); unicode_input_finish(); | ||
457 | unicode_input_start(); register_hex(0x002d); unicode_input_finish(); | ||
458 | unicode_input_start(); register_hex(0x309c); unicode_input_finish(); | ||
459 | unicode_input_start(); register_hex(0x30ce); unicode_input_finish(); | ||
460 | unicode_input_start(); register_hex(0x0029); unicode_input_finish(); | ||
461 | break; | ||
462 | case FACE1: | ||
463 | unicode_input_start(); register_hex(0x0028); unicode_input_finish(); | ||
464 | unicode_input_start(); register_hex(0x002d); unicode_input_finish(); | ||
465 | unicode_input_start(); register_hex(0x005f); unicode_input_finish(); | ||
466 | unicode_input_start(); register_hex(0x002d); unicode_input_finish(); | ||
467 | unicode_input_start(); register_hex(0x0029); unicode_input_finish(); | ||
468 | break; | ||
469 | case FACE2: | ||
470 | unicode_input_start(); register_hex(0x0028); unicode_input_finish(); | ||
471 | unicode_input_start(); register_hex(0x2022); unicode_input_finish(); | ||
472 | unicode_input_start(); register_hex(0x005f); unicode_input_finish(); | ||
473 | unicode_input_start(); register_hex(0x2022); unicode_input_finish(); | ||
474 | unicode_input_start(); register_hex(0x0029); unicode_input_finish(); | ||
475 | break; | ||
476 | case UHU: | ||
477 | unicode_input_start(); register_hex(0x2299); unicode_input_finish(); | ||
478 | unicode_input_start(); register_hex(0xfe4f); unicode_input_finish(); | ||
479 | unicode_input_start(); register_hex(0x2299); unicode_input_finish(); | ||
480 | break; | ||
481 | case SMRK1: | ||
482 | unicode_input_start(); register_hex(0x005e); unicode_input_finish(); | ||
483 | unicode_input_start(); register_hex(0x032e); unicode_input_finish(); | ||
484 | unicode_input_start(); register_hex(0x005e); unicode_input_finish(); | ||
485 | break; | ||
486 | } | ||
487 | break; | ||
488 | case EMOJI2: | ||
489 | switch(opt) { | ||
490 | case SMRK2: | ||
491 | unicode_input_start(); register_hex(0x0028); unicode_input_finish(); | ||
492 | unicode_input_start(); register_hex(0x005e); unicode_input_finish(); | ||
493 | unicode_input_start(); register_hex(0x032e); unicode_input_finish(); | ||
494 | unicode_input_start(); register_hex(0x005e); unicode_input_finish(); | ||
495 | unicode_input_start(); register_hex(0x0029); unicode_input_finish(); | ||
496 | break; | ||
497 | case LOVE: | ||
498 | unicode_input_start(); register_hex(0x2665); unicode_input_finish(); | ||
499 | unicode_input_start(); register_hex(0x203f); unicode_input_finish(); | ||
500 | unicode_input_start(); register_hex(0x2665); unicode_input_finish(); | ||
501 | break; | ||
502 | } | ||
503 | break; | ||
504 | } | ||
505 | } | ||
506 | } | ||
507 | |||
508 | const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { | ||
509 | if (record->event.pressed) { | ||
510 | switch(id) { | ||
511 | case RUN: | ||
512 | return MACRO( D(LCTL), T(I), U(LCTL), T(R), END ); | ||
513 | break; | ||
514 | } | ||
515 | } | ||
516 | return MACRO_NONE; | ||
517 | }; | ||
518 | |||
519 | // Runs just one time when the keyboard initializes. | ||
520 | void matrix_init_user(void) { | ||
521 | set_unicode_input_mode(UC_LNX); | ||
522 | }; | ||
523 | |||
524 | // Runs constantly in the background, in a loop. | ||
525 | void matrix_scan_user(void) { | ||
526 | uint8_t layer = biton32(layer_state); | ||
527 | |||
528 | ergodox_board_led_off(); | ||
529 | ergodox_right_led_1_off(); | ||
530 | ergodox_right_led_2_off(); | ||
531 | ergodox_right_led_3_off(); | ||
532 | switch (layer) { | ||
533 | case 1: | ||
534 | ergodox_right_led_1_on(); | ||
535 | #ifdef RGBLIGHT_ENABLE | ||
536 | rgblight_setrgb(0xff,0x00,0x00); | ||
537 | #endif | ||
538 | break; | ||
539 | case 2: | ||
540 | ergodox_right_led_2_on(); | ||
541 | #ifdef RGBLIGHT_ENABLE | ||
542 | rgblight_setrgb(0x00,0xff,0x00); | ||
543 | #endif | ||
544 | break; | ||
545 | case 3: | ||
546 | ergodox_right_led_3_on(); | ||
547 | #ifdef RGBLIGHT_ENABLE | ||
548 | rgblight_setrgb(0x00,0x00,0xff); | ||
549 | #endif | ||
550 | break; | ||
551 | case 4: | ||
552 | ergodox_right_led_1_on(); | ||
553 | ergodox_right_led_3_on(); | ||
554 | #ifdef RGBLIGHT_ENABLE | ||
555 | rgblight_setrgb(0xff,0x00,0xff); | ||
556 | #endif | ||
557 | break; | ||
558 | default: | ||
559 | // none | ||
560 | break; | ||
561 | } | ||
562 | |||
563 | }; | ||