aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/ergodox/keymaps/albert/Makefile5
-rw-r--r--keyboards/ergodox/keymaps/albert/config.h12
-rw-r--r--keyboards/ergodox/keymaps/albert/keymap.c661
-rw-r--r--keyboards/ergodox/keymaps/albert/readme.md188
-rw-r--r--keyboards/ergodox/keymaps/deadcyclo/Makefile1
-rw-r--r--keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-base-layout.pngbin79741 -> 79488 bytes
-rw-r--r--keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-1-symbols.pngbin55349 -> 79904 bytes
-rw-r--r--keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-2-media-and-mouse.pngbin50926 -> 62258 bytes
-rw-r--r--keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-3-navigation.pngbin43551 -> 58886 bytes
-rw-r--r--keyboards/ergodox/keymaps/deadcyclo/keymap.c426
-rw-r--r--keyboards/ergodox/keymaps/deadcyclo/readme.md60
-rw-r--r--keyboards/ergodox/keymaps/software_neo2/keymap.c64
12 files changed, 1284 insertions, 133 deletions
diff --git a/keyboards/ergodox/keymaps/albert/Makefile b/keyboards/ergodox/keymaps/albert/Makefile
new file mode 100644
index 000000000..eb8544afe
--- /dev/null
+++ b/keyboards/ergodox/keymaps/albert/Makefile
@@ -0,0 +1,5 @@
1COMMAND_ENABLE = no # Commands for debug and configuration
2
3ifndef QUANTUM_DIR
4 include ../../../../Makefile
5endif
diff --git a/keyboards/ergodox/keymaps/albert/config.h b/keyboards/ergodox/keymaps/albert/config.h
new file mode 100644
index 000000000..e6d363117
--- /dev/null
+++ b/keyboards/ergodox/keymaps/albert/config.h
@@ -0,0 +1,12 @@
1#ifndef CONFIG_USER_H
2#define CONFIG_USER_H
3
4#include "../../config.h"
5
6/* using UK layout for space-cadet-shift */
7#define LSPO_KEY KC_9
8#define RSPC_KEY KC_0
9
10#define LEADER_TIMEOUT 800 // leader key sequence timeout in millis
11
12#endif
diff --git a/keyboards/ergodox/keymaps/albert/keymap.c b/keyboards/ergodox/keymaps/albert/keymap.c
new file mode 100644
index 000000000..dfbb311bd
--- /dev/null
+++ b/keyboards/ergodox/keymaps/albert/keymap.c
@@ -0,0 +1,661 @@
1#include "ergodox.h"
2#include "debug.h"
3#include "action_layer.h"
4#include "version.h"
5
6#include <stdarg.h>
7
8/* use UK keymap */
9
10#define UK_HASH KC_NONUS_HASH
11#define UK_BSLS KC_NONUS_BSLASH
12#define UK_PIPE LSFT(UK_BSLS)
13
14#define BASE 0 // default layer
15#define SYMB 1 // symbols
16#define NUMB 2 // numbers and hex
17#define CRSR 3 // cursor keys
18#define MOUS 4 // mouse keys
19#define KEYW 5 // keyword macros
20#define EMAC 6 // emacs
21
22// my macros
23#define UM_ECET M(0) // { }
24#define UM_0x M(1)
25#define UM_PUB M(2)
26#define UM_PRO M(3)
27#define UM_PRV M(4)
28#define UM_CLS M(5)
29#define UM_STR M(6)
30#define UM_RET M(7)
31#define UM_INC M(8)
32#define UM_OBJ M(9)
33#define UM_GITLOG M(10)
34#define UM_GOODM M(11)
35#define UM_NAMESP M(12)
36#define UM_EMTR M(14) // emacs toggle read-only
37#define UM_EMWR M(15) // emacs write buffer (save)
38#define UM_EMUN M(16) // emacs undo
39#define UM_EMRE M(17) // emacs redo
40#define UM_EMPB M(18) // emacs previous buffer
41#define UM_EMNB M(19) // emacs next buffer
42#define UM_GOODN M(20)
43#define UM_ECETS M(22) // { };
44#define UM_TMPL M(23)
45#define UM_TYPN M(24)
46#define UM_CONT M(25)
47#define UM_BREAK M(26)
48#define UM_CONST M(27)
49#define UM_SMILY M(28)
50#define UM_SADF M(29)
51#define UM_SCARF M(30)
52#define UM_DECAF M(31)
53#define UM_OPER M(32)
54#define UM_NULP M(33)
55#define UM_EXTR M(34)
56#define UM_VIRT M(35)
57#define UM_EMFB M(36) // emacs font bigger
58#define UM_EMFS M(37) // emacs font smaller
59#define UM_VOLAT M(38)
60
61const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
62/* Keymap 0: Base layer
63 *
64 * ,--------------------------------------------------. ,--------------------------------------------------.
65 * | ESC | 1 | 2 | 3 | 4 | 5 | SfLt | | SfRt | 6 | 7 | 8 | 9 | 0 | BkSp |
66 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
67 * | Tab | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | Del |
68 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
69 * | Caps/L2| A | S | D | F | G |------| |------| H | J | K | L | ; |Enter/L2|
70 * |--------+------+------+------+------+------| L6 | | L6 |------+------+------+------+------+--------|
71 * | LSft/( | Z | X | C | V/L3 | B/L4 | | | | N/L4 | M/L3 | , | . | / | RSft/) |
72 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
73 * |Ctrl/[| Alt/]| # | Left |Right | | Up | Down | - | Alt/[|Ctrl/]|
74 * `----------------------------------' `----------------------------------'
75 * ,-------------. ,-------------.
76 * | L2 | lead | | lead | Ins |
77 * ,------|------|------| |------+------+------.
78 * | Space| BkSp | Home | | PgUp | Enter|Space |
79 * | / | / |------| |------| / | / |
80 * | Ctrl | Alt |End/L5| |PDn/L5| Alt | Ctrl |
81 * `--------------------' `--------------------'
82 */
83[BASE] = KEYMAP( // layer 0 : default
84 // left hand
85 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, LSFT(KC_LEFT),
86 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, MO(SYMB),
87 LT(NUMB, KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G,
88 KC_LSPO, KC_Z, KC_X, KC_C, LT(CRSR, KC_V), LT(MOUS, KC_B), MO(EMAC),
89 CTL_T(KC_LBRC), ALT_T(KC_RBRC), UK_HASH, KC_LEFT, KC_RGHT,
90 TG(NUMB), KC_LEAD,
91 KC_HOME,
92 CTL_T(KC_SPC), ALT_T(KC_BSPC), LT(KEYW, KC_END),
93 // right hand
94 LSFT(KC_RGHT), KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
95 MO(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DELT,
96 KC_H, KC_J, KC_K, KC_L, KC_SCLN, LT(NUMB, KC_ENT),
97 MO(EMAC), LT(MOUS, KC_N), LT(CRSR, KC_M), KC_COMM, KC_DOT, KC_SLSH, KC_RSPC,
98 KC_UP, KC_DOWN, KC_MINS, ALT_T(KC_LBRC), CTL_T(KC_RBRC),
99 KC_LEAD, KC_INS,
100 KC_PGUP,
101 LT(KEYW, KC_PGDN), ALT_T(KC_ENT), CTL_T(KC_SPC)
102 ),
103/* Keymap 1: Symbol Layer with F keys
104 *
105 * ,--------------------------------------------------. ,--------------------------------------------------.
106 * | ## | F1 | F2 | F3 | F4 | F5 | ## | | ## | F6 | F7 | F8 | F9 | F10 | F11 |
107 * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
108 * | ## | ! | " | £ | $ | % | ## | | ## | - | + | = | @ | ~ | F12 |
109 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
110 * | ## | ^ | & | * | _ | # |------| |------| { | } | ; | ' | # | ## |
111 * |--------+------+------+------+------+------| ## | | ## |------+------+------+------+------+--------|
112 * | ## | \ | | | ` | - | / | | | | [ | ] | < | > | ? | ## |
113 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
114 * | ## | ## | ## | ## | ## | | ## | ## | ## | ## | ## |
115 * `----------------------------------' `----------------------------------'
116 * ,-------------. ,-------------.
117 * | ## | ## | | ## | ## |
118 * ,------|------|------| |------+------+------.
119 * | | | ## | | ## | | |
120 * | ## | ## |------| |------| ## | ## |
121 * | | | ## | | ## | | |
122 * `--------------------' `--------------------'
123 */
124[SYMB] = KEYMAP(
125 // left hand
126 KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
127 KC_TRNS, KC_EXLM, LSFT(KC_2), LSFT(KC_3), LSFT(KC_4), LSFT(KC_5), KC_TRNS,
128 KC_TRNS, LSFT(KC_6), LSFT(KC_7), LSFT(KC_8), LSFT(KC_MINS), UK_HASH,
129 KC_TRNS, UK_BSLS, UK_PIPE, KC_GRV, KC_MINS, KC_SLSH, KC_TRNS,
130 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
131 KC_TRNS, KC_TRNS,
132 KC_TRNS,
133 KC_TRNS, KC_TRNS, KC_TRNS,
134 // right hand
135 KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
136 KC_TRNS, KC_MINS, KC_PLUS, KC_EQL, LSFT(KC_QUOT), LSFT(UK_HASH), KC_F12,
137 KC_LCBR, KC_RCBR, KC_SCLN, KC_QUOT, UK_HASH, KC_TRNS,
138 KC_TRNS, KC_LBRC, KC_RBRC, LSFT(KC_COMM), LSFT(KC_DOT), LSFT(KC_SLSH), KC_TRNS,
139 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
140 KC_TRNS, KC_TRNS,
141 KC_TRNS,
142 KC_TRNS, KC_TRNS, KC_TRNS
143 ),
144/* Keymap 2: Numerics and hex
145 *
146 * ,---------------------------------------------------. ,--------------------------------------------------.
147 * | ## | A | B | C | D | E | F | | A | B | C | D | E | F | ## |
148 * |---------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
149 * | ## | * | 7 | 8 | 9 | * | 0x | | 0x | * | 7 | 8 | 9 | * | ## |
150 * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
151 * | ## | / | 4 | 5 | 6 | / |------| |------| / | 4 | 5 | 6 | / | ## |
152 * |---------+------+------+------+------+------| ## | | ## |------+------+------+------+------+--------|
153 * | ## | - | 1 | 2 | 3 | - | | | | - | 1 | 2 | 3 | - | ## |
154 * `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
155 * | = | + | 0 | , | . | | 0 | , | . | + | = |
156 * `-----------------------------------' `----------------------------------'
157 * ,-------------. ,-------------.
158 * | ## | ## | | ## | ## |
159 * ,------|------|------| |------+------+------.
160 * | | | ## | | ## | | |
161 * | ## | ## |------| |------| ## | ## |
162 * | | | ## | | ## | | |
163 * `--------------------' `--------------------'
164 */
165[NUMB] = KEYMAP(
166 // left hand
167 KC_TRNS, KC_A, KC_B, KC_C, KC_D, KC_E, KC_F,
168 KC_TRNS, KC_ASTR, KC_7, KC_8, KC_9, KC_ASTR, UM_0x,
169 KC_TRNS, KC_SLSH, KC_4, KC_5, KC_6, KC_SLSH,
170 KC_TRNS, KC_MINS, KC_1, KC_2, KC_3, KC_MINS, KC_TRNS,
171 KC_EQL, KC_PLUS, KC_0, KC_COMM, KC_DOT,
172 KC_TRNS, KC_TRNS,
173 KC_TRNS,
174 KC_TRNS, KC_TRNS, KC_TRNS,
175 // right hand
176 KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_TRNS,
177 UM_0x, KC_ASTR, KC_7, KC_8, KC_9, KC_ASTR, KC_TRNS,
178 KC_SLSH, KC_4, KC_5, KC_6, KC_SLSH, KC_TRNS,
179 KC_TRNS, KC_MINS, KC_1, KC_2, KC_3, KC_MINS, KC_TRNS,
180 KC_0, KC_COMM, KC_DOT, KC_PLUS, KC_EQL,
181 KC_TRNS, KC_TRNS,
182 KC_TRNS,
183 KC_TRNS, KC_TRNS, KC_TRNS
184 ),
185/* Keymap 3: Cursor movement
186 *
187 * ,---------------------------------------------------. ,--------------------------------------------------.
188 * | | | | | | | | | | | | | | | |
189 * |---------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
190 * | | Home | | Up | | PgUp | | | | PgUp | | Up | | Home | |
191 * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
192 * | | End | Left | Down | Right| PgDn |------| |------| PgDn | Left | Down | Right| End | |
193 * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
194 * | ## | Up | | Down | ## | | | | | | ## | Down | | Up | ## |
195 * `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
196 * | Left | Down | Right| | | | | | Left | Down | Right|
197 * `-----------------------------------' `----------------------------------'
198 * ,-------------. ,-------------.
199 * | | | | | |
200 * ,------|------|------| |------+------+------.
201 * | | | | | | | |
202 * | ## | ## |------| |------| ## | ## |
203 * | | | | | | | |
204 * `--------------------' `--------------------'
205 */
206[CRSR] = KEYMAP(
207 // left hand
208 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
209 KC_NO, KC_HOME, KC_NO, KC_UP, KC_NO, KC_PGUP, KC_NO,
210 KC_NO, KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN,
211 KC_TRNS, KC_UP, KC_NO, KC_DOWN, KC_TRNS, KC_NO, KC_NO,
212 KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO,
213 KC_NO, KC_NO,
214 KC_NO,
215 KC_TRNS, KC_TRNS, KC_NO,
216 // right hand
217 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
218 KC_NO, KC_PGUP, KC_NO, KC_UP, KC_NO, KC_HOME, KC_NO,
219 KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_NO,
220 KC_NO, KC_NO, KC_TRNS, KC_DOWN, KC_NO, KC_UP, KC_TRNS,
221 KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT,
222 KC_NO, KC_NO,
223 KC_NO,
224 KC_NO, KC_TRNS, KC_TRNS
225 ),
226/* Keymap 4: Media and mouse keys
227 *
228 * ,--------------------------------------------------. ,--------------------------------------------------.
229 * | | | | | | | | | | | | | | | |
230 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
231 * | | | Lclk | MsUp | Rclk | | | | | | Lclk | MsUp | Rclk | | |
232 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
233 * | | |MsLeft|MsDown|MsRght| |------| |------| |MsLeft|MsDown|MsRght| | |
234 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
235 * | Lclk | MsUp | Rclk |MsDown| | ## | | | | ## | |MsDown| Lclk | MsUp | Rclk |
236 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
237 * |MsLeft|MsDown|MsRight | | | | |MsLeft|MsDown|MsRght|
238 * `----------------------------------' `----------------------------------'
239 * ,-------------. ,-------------.
240 * | | | | | |
241 * ,------|------|------| |------+------+------.
242 * | | | | | | | |
243 * | | |------| |------| | |
244 * | | | | | | | |
245 * `--------------------' `--------------------'
246 */
247[MOUS] = KEYMAP(
248 // left hand
249 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
250 KC_NO, KC_NO, KC_BTN1, KC_MS_U, KC_BTN2, KC_NO, KC_NO,
251 KC_NO, KC_NO, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO,
252 KC_BTN1, KC_MS_U, KC_BTN2, KC_MS_D, KC_NO, KC_TRNS, KC_NO,
253 KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, KC_NO,
254 KC_NO, KC_NO,
255 KC_NO,
256 KC_NO, KC_NO, KC_NO,
257 // right hand
258 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
259 KC_NO, KC_NO, KC_BTN1, KC_MS_U, KC_BTN2, KC_NO, KC_NO,
260 KC_NO, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, KC_NO,
261 KC_NO, KC_TRNS, KC_NO, KC_MS_D, KC_BTN1, KC_MS_U, KC_BTN2,
262 KC_NO, KC_NO, KC_MS_L, KC_MS_D, KC_MS_R,
263 KC_NO, KC_NO,
264 KC_NO,
265 KC_NO, KC_NO, KC_NO
266 ),
267/* Keymap 5: Keywords
268 *
269 * ,---------------------------------------------------. ,--------------------------------------------------.
270 * | | | | scarf| sadf | smily| | | | decaf| | | | | |
271 * |---------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
272 * | | const| volat| oper | ret | tmpl | | | | typen| cont | prv | pro | pub | |
273 * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
274 * | | | str | obj | | gitl |------| |------| | | | nulp | | |
275 * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
276 * | | | extr | cls | virt | break| | | |namesp| goodm| goodn| | | |
277 * `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
278 * | | | inc | | | | | | | | |
279 * `-----------------------------------' `----------------------------------'
280 * ,-------------. ,-------------.
281 * | | | | ecet | ecets|
282 * ,------|------|------| |------+------+------.
283 * | | | | | | | |
284 * | | |------| |------| | |
285 * | | | ## | | ## | | |
286 * `--------------------' `--------------------'
287 */
288[KEYW] = KEYMAP(
289 // left hand
290 KC_NO, KC_NO, KC_NO, UM_SCARF, UM_SADF, UM_SMILY, KC_NO,
291 KC_NO, UM_CONST, UM_VOLAT, UM_OPER, UM_RET, UM_TMPL, KC_NO,
292 KC_NO, KC_NO, UM_STR, UM_OBJ, KC_NO, UM_GITLOG,
293 KC_NO, KC_NO, UM_EXTR, UM_CLS, UM_VIRT, UM_BREAK, KC_NO,
294 KC_NO, KC_NO, UM_INC, KC_NO, KC_NO,
295 KC_NO, KC_NO,
296 KC_NO,
297 KC_NO, KC_NO, KC_TRNS,
298 // right hand
299 KC_NO, UM_DECAF, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
300 KC_NO, UM_TYPN, UM_CONT, UM_PRV, UM_PRO, UM_PUB, KC_NO,
301 KC_NO, KC_NO, KC_NO, UM_NULP, KC_NO, KC_NO,
302 KC_NO, UM_NAMESP, UM_GOODM, UM_GOODN, KC_NO, KC_NO, KC_NO,
303 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
304 UM_ECET, UM_ECETS,
305 KC_NO,
306 KC_TRNS, KC_NO, KC_NO
307 ),
308/* Keymap 6: emacs
309 *
310 * ,---------------------------------------------------. ,--------------------------------------------------.
311 * | | | | | | | empb | | emnb | emfs | emfb | | | | |
312 * |---------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
313 * | | emtr | | | | | | | | emun | emre | w-up | | | |
314 * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
315 * | | | emwr | | | |------| |------| |w-left|w-down|w-rght| | |
316 * |---------+------+------+------+------+------| ## | | ## |------+------+------+------+------+--------|
317 * | | | | | | | | | | | |w-down| | | |
318 * `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
319 * | | | | | | | | | | | |
320 * `-----------------------------------' `----------------------------------'
321 * ,-------------. ,-------------.
322 * | | | | | |
323 * ,------|------|------| |------+------+------.
324 * | | | | | | | |
325 * | | |------| |------| | |
326 * | | | | | | | |
327 * `--------------------' `--------------------'
328 */
329[EMAC] = KEYMAP(
330 // left hand
331 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, UM_EMPB,
332 KC_NO, UM_EMTR, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
333 KC_NO, KC_NO, UM_EMWR, KC_NO, KC_NO, KC_NO,
334 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,
335 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
336 KC_NO, KC_NO,
337 KC_NO,
338 KC_NO, KC_NO, KC_NO,
339 // right hand
340 UM_EMNB, UM_EMFS, UM_EMFB, KC_NO, KC_NO, KC_NO, KC_NO,
341 KC_NO, UM_EMUN, UM_EMRE, LSFT(KC_UP), KC_NO, KC_NO, KC_NO,
342 KC_NO, LSFT(KC_LEFT), LSFT(KC_DOWN), LSFT(KC_RGHT), KC_NO, KC_NO,
343 KC_TRNS, KC_NO, KC_NO, LSFT(KC_DOWN), KC_NO, KC_NO, KC_NO,
344 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
345 KC_NO, KC_NO,
346 KC_NO,
347 KC_NO, KC_NO, KC_NO
348 ),
349};
350
351enum next_key_down_up {
352 NK_DOWN_UP,
353 NK_DOWN,
354 NK_UP // a bit of a hack, this works as long as NK_UP < KC_A
355};
356
357void send_keystrokes(uint8_t key, ...)
358{
359 va_list vl;
360 va_start(vl, key);
361 enum next_key_down_up nkdu = NK_DOWN_UP;
362 while (key != KC_NO) {
363 if (key < KC_A) {
364 nkdu = key;
365 } else {
366 switch (nkdu) {
367 case NK_DOWN_UP:
368 register_code(key);
369 case NK_UP:
370 unregister_code(key);
371 break;
372 case NK_DOWN:
373 register_code(key);
374 }
375 nkdu = NK_DOWN_UP;
376 }
377 key = va_arg(vl, int);
378 }
379 va_end(vl);
380}
381
382const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
383{
384 // MACRODOWN only works in this function
385 switch(id) {
386 case 0: // { }
387 if (record->event.pressed) {
388 return MACRO(T(ENT), D(LSFT), T(LBRC), U(LSFT), T(ENT),
389 D(LSFT), T(RBRC), U(LSFT), T(UP),
390 T(TAB), END);
391 }
392 break;
393 case 1:
394 if (record->event.pressed) {
395 return MACRO(T(0), T(X), END);
396 }
397 break;
398 case 2:
399 if (record->event.pressed) {
400 SEND_STRING("public");
401 }
402 break;
403 case 3:
404 if (record->event.pressed) {
405 SEND_STRING("protected");
406 }
407 break;
408 case 4:
409 if (record->event.pressed) {
410 SEND_STRING("private");
411 }
412 break;
413 case 5: // class
414 if (record->event.pressed) {
415 return MACRO(T(C), T(L), T(A), T(S), T(S), T(ENT),
416 D(LSFT), T(LBRC), U(LSFT), T(ENT),
417 T(P), T(U), T(B), T(L), T(I), T(C),
418 D(LSFT), T(SCLN), U(LSFT), T(ENT), T(ENT),
419 T(P), T(R), T(I), T(V), T(A), T(T), T(E),
420 D(LSFT), T(SCLN), U(LSFT), T(ENT),
421 D(LSFT), T(RBRC), U(LSFT), T(SCLN), T(ENT),
422 T(UP), T(UP), T(UP), T(UP), T(UP), T(UP), T(UP),
423 T(END), T(SPC), END);
424 }
425 break;
426 case 6: // struct
427 if (record->event.pressed) {
428 return MACRO(T(S), T(T), T(R), T(U), T(C), T(T), T(ENT),
429 D(LSFT), T(LBRC), U(LSFT), T(ENT),
430 D(LSFT), T(RBRC), U(LSFT), T(SCLN), T(ENT),
431 T(UP), T(UP), T(UP), T(UP),
432 T(END), T(SPC), END);
433 }
434 break;
435 case 7:
436 if (record->event.pressed) {
437 SEND_STRING("return");
438 }
439 break;
440 case 8: // #include
441 if (record->event.pressed) {
442 return MACRO(T(NONUS_HASH), T(I), T(N), T(C), T(L), T(U), T(D), T(E), END);
443 }
444 break;
445 case 9:
446 if (record->event.pressed) {
447 SEND_STRING("objdump -CT -x -d");
448 }
449 break;
450 case 10:
451 if (record->event.pressed) {
452 SEND_STRING("git log --oneline --graph --decorate=short");
453 }
454 break;
455 case 11:
456 if (record->event.pressed) {
457 SEND_STRING("good morning");
458 }
459 break;
460 case 12:
461 if (record->event.pressed) {
462 SEND_STRING("namespace");
463 }
464 break;
465 case 14: // emacs toggle read-only
466 if (record->event.pressed) {
467 return MACRO(D(LCTL), T(X), T(Q), U(LCTL), END);
468 }
469 break;
470 case 15: // emacs write buffer
471 if (record->event.pressed) {
472 return MACRO(D(LCTL), T(X), T(S), U(LCTL), END);
473 }
474 break;
475 case 16: // emacs undo
476 if (record->event.pressed) {
477 return MACRO(D(LCTL), D(LSFT), T(MINS), U(LSFT), U(LCTL), END);
478 }
479 break;
480 case 17: // emacs redo
481 if (record->event.pressed) {
482 return MACRO(D(LALT), D(LSFT), T(MINS), U(LSFT), U(LALT), END);
483 }
484 break;
485 case 18: // emacs previous buffer
486 if (record->event.pressed) {
487 return MACRO(D(LCTL), T(X), U(LCTL), T(LEFT), END);
488 }
489 break;
490 case 19: // emacs next buffer
491 if (record->event.pressed) {
492 return MACRO(D(LCTL), T(X), U(LCTL), T(RGHT), END);
493 }
494 break;
495 case 20:
496 if (record->event.pressed) {
497 SEND_STRING("good night");
498 }
499 break;
500 case 22: // { };
501 if (record->event.pressed) {
502 return MACRO(T(ENT), D(LSFT), T(LBRC), U(LSFT), T(ENT),
503 D(LSFT), T(RBRC), U(LSFT), T(SCLN), T(UP),
504 T(TAB), END);
505 }
506 break;
507 case 23:
508 if (record->event.pressed) {
509 SEND_STRING("template");
510 }
511 break;
512 case 24:
513 if (record->event.pressed) {
514 SEND_STRING("typename");
515 }
516 break;
517 case 25:
518 if (record->event.pressed) {
519 SEND_STRING("continue");
520 return MACRO(T(SCLN), END);
521 }
522 break;
523 case 26:
524 if (record->event.pressed) {
525 SEND_STRING("break");
526 return MACRO(T(SCLN), END);
527 }
528 break;
529 case 27:
530 if (record->event.pressed) {
531 SEND_STRING("const");
532 }
533 break;
534 case 28:
535 if (record->event.pressed) {
536 SEND_STRING(":-)");
537 }
538 break;
539 case 29:
540 if (record->event.pressed) {
541 SEND_STRING(":-(");
542 }
543 break;
544 case 30: // dazed
545 if (record->event.pressed) {
546 send_keystrokes(NK_DOWN, KC_LSFT, KC_8, KC_MINS, KC_8, NK_UP, KC_LSFT, KC_NO);
547 }
548 break;
549 case 31: // decaf
550 if (record->event.pressed) {
551 send_keystrokes(NK_DOWN, KC_LSFT, KC_C, KC_9, KC_MINS, KC_0, NK_UP, KC_LSFT, KC_NO);
552 }
553 break;
554 case 32:
555 if (record->event.pressed) {
556 SEND_STRING("operator");
557 }
558 break;
559 case 33:
560 if (record->event.pressed) {
561 SEND_STRING("nullptr");
562 }
563 break;
564 case 34:
565 if (record->event.pressed) {
566 SEND_STRING("extern");
567 }
568 break;
569 case 35:
570 if (record->event.pressed) {
571 SEND_STRING("virtual");
572 }
573 break;
574 case 36: // emacs font smaller
575 if (record->event.pressed) {
576 return MACRO(D(LCTL), T(X), T(EQL), U(LCTL), END);
577 }
578 break;
579 case 37: // emacs font bigger
580 if (record->event.pressed) {
581 return MACRO(D(LCTL), T(X), T(MINS), U(LCTL), END);
582 }
583 break;
584 case 38:
585 if (record->event.pressed) {
586 SEND_STRING("volatile");
587 }
588 break;
589 }
590 return MACRO_NONE;
591}
592
593LEADER_EXTERNS();
594
595// Runs constantly in the background, in a loop.
596void matrix_scan_user(void) {
597
598 LEADER_DICTIONARY() {
599 leading = false;
600 leader_end();
601
602 SEQ_TWO_KEYS(KC_G, KC_A) {
603 SEND_STRING("git add .");
604 }
605 SEQ_TWO_KEYS(KC_G, KC_D) {
606 SEND_STRING("git diff");
607 }
608 SEQ_THREE_KEYS(KC_G, KC_D, KC_S) {
609 SEND_STRING("git diff --staged");
610 }
611 SEQ_TWO_KEYS(KC_G, KC_L) {
612 SEND_STRING("git log");
613 }
614 SEQ_THREE_KEYS(KC_G, KC_L, KC_O) {
615 SEND_STRING("git log --oneline");
616 }
617 SEQ_TWO_KEYS(KC_G, KC_F) {
618 SEND_STRING("git fetch");
619 }
620 SEQ_TWO_KEYS(KC_G, KC_O) {
621 SEND_STRING("git checkout");
622 }
623 SEQ_TWO_KEYS(KC_G, KC_P) {
624 SEND_STRING("git pull");
625 }
626 SEQ_TWO_KEYS(KC_G, KC_S) {
627 SEND_STRING("git status");
628 }
629 SEQ_TWO_KEYS(KC_G, KC_C) {
630 SEND_STRING("git commit -m ''");
631 send_keystrokes(KC_LEFT, KC_NO);
632 }
633 SEQ_THREE_KEYS(KC_G, KC_C, KC_A) {
634 SEND_STRING("git commit --amend");
635 }
636
637 SEQ_TWO_KEYS(KC_C, KC_C) {
638 SEND_STRING("const_cast<>");
639 send_keystrokes(KC_LEFT, KC_NO);
640 }
641 SEQ_TWO_KEYS(KC_C, KC_D) {
642 SEND_STRING("dynamic_cast<>");
643 send_keystrokes(KC_LEFT, KC_NO);
644 }
645 SEQ_TWO_KEYS(KC_C, KC_R) {
646 SEND_STRING("reinterpret_cast<>");
647 send_keystrokes(KC_LEFT, KC_NO);
648 }
649 SEQ_TWO_KEYS(KC_C, KC_S) {
650 SEND_STRING("static_cast<>");
651 send_keystrokes(KC_LEFT, KC_NO);
652 }
653
654 SEQ_ONE_KEY(KC_SLSH) {
655 send_keystrokes(KC_SLSH, NK_DOWN, KC_LSFT, KC_8, KC_8, NK_UP, KC_LSFT, KC_ENT,
656 NK_DOWN, KC_LSFT, KC_8, NK_UP, KC_LSFT, KC_ENT,
657 NK_DOWN, KC_LSFT, KC_8, NK_UP, KC_LSFT, KC_SLSH, KC_UP, KC_END, KC_SPC,
658 KC_NO);
659 }
660 }
661}
diff --git a/keyboards/ergodox/keymaps/albert/readme.md b/keyboards/ergodox/keymaps/albert/readme.md
new file mode 100644
index 000000000..e20e047ac
--- /dev/null
+++ b/keyboards/ergodox/keymaps/albert/readme.md
@@ -0,0 +1,188 @@
1# ErgoDox EZ Configuration for typing like a boss.
2
3This layout has 7 layers:
40. Base layers
51. Symbols and F-keys
62. Number pad (with hexadecimal)
73. Cursor keys
84. Mouse movement and clicks
95. Keyword macros
106. Emacs
11
12There are also some leader keys defined for frequently used commands (git etc).
13
14## The layers
15
16Double hashes (`##`) indicate transparent keys (`KC_TRNS`) and blanks indicate no key (`KC_NO`).
17
18### 0. Base layer
19
20```
21,--------------------------------------------------. ,--------------------------------------------------.
22| ESC | 1 | 2 | 3 | 4 | 5 | SfLt | | SfRt | 6 | 7 | 8 | 9 | 0 | BkSp |
23|--------|------|------|------|------|-------------| |------|------|------|------|------|------|--------|
24| Tab | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | Del |
25|--------|------|------|------|------|------| | | |------|------|------|------|------|--------|
26| Caps/L2| A | S | D | F | G |------| |------| H | J | K | L | ; |Enter/L2|
27|--------|------|------|------|------|------| L6 | | L6 |------|------|------|------|------|--------|
28| LSft/( | Z | X | C | V/L3 | B/L4 | | | | N/L4 | M/L3 | , | . | / | RSft/) |
29`--------|------|------|------|------|-------------' `-------------|------|------|------|------|--------'
30 |Ctrl/[| Alt/]| # | Left |Right | | Up | Down | - | Alt/[|Ctrl/]|
31 `----------------------------------' `----------------------------------'
32 ,-------------. ,-------------.
33 | L2 | lead | | lead | Ins |
34 ,------|------|------| |------|------|------.
35 | Space| BkSp | Home | | PgUp | Enter|Space |
36 | / | / |------| |------| / | / |
37 | Ctrl | Alt |End/L5| |PDn/L5| Alt | Ctrl |
38 `--------------------' `--------------------'
39```
40
41Space Cadet shift is enabled. Ctrl and Alt doubles up as normal keys when tapped.
42SfLt and SfRt sends Shift + left and Shift + Right respectively - for use with emacs with `windmove-default-keybindings`.
43Caps and Enter may be held down to activate layer 2 (hexadecimal number pad).
44Please see `matrix_scan_user` function in `keymap.c` for list of commands available via `lead` key.
45
46### 1. Symbols and F-keys
47
48```
49,--------------------------------------------------. ,--------------------------------------------------.
50| ## | F1 | F2 | F3 | F4 | F5 | ## | | ## | F6 | F7 | F8 | F9 | F10 | F11 |
51|--------|------|------|------|------|------|------| |------|------|------|------|------|------|--------|
52| ## | ! | " | £ | $ | % | ## | | ## | - | + | = | @ | ~ | F12 |
53|--------|------|------|------|------|------| | | |------|------|------|------|------|--------|
54| ## | ^ | & | * | _ | # |------| |------| { | } | ; | ' | # | ## |
55|--------|------|------|------|------|------| ## | | ## |------|------|------|------|------|--------|
56| ## | \ | | | ` | - | / | | | | [ | ] | < | > | ? | ## |
57`--------|------|------|------|------|-------------' `-------------|------|------|------|------|--------'
58 | ## | ## | ## | ## | ## | | ## | ## | ## | ## | ## |
59 `----------------------------------' `----------------------------------'
60 ,-------------. ,-------------.
61 | ## | ## | | ## | ## |
62 ,------|------|------| |------|------|------.
63 | | | ## | | ## | | |
64 | ## | ## |------| |------| ## | ## |
65 | | | ## | | ## | | |
66 `--------------------' `--------------------'
67```
68
69### 2. Number pad (with hexadecimal)
70
71```
72,---------------------------------------------------. ,--------------------------------------------------.
73| ## | A | B | C | D | E | F | | A | B | C | D | E | F | ## |
74|---------|------|------|------|------|------|------| |------|------|------|------|------|------|--------|
75| ## | * | 7 | 8 | 9 | * | 0x | | 0x | * | 7 | 8 | 9 | * | ## |
76|---------|------|------|------|------|------| | | |------|------|------|------|------|--------|
77| ## | / | 4 | 5 | 6 | / |------| |------| / | 4 | 5 | 6 | / | ## |
78|---------|------|------|------|------|------| ## | | ## |------|------|------|------|------|--------|
79| ## | - | 1 | 2 | 3 | - | | | | - | 1 | 2 | 3 | - | ## |
80`---------|------|------|------|------|-------------' `-------------|------|------|------|------|--------'
81 | = | + | 0 | , | . | | 0 | , | . | + | = |
82 `-----------------------------------' `----------------------------------'
83 ,-------------. ,-------------.
84 | ## | ## | | ## | ## |
85 ,------|------|------| |------|------|------.
86 | | | ## | | ## | | |
87 | ## | ## |------| |------| ## | ## |
88 | | | ## | | ## | | |
89 `--------------------' `--------------------'
90```
91
92### 3. Cursor keys
93
94```
95,---------------------------------------------------. ,--------------------------------------------------.
96| | | | | | | | | | | | | | | |
97|---------|------|------|------|------|------|------| |------|------|------|------|------|------|--------|
98| | Home | | Up | | PgUp | | | | PgUp | | Up | | Home | |
99|---------|------|------|------|------|------| | | |------|------|------|------|------|--------|
100| | End | Left | Down | Right| PgDn |------| |------| PgDn | Left | Down | Right| End | |
101|---------|------|------|------|------|------| | | |------|------|------|------|------|--------|
102| ## | Up | | Down | ## | | | | | | ## | Down | | Up | ## |
103`---------|------|------|------|------|-------------' `-------------|------|------|------|------|--------'
104 | Left | Down | Right| | | | | | Left | Down | Right|
105 `-----------------------------------' `----------------------------------'
106 ,-------------. ,-------------.
107 | | | | | |
108 ,------|------|------| |------|------|------.
109 | | | | | | | |
110 | ## | ## |------| |------| ## | ## |
111 | | | | | | | |
112 `--------------------' `--------------------'
113```
114
115### 4. Mouse movement and clicks
116
117```
118,--------------------------------------------------. ,--------------------------------------------------.
119| | | | | | | | | | | | | | | |
120|--------|------|------|------|------|-------------| |------|------|------|------|------|------|--------|
121| | | Lclk | MsUp | Rclk | | | | | | Lclk | MsUp | Rclk | | |
122|--------|------|------|------|------|------| | | |------|------|------|------|------|--------|
123| | |MsLeft|MsDown|MsRght| |------| |------| |MsLeft|MsDown|MsRght| | |
124|--------|------|------|------|------|------| | | |------|------|------|------|------|--------|
125| Lclk | MsUp | Rclk |MsDown| | ## | | | | ## | |MsDown| Lclk | MsUp | Rclk |
126`--------|------|------|------|------|-------------' `-------------|------|------|------|------|--------'
127 |MsLeft|MsDown|MsRight | | | | |MsLeft|MsDown|MsRght|
128 `----------------------------------' `----------------------------------'
129 ,-------------. ,-------------.
130 | | | | | |
131 ,------|------|------| |------|------|------.
132 | | | | | | | |
133 | | |------| |------| | |
134 | | | | | | | |
135 `--------------------' `--------------------'
136```
137
138### 5. Keyword macros
139
140```
141,---------------------------------------------------. ,--------------------------------------------------.
142| | | | scarf| sadf | smily| | | | decaf| | | | | |
143|---------|------|------|------|------|------|------| |------|------|------|------|------|------|--------|
144| | const| volat| oper | ret | tmpl | | | | typen| cont | prv | pro | pub | |
145|---------|------|------|------|------|------| | | |------|------|------|------|------|--------|
146| | | str | obj | | gitl |------| |------| | | | nulp | | |
147|---------|------|------|------|------|------| | | |------|------|------|------|------|--------|
148| | | extr | cls | virt | break| | | |namesp| goodm| goodn| | | |
149`---------|------|------|------|------|-------------' `-------------|------|------|------|------|--------'
150 | | | inc | | | | | | | | |
151 `-----------------------------------' `----------------------------------'
152 ,-------------. ,-------------.
153 | | | | ecet | ecets|
154 ,------|------|------| |------|------|------.
155 | | | | | | | |
156 | | |------| |------| | |
157 | | | ## | | ## | | |
158 `--------------------' `--------------------'
159```
160Please see `keymap.c` for the keywords/commands.
161Some are const, volatile, operator, return, template, typename, continue, private,
162protected, public, struct, class, extern, virtual, break, namespace.
163Also a git log command I use a lot (`git log --oneline --graph --decorate=short` (I know git can be configured but that is boring)).
164
165### 6. Emacs
166
167```
168,---------------------------------------------------. ,--------------------------------------------------.
169| | | | | | | empb | | emnb | emfs | emfb | | | | |
170|---------|------|------|------|------|------|------| |------|------|------|------|------|------|--------|
171| | emtr | | | | | | | | emun | emre | w-up | | | |
172|---------|------|------|------|------|------| | | |------|------|------|------|------|--------|
173| | | emwr | | | |------| |------| |w-left|w-down|w-rght| | |
174|---------|------|------|------|------|------| ## | | ## |------|------|------|------|------|--------|
175| | | | | | | | | | | |w-down| | | |
176`---------|------|------|------|------|-------------' `-------------|------|------|------|------|--------'
177 | | | | | | | | | | | |
178 `-----------------------------------' `----------------------------------'
179 ,-------------. ,-------------.
180 | | | | | |
181 ,------|------|------| |------|------|------.
182 | | | | | | | |
183 | | |------| |------| | |
184 | | | | | | | |
185 `--------------------' `--------------------'
186```
187Some emacs shortcuts like toggle read/write mode (emtr), write file (emwr), previous-buffer (empb),
188next-buffer (emnb), smaller font(emfs), larger font (emfb), undo (emun), redo (emre) and switching between windows in a frame.
diff --git a/keyboards/ergodox/keymaps/deadcyclo/Makefile b/keyboards/ergodox/keymaps/deadcyclo/Makefile
new file mode 100644
index 000000000..039f07c8e
--- /dev/null
+++ b/keyboards/ergodox/keymaps/deadcyclo/Makefile
@@ -0,0 +1 @@
UNICODE_ENABLE = yes
diff --git a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-base-layout.png b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-base-layout.png
index 4208c5189..2c03af581 100644
--- a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-base-layout.png
+++ b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-base-layout.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-1-symbols.png b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-1-symbols.png
index ccda70e39..5adb7ac77 100644
--- a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-1-symbols.png
+++ b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-1-symbols.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-2-media-and-mouse.png b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-2-media-and-mouse.png
index 481e63e32..a267ff23d 100644
--- a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-2-media-and-mouse.png
+++ b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-2-media-and-mouse.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-3-navigation.png b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-3-navigation.png
index 9ebba6734..c8c90cf5c 100644
--- a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-3-navigation.png
+++ b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-3-navigation.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/deadcyclo/keymap.c b/keyboards/ergodox/keymaps/deadcyclo/keymap.c
index d75c805bf..5774511cc 100644
--- a/keyboards/ergodox/keymaps/deadcyclo/keymap.c
+++ b/keyboards/ergodox/keymaps/deadcyclo/keymap.c
@@ -8,15 +8,86 @@
8#define MDIA 2 // media keys 8#define MDIA 2 // media keys
9#define NAVG 3 // navigation 9#define NAVG 3 // navigation
10 10
11enum custom_keycodes { 11enum macros {
12 PLACEHOLDER = SAFE_RANGE, // can always be here 12 RUN
13};
14
15enum function_ids {
16 EMOJI,
17 EMOJI2,
13 EPRM, 18 EPRM,
14 VRSN, 19 VRSN,
15 RGB_SLD 20 RGB_SLD,
21 GO_GROUP
16}; 22};
17 23
18// TODO: Get rid of of keys I don't want. Make others that I do. Set up lots of makros (Using hyper (and meh)) keys (where to put them?) 24/* opt can only be 0-15 */
25enum emojis {
26 SHRUG,
27 YAY,
28 HUG,
29 SMILE,
30 SMILE2,
31 HMM1,
32 HMM2,
33 BEAR1,
34 BEAR2,
35 FUU,
36 EGGY1,
37 EGGY2,
38 FACE1,
39 FACE2,
40 UHU,
41 SMRK1
42};
43
44enum emojis2 {
45 SMRK2,
46 LOVE
47};
48
49enum progmem_ids {
50 EMOJI_SHRUG,
51 EMOJI_YAY,
52 EMOJI_HUG,
53 EMOJI_SMILE,
54 EMOJI_SMILE2,
55 EMOJI_HMM1,
56 EMOJI_HMM2,
57 EMOJI_BEAR1,
58 EMOJI_BEAR2,
59 EMOJI_FUU,
60 EMOJI_EGGY1,
61 EMOJI_EGGY2,
62 EMOJI_FACE1,
63 EMOJI_FACE2,
64 EMOJI_UHU,
65 EMOJI_SMRK1,
66 EMOJI_SMRK2,
67 EMOJI_LOVE,
68 F_EPRM,
69 F_VRSN,
70 F_RGB_SLD,
71 I3_GO_GROUP_10,
72 I3_GO_GROUP_1,
73 I3_GO_GROUP_2,
74 I3_GO_GROUP_3,
75 I3_GO_GROUP_4,
76 I3_GO_GROUP_5,
77 I3_GO_GROUP_6,
78 I3_GO_GROUP_7,
79 I3_GO_GROUP_8,
80 I3_GO_GROUP_9,
81};
82
83// 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)
84
85// TODO: Do stuff with hyper and meh keys
86// TODO: Add macros for lots of stuff. (Lastpass cli, pushbullet cli, other push service cli, linode cli, more?)
87// TODO: Make macros for gnu screen and i3wm
19// TODO: Need to change hotkeys for lastpass, and potentially make my own keys for them on one of my layers 88// TODO: Need to change hotkeys for lastpass, and potentially make my own keys for them on one of my layers
89// TODO: Look into using tap dance
90// TODO: Use leader key for stuff. See https://github.com/qmk/qmk_firmware/wiki
20const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 91const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
21/* Keymap 0: Basic layer 92/* Keymap 0: Basic layer
22 * 93 *
@@ -29,7 +100,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
29 * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| 100 * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
30 * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | 101 * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift |
31 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' 102 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
32 * |Grv/L1| '" |AltShf| Lalt | Ralt | | Lalt | Ralt | [ | ] | ~/L1 | 103 * |Grv/L1| UNI |AltShf| Lalt | Ralt | | Lalt | Ralt | LEAD | UNI | ~/L1 |
33 * `----------------------------------' `----------------------------------' 104 * `----------------------------------' `----------------------------------'
34 * ,-------------. ,-------------. 105 * ,-------------. ,-------------.
35 * | App | Home | | PgUp | Ins | 106 * | App | Home | | PgUp | Ins |
@@ -43,11 +114,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
43// Otherwise, it needs KC_* 114// Otherwise, it needs KC_*
44[BASE] = KEYMAP( // layer 0 : default 115[BASE] = KEYMAP( // layer 0 : default
45 // left hand 116 // left hand
46 LT(NAVG,KC_ESC), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, 117 LT(NAVG,KC_ESC), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6,
47 LT(SYMB,KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB), 118 LT(SYMB,KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB),
48 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, 119 KC_LCTL, LT(MDIA, KC_A), KC_S, KC_D, KC_F, KC_G,
49 KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), 120 KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
50 LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_RALT,KC_LALT, 121 LT(SYMB,KC_GRV),LCTL(LSFT(KC_U)), LALT(KC_LSFT), KC_RALT,KC_LALT,
51 ALT_T(KC_APP), KC_HOME, 122 ALT_T(KC_APP), KC_HOME,
52 KC_END, 123 KC_END,
53 KC_SPC,KC_TAB,KC_LBRC, 124 KC_SPC,KC_TAB,KC_LBRC,
@@ -56,12 +127,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
56 TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, LT(SYMB, KC_BSLS), 127 TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, LT(SYMB, KC_BSLS),
57 KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),CTL_T(KC_QUOT), 128 KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),CTL_T(KC_QUOT),
58 MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT, 129 MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT,
59 KC_LALT, KC_RALT,KC_LBRC,KC_RBRC, LT(SYMB,KC_TILD), 130 KC_LALT, KC_RALT,KC_LEAD,LCTL(LSFT(KC_U)), LT(SYMB,KC_TILD),
60 KC_PGUP, KC_INS, 131 KC_PGUP, KC_INS,
61 KC_PGDN, 132 KC_PGDN,
62 KC_RBRC,KC_BSPC, KC_ENT 133 KC_RBRC,KC_BSPC, KC_ENT
63 ), 134 ),
64/* Keymap 1: Symbol Layer 135/* Keymap 1: Symbol Layer LCTL(LSFT(KC_U))
65 * 136 *
66 * ,--------------------------------------------------. ,--------------------------------------------------. 137 * ,--------------------------------------------------. ,--------------------------------------------------.
67 * | | F1 | F2 | F3 | F4 | F5 | F6 | | F6 | F7 | F8 | F9 | F10 | F11 | F12 | 138 * | | F1 | F2 | F3 | F4 | F5 | F6 | | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
@@ -75,11 +146,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
75 * | | | | | | | | . | 0 | = | | 146 * | | | | | | | | . | 0 | = | |
76 * `----------------------------------' `----------------------------------' 147 * `----------------------------------' `----------------------------------'
77 * ,-------------. ,-------------. 148 * ,-------------. ,-------------.
78 * | | | | | | 149 * |Toggle|Animat| | Hue+ | Hue- |
79 * ,------|------|------| |------+------+------. 150 * ,------|------|------| |------+------+------.
80 * | | | | | | | | 151 * |Bright|Bright|Solid | | | | |
81 * | | |------| |------| DEL | | 152 * |ness- |ness+ |------| |------| DEL | |
82 * | | | | | | | | 153 * | | | | | EPRM | | |
83 * `--------------------' `--------------------' 154 * `--------------------' `--------------------'
84 */ 155 */
85// SYMBOLS 156// SYMBOLS
@@ -90,27 +161,27 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
90 KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV, 161 KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
91 KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS, 162 KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
92 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, 163 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
93 KC_TRNS,KC_TRNS, 164 RGB_TOG,RGB_MOD,
94 KC_TRNS, 165 F(F_RGB_SLD),
95 KC_TRNS,KC_TRNS,KC_TRNS, 166 RGB_VAD,RGB_VAI,KC_TRNS,
96 // right hand 167 // right hand
97 KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, 168 KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
98 KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_TRNS, 169 KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_TRNS,
99 KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS, 170 KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
100 KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS, 171 KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
101 KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS, 172 KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS,
102 KC_TRNS, KC_TRNS, 173 RGB_HUD, RGB_HUI,
103 KC_TRNS, 174 KC_TRNS,
104 KC_TRNS, KC_DEL, KC_TRNS 175 F(F_EPRM), KC_DEL, KC_TRNS
105), 176),
106/* Keymap 2: Media and mouse keys 177/* Keymap 2: Media, mouse and navigation
107 * 178 *
108 * ,--------------------------------------------------. ,--------------------------------------------------. 179 * ,--------------------------------------------------. ,--------------------------------------------------.
109 * | | | | | | | | | | | | | | | | 180 * | | gg(1)| | | | | | | | | | | | | |
110 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| 181 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
111 * | | | | MsUp | | | | | | | | | | | | 182 * | | | | MsUp | RUN | | | | | | | Up | | | |
112 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 183 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
113 * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | 184 * | | |MsLeft|MsDown|MsRght| |------| |------| | Left | Down | Right| | Play |
114 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 185 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
115 * | | | | | | | | | | | | Prev | Next | | | 186 * | | | | | | | | | | | | Prev | Next | | |
116 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' 187 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
@@ -124,10 +195,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
124 * | | | | | | | | 195 * | | | | | | | |
125 * `--------------------' `--------------------' 196 * `--------------------' `--------------------'
126 */ 197 */
127// MEDIA AND MOUSE 198// MEDIA , MOUSE and NAVIGATION
128[MDIA] = KEYMAP( 199[MDIA] = KEYMAP(
129 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 200 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),
130 KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, 201KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, M(RUN), KC_TRNS, KC_TRNS,
131 KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, 202 KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
132 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 203 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
133 KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, 204 KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
@@ -135,116 +206,280 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
135 KC_TRNS, 206 KC_TRNS,
136 KC_TRNS, KC_TRNS, KC_TRNS, 207 KC_TRNS, KC_TRNS, KC_TRNS,
137 // right hand 208 // right hand
138 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 209 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,
139 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 210 KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS,
140 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, 211 KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_MPLY,
141 KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, 212 KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
142 KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, 213 KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
143 KC_TRNS, KC_TRNS, 214 KC_TRNS, KC_TRNS,
144 KC_TRNS, 215 KC_TRNS,
145 KC_TRNS, KC_TRNS, KC_WBAK 216 KC_TRNS, KC_TRNS, KC_WBAK
146), 217),
147 218
148/* Keymap 3: Navigation TODO: Printscreen, pg up down, home, end, others? Insert for example 219/* Keymap 3: Unicode
149 * 220 *
150 * ,--------------------------------------------------. ,--------------------------------------------------. 221 * ,--------------------------------------------------. ,--------------------------------------------------.
151 * | | VER | | | | | | | | | | | | | | 222 * | | ┌ | ┐ | └ | ┘ | │ | ─ | | ╔ | ╗ | ╚ | ╝ | ║ | ═ | |
152 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| 223 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
153 * | | | | up | | | | | | | | | | | | 224 * | | shrug| yay | hug | smile|smile2| | | | ■ | λ | → | ➙ | ▻ | █ |
154 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 225 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
155 * | | | left | down | right| |------| |------| | | | | | | 226 * | | hmm1 | hmm2 | bear1| bear2| fuu |------| |------| ☺ | ☻ | ☹ | ♡ | ♥ | ░ |
156 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 227 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
157 * | | | | | | | | | | | | | | | | 228 * | | eggy1| eggy2| face1| face2| uhu | | | | ❤ | ☐ | ☑ | ☒ | ✓ | ▄ |
158 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' 229 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
159 * | | | | | | | | | | | | 230 * | | smrk1| smrk2| love | VER | | | | | | |
160 * `----------------------------------' `----------------------------------' 231 * `----------------------------------' `----------------------------------'
161 * ,-------------. ,-------------. 232 * ,-------------. ,-------------.
162 * | | | | | | 233 * | | | | | |
163 * ,------|------|------| |------+------+------. 234 * ,------|------|------| |------+------+------.
164 * | | | | | | | | 235 * | | | | | | | |
165 * | | |------| |------| | | 236 * | | |------| |------| | |
166 * | | | | | | | | 237 * | | | | | | | |
167 * `--------------------' `--------------------' 238 * `--------------------' `--------------------'
168 */ 239 */
169// NAVIGATION 240// Unicode
170[NAVG] = KEYMAP( 241[NAVG] = KEYMAP(
171 KC_TRNS, VRSN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 242 KC_TRNS, UC(0x250c), UC(0x2510), UC(0x2514), UC(0x2518), UC(0x2502), UC(0x2500),
172 KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, 243 KC_TRNS, F(EMOJI_SHRUG), F(EMOJI_YAY), F(EMOJI_HUG), F(EMOJI_SMILE), F(EMOJI_SMILE2), KC_TRNS,
173 KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, 244 KC_TRNS, F(EMOJI_HMM1), F(EMOJI_HMM2), F(EMOJI_BEAR1), F(EMOJI_BEAR2), F(EMOJI_FUU),
174 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 245 KC_TRNS, F(EMOJI_EGGY1), F(EMOJI_EGGY2), F(EMOJI_FACE1), F(EMOJI_FACE2), F(EMOJI_UHU), KC_TRNS,
175 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 246 KC_TRNS, F(EMOJI_SMRK1), F(EMOJI_SMRK2), F(EMOJI_LOVE), F(F_VRSN),
176 KC_TRNS, KC_TRNS, 247 KC_TRNS, KC_TRNS,
177 KC_TRNS, 248 KC_TRNS,
178 KC_TRNS, KC_TRNS, KC_TRNS, 249 KC_TRNS, KC_TRNS, KC_TRNS,
179 // right hand 250 // right hand
180 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 251 UC(0x2554), UC(0x2557), UC(0x255a), UC(0x255d), UC(0x2551), UC(0x2550), KC_TRNS,
181 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 252 KC_TRNS, UC(0x25a0), UC(0x03bb), UC(0x2192), UC(0x2799), UC(0x25bb), UC(0x2588),
182 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 253 UC(0x263a), UC(0x263b), UC(0x2639), UC(0x2661), UC(0x2665), UC(0x2591),
183 KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_TRNS, KC_TRNS, KC_TRNS, 254 KC_TRNS, UC(0x2764), UC(0x2610), UC(0x2611), UC(0x2612), UC(0x2713), UC(0x2584),
184 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 255 UC(0x2714), UC(0x2717), UC(0x2718), UC(0x25cf), UC(0x2580),
185 KC_TRNS, KC_TRNS, 256 UC(0x2592), UC(0x2593),
186 KC_TRNS, 257 KC_TRNS,
187 KC_TRNS, KC_TRNS, KC_TRNS 258 KC_TRNS, KC_TRNS, KC_TRNS
188), 259),
189}; 260};
190 261
191const uint16_t PROGMEM fn_actions[] = { 262const uint16_t PROGMEM fn_actions[] = {
192 [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols) 263 [EMOJI_SHRUG] = ACTION_FUNCTION_OPT(EMOJI, SHRUG),
264 [EMOJI_YAY] = ACTION_FUNCTION_OPT(EMOJI, YAY),
265 [EMOJI_HUG] = ACTION_FUNCTION_OPT(EMOJI,HUG),
266 [EMOJI_SMILE] = ACTION_FUNCTION_OPT(EMOJI,SMILE),
267 [EMOJI_SMILE2] = ACTION_FUNCTION_OPT(EMOJI,SMILE2),
268 [EMOJI_HMM1] = ACTION_FUNCTION_OPT(EMOJI,HMM1),
269 [EMOJI_HMM2] = ACTION_FUNCTION_OPT(EMOJI,HMM2),
270 [EMOJI_BEAR1] = ACTION_FUNCTION_OPT(EMOJI,BEAR1),
271 [EMOJI_BEAR2] = ACTION_FUNCTION_OPT(EMOJI,BEAR2),
272 [EMOJI_FUU] = ACTION_FUNCTION_OPT(EMOJI,FUU),
273 [EMOJI_EGGY1] = ACTION_FUNCTION_OPT(EMOJI,EGGY1),
274 [EMOJI_EGGY2] = ACTION_FUNCTION_OPT(EMOJI,EGGY2),
275 [EMOJI_FACE1] = ACTION_FUNCTION_OPT(EMOJI,FACE1),
276 [EMOJI_FACE2] = ACTION_FUNCTION_OPT(EMOJI,FACE2),
277 [EMOJI_UHU] = ACTION_FUNCTION_OPT(EMOJI,UHU),
278 [EMOJI_SMRK1] = ACTION_FUNCTION_OPT(EMOJI,SMRK1),
279 [EMOJI_SMRK2] = ACTION_FUNCTION_OPT(EMOJI2,SMRK2),
280 [EMOJI_LOVE] = ACTION_FUNCTION_OPT(EMOJI2,LOVE),
281 [F_EPRM] = ACTION_FUNCTION(EPRM),
282 [F_VRSN] = ACTION_FUNCTION(VRSN),
283 [F_RGB_SLD] = ACTION_FUNCTION(RGB_SLD),
284 [I3_GO_GROUP_10]= ACTION_FUNCTION_OPT(GO_GROUP,0),
285 [I3_GO_GROUP_1] = ACTION_FUNCTION_OPT(GO_GROUP,1),
286 [I3_GO_GROUP_2] = ACTION_FUNCTION_OPT(GO_GROUP,2),
287 [I3_GO_GROUP_3] = ACTION_FUNCTION_OPT(GO_GROUP,3),
288 [I3_GO_GROUP_4] = ACTION_FUNCTION_OPT(GO_GROUP,4),
289 [I3_GO_GROUP_5] = ACTION_FUNCTION_OPT(GO_GROUP,5),
290 [I3_GO_GROUP_6] = ACTION_FUNCTION_OPT(GO_GROUP,6),
291 [I3_GO_GROUP_7] = ACTION_FUNCTION_OPT(GO_GROUP,7),
292 [I3_GO_GROUP_8] = ACTION_FUNCTION_OPT(GO_GROUP,8),
293 [I3_GO_GROUP_9] = ACTION_FUNCTION_OPT(GO_GROUP,9),
193}; 294};
194 295
195const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) 296#define TAP_ONCE(code) \
196{ 297 register_code (code); \
197 // MACRODOWN only works in this function 298 unregister_code (code)
198 switch(id) {
199 case 0:
200 if (record->event.pressed) {
201 SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
202 }
203 break;
204 case 1:
205 if (record->event.pressed) { // For resetting EEPROM
206 eeconfig_init();
207 }
208 break;
209 }
210 return MACRO_NONE;
211};
212 299
213bool process_record_user(uint16_t keycode, keyrecord_t *record) { 300void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
214 switch (keycode) { 301 if (record->event.pressed) {
215 // dynamically generate these. 302 switch(id) {
216 case EPRM: 303 case EPRM:
217 if (record->event.pressed) { 304 eeconfig_init();
218 eeconfig_init();
219 }
220 return false;
221 break; 305 break;
222 case VRSN: 306 case VRSN:
223 if (record->event.pressed) { 307 SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
224 SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
225 }
226 return false;
227 break; 308 break;
228 case RGB_SLD: 309 case RGB_SLD:
229 if (record->event.pressed) { 310#ifdef RGBLIGHT_ENABLE
230 #ifdef RGBLIGHT_ENABLE 311 rgblight_mode(1);
231 rgblight_mode(1); 312#endif
232 #endif 313 break;
314 case GO_GROUP:
315 register_code(KC_LCTL); TAP_ONCE(KC_I); unregister_code(KC_LCTL);
316 TAP_ONCE(KC_G);
317 if (opt == 0) {
318 TAP_ONCE(39);
319 } else {
320 TAP_ONCE(29+opt);
321 }
322 break;
323 case EMOJI:
324 switch(opt) {
325 case SHRUG:
326 unicode_input_start(); register_hex(0xaf); unicode_input_finish();
327 TAP_ONCE (KC_BSLS);
328 register_code (KC_RSFT); TAP_ONCE (KC_MINS); TAP_ONCE (KC_9); unregister_code (KC_RSFT);
329 unicode_input_start (); register_hex(0x30c4); unicode_input_finish();
330 register_code (KC_RSFT); TAP_ONCE (KC_0); TAP_ONCE (KC_MINS); unregister_code (KC_RSFT);
331 TAP_ONCE (KC_SLSH);
332 unicode_input_start (); register_hex(0xaf); unicode_input_finish();
333 break;
334 case YAY:
335 SEND_STRING ("\\o/");
336 break;
337 case HUG:
338 unicode_input_start(); register_hex(0x0f3c); unicode_input_finish();
339 TAP_ONCE (KC_SPC);
340 unicode_input_start(); register_hex(0x3064); unicode_input_finish();
341 TAP_ONCE (KC_SPC);
342 unicode_input_start(); register_hex(0x25d5); unicode_input_finish();
343 unicode_input_start(); register_hex(0x005f); unicode_input_finish();
344 unicode_input_start(); register_hex(0x25d5); unicode_input_finish();
345 TAP_ONCE (KC_SPC);
346 unicode_input_start(); register_hex(0x0f3d); unicode_input_finish();
347 unicode_input_start(); register_hex(0x3064); unicode_input_finish();
348 break;
349 case SMILE:
350 unicode_input_start(); register_hex(0x0298); unicode_input_finish();
351 unicode_input_start(); register_hex(0x203f); unicode_input_finish();
352 unicode_input_start(); register_hex(0x0298); unicode_input_finish();
353 break;
354 case SMILE2:
355 unicode_input_start(); register_hex(0x0028); unicode_input_finish();
356 unicode_input_start(); register_hex(0x0298); unicode_input_finish();
357 unicode_input_start(); register_hex(0x203f); unicode_input_finish();
358 unicode_input_start(); register_hex(0x0298); unicode_input_finish();
359 unicode_input_start(); register_hex(0x0029); unicode_input_finish();
360 break;
361 case HMM1:
362 unicode_input_start(); register_hex(0x0ca0); unicode_input_finish();
363 unicode_input_start(); register_hex(0x005f); unicode_input_finish();
364 unicode_input_start(); register_hex(0x0ca0); unicode_input_finish();
365 break;
366 case HMM2:
367 unicode_input_start(); register_hex(0x0028); unicode_input_finish();
368 unicode_input_start(); register_hex(0x0ca0); unicode_input_finish();
369 unicode_input_start(); register_hex(0x005f); unicode_input_finish();
370 unicode_input_start(); register_hex(0x0ca0); unicode_input_finish();
371 unicode_input_start(); register_hex(0x0029); unicode_input_finish();
372 break;
373 case BEAR1:
374 unicode_input_start(); register_hex(0x0295); unicode_input_finish();
375 unicode_input_start(); register_hex(0x2022); unicode_input_finish();
376 unicode_input_start(); register_hex(0x1d25); unicode_input_finish();
377 unicode_input_start(); register_hex(0x2022); unicode_input_finish();
378 unicode_input_start(); register_hex(0x0294); unicode_input_finish();
379 break;
380 case BEAR2:
381 unicode_input_start(); register_hex(0x0028); unicode_input_finish();
382 unicode_input_start(); register_hex(0x1d54); unicode_input_finish();
383 unicode_input_start(); register_hex(0x1d25); unicode_input_finish();
384 unicode_input_start(); register_hex(0x1d54); unicode_input_finish();
385 unicode_input_start(); register_hex(0x0029); unicode_input_finish();
386 break;
387 case FUU:
388 unicode_input_start(); register_hex(0x256d); unicode_input_finish();
389 unicode_input_start(); register_hex(0x2229); unicode_input_finish();
390 unicode_input_start(); register_hex(0x256e); unicode_input_finish();
391 unicode_input_start(); register_hex(0x0028); unicode_input_finish();
392 unicode_input_start(); register_hex(0x002d); unicode_input_finish();
393 unicode_input_start(); register_hex(0x005f); unicode_input_finish();
394 unicode_input_start(); register_hex(0x002d); unicode_input_finish();
395 unicode_input_start(); register_hex(0x0029); unicode_input_finish();
396 unicode_input_start(); register_hex(0x256d); unicode_input_finish();
397 unicode_input_start(); register_hex(0x2229); unicode_input_finish();
398 unicode_input_start(); register_hex(0x256e); unicode_input_finish();
399 break;
400 case EGGY1:
401 unicode_input_start(); register_hex(0x0028); unicode_input_finish();
402 unicode_input_start(); register_hex(0x256f); unicode_input_finish();
403 unicode_input_start(); register_hex(0x00b0); unicode_input_finish();
404 unicode_input_start(); register_hex(0x25a1); unicode_input_finish();
405 unicode_input_start(); register_hex(0x00b0); unicode_input_finish();
406 unicode_input_start(); register_hex(0xff09); unicode_input_finish();
407 unicode_input_start(); register_hex(0x256f); unicode_input_finish();
408 break;
409 case EGGY2:
410 unicode_input_start(); register_hex(0x30ce); unicode_input_finish();
411 unicode_input_start(); register_hex(0x0028); unicode_input_finish();
412 unicode_input_start(); register_hex(0x0020); unicode_input_finish();
413 unicode_input_start(); register_hex(0x309c); unicode_input_finish();
414 unicode_input_start(); register_hex(0x002d); unicode_input_finish();
415 unicode_input_start(); register_hex(0x309c); unicode_input_finish();
416 unicode_input_start(); register_hex(0x30ce); unicode_input_finish();
417 unicode_input_start(); register_hex(0x0029); unicode_input_finish();
418 break;
419 case FACE1:
420 unicode_input_start(); register_hex(0x0028); unicode_input_finish();
421 unicode_input_start(); register_hex(0x002d); unicode_input_finish();
422 unicode_input_start(); register_hex(0x005f); unicode_input_finish();
423 unicode_input_start(); register_hex(0x002d); unicode_input_finish();
424 unicode_input_start(); register_hex(0x0029); unicode_input_finish();
425 break;
426 case FACE2:
427 unicode_input_start(); register_hex(0x0028); unicode_input_finish();
428 unicode_input_start(); register_hex(0x2022); unicode_input_finish();
429 unicode_input_start(); register_hex(0x005f); unicode_input_finish();
430 unicode_input_start(); register_hex(0x2022); unicode_input_finish();
431 unicode_input_start(); register_hex(0x0029); unicode_input_finish();
432 break;
433 case UHU:
434 unicode_input_start(); register_hex(0x2299); unicode_input_finish();
435 unicode_input_start(); register_hex(0xfe4f); unicode_input_finish();
436 unicode_input_start(); register_hex(0x2299); unicode_input_finish();
437 break;
438 case SMRK1:
439 unicode_input_start(); register_hex(0x005e); unicode_input_finish();
440 unicode_input_start(); register_hex(0x032e); unicode_input_finish();
441 unicode_input_start(); register_hex(0x005e); unicode_input_finish();
442 break;
233 } 443 }
234 return false;
235 break; 444 break;
445 case EMOJI2:
446 switch(opt) {
447 case SMRK2:
448 unicode_input_start(); register_hex(0x0028); unicode_input_finish();
449 unicode_input_start(); register_hex(0x005e); unicode_input_finish();
450 unicode_input_start(); register_hex(0x032e); unicode_input_finish();
451 unicode_input_start(); register_hex(0x005e); unicode_input_finish();
452 unicode_input_start(); register_hex(0x0029); unicode_input_finish();
453 break;
454 case LOVE:
455 unicode_input_start(); register_hex(0x2665); unicode_input_finish();
456 unicode_input_start(); register_hex(0x203f); unicode_input_finish();
457 unicode_input_start(); register_hex(0x2665); unicode_input_finish();
458 break;
459 }
460 break;
461 }
236 } 462 }
237 return true;
238} 463}
239 464
465const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
466 if (record->event.pressed) {
467 switch(id) {
468 case RUN:
469 return MACRO( D(LCTL), T(I), U(LCTL), T(R), END );
470 break;
471 }
472 }
473 return MACRO_NONE;
474};
475
240// Runs just one time when the keyboard initializes. 476// Runs just one time when the keyboard initializes.
241void matrix_init_user(void) { 477void matrix_init_user(void) {
242 478 set_unicode_input_mode(UC_LNX);
243}; 479};
244 480
245// Runs constantly in the background, in a loop. 481// Runs constantly in the background, in a loop.
246void matrix_scan_user(void) { 482void matrix_scan_user(void) {
247
248 uint8_t layer = biton32(layer_state); 483 uint8_t layer = biton32(layer_state);
249 484
250 ergodox_board_led_off(); 485 ergodox_board_led_off();
@@ -254,12 +489,21 @@ void matrix_scan_user(void) {
254 switch (layer) { 489 switch (layer) {
255 case 1: 490 case 1:
256 ergodox_right_led_1_on(); 491 ergodox_right_led_1_on();
492 #ifdef RGBLIGHT_ENABLE
493 rgblight_setrgb(0xff,0x00,0x00);
494 #endif
257 break; 495 break;
258 case 2: 496 case 2:
259 ergodox_right_led_2_on(); 497 ergodox_right_led_2_on();
498 #ifdef RGBLIGHT_ENABLE
499 rgblight_setrgb(0x00,0xff,0x00);
500 #endif
260 break; 501 break;
261 case 3: 502 case 3:
262 ergodox_right_led_3_on(); 503 ergodox_right_led_3_on();
504 #ifdef RGBLIGHT_ENABLE
505 rgblight_setrgb(0x00,0x00,0xff);
506 #endif
263 break; 507 break;
264 case 4: 508 case 4:
265 ergodox_right_led_1_on(); // TODO: Make a fourth layer 509 ergodox_right_led_1_on(); // TODO: Make a fourth layer
diff --git a/keyboards/ergodox/keymaps/deadcyclo/readme.md b/keyboards/ergodox/keymaps/deadcyclo/readme.md
index 809dd6eb5..fa41f0ec1 100644
--- a/keyboards/ergodox/keymaps/deadcyclo/readme.md
+++ b/keyboards/ergodox/keymaps/deadcyclo/readme.md
@@ -1,9 +1,11 @@
1# ErgoDox EZ 1337 configuration 1# ErgoDox EZ 1337 configuration
2 2
3Custom layout based on the default layout. Intended for interational users of us intl-altgr layout. Note that 3Custom layout based on the default layout. Intended for interational
4some common keys might be missing, as this layout is intented to be used on *nix systems by users familiar 4users of us intl-altgr layout. Note that some common keys might be
5with their system. The layout is geared towards avoiding using the rat (mouse for those of you who are 5missing, as this layout is intented to be used on *nix systems by
6unfamiliar with tiling window managers) as much as possibly. 6users familiar with their system. The layout is geared towards
7avoiding using the rat (mouse for those of you who are unfamiliar with
8tiling window managers) as much as possibly.
7 9
8# Layouts 10# Layouts
9 11
@@ -13,24 +15,58 @@ All layer images created using [keyboard-layout-editor](http://www.keyboard-layo
13 15
14[![Base layer](images/deadcyclo-base-layout.png)](http://www.keyboard-layout-editor.com/#/gists/0321b18620180a3e46c498206eb65366) 16[![Base layer](images/deadcyclo-base-layout.png)](http://www.keyboard-layout-editor.com/#/gists/0321b18620180a3e46c498206eb65366)
15 17
16## Layer 1 - Symbols 18The base layer here is marked with the us international alt-gr layout,
19including characters bound to what on an iso keyboard would be alt-gr
20and on an ansi keyboard right alt.
17 21
18[![Layer 1 - Symbols](images/deadcyclo-layer-1-symbols.png)](http://www.keyboard-layout-editor.com/#/gists/96714e198054c9115bafb5267cc6bc73) 22Regular (and irregular) modifier keys are marked with a yellowish
23gray. Layer moderators are marked with blue, red and green, which are
24the same colors each layer displays on the LEDs when active.
19 25
20## Layer 2 - Media and Mouse 26All of the layer switch keys, except for the two center keys marked L1
27TOG, are dual purpose. Hence for example the top left key produces ESC
28if tapped, and temporarilly toggles L3 when hold down. The two center
29L1 TOG keys toggle L1 on and off for more permanent layer toggling.
21 30
22[![Layer 2 - Media and Mouse](images/deadcyclo-layer-2-media-and-mouse.png)](http://www.keyboard-layout-editor.com/#/gists/824759486e378bcec30784309a7e5731) 31The UNI keys enter the linux ibus unicode composer mode
32(ie. Ctrl+Shift+u). Use this to enter unicode characters. Hit the key,
33type in the unicode hex value, and hit enter.
23 34
24## Layer 3 - Navigation 35## Layer 1 - Symbols and RGB
25 36
26[![Layer 3 - Navigation](images/deadcyclo-layer-3-navigation.png)](http://www.keyboard-layout-editor.com/#/gists/67d9613dcd873c68693d11863d0fd289) 37[![Layer 1 - Symbols and RGB](images/deadcyclo-layer-1-symbols.png)](http://www.keyboard-layout-editor.com/#/gists/96714e198054c9115bafb5267cc6bc73)
38
39The Symbols and RGB layer contains function keys, commonly used
40symbols, a numpad and if you have the new Ergodox Ez shine keys for
41controlling various RGB-led functions. In addition, it provides an up
42and a down key for easy scrolling. RGB controller keys are yellow.
43
44## Layer 2 - Media, Mouse and Navigation
45
46[![Layer 2 - Media, Mouse and Navigation](images/deadcyclo-layer-2-media-and-mouse.png)](http://www.keyboard-layout-editor.com/#/gists/824759486e378bcec30784309a7e5731)
47
48The Media, Mouse and unicode layer contains special keys for moving
49the mouse and clicking on it with the keyboard. In addition it
50provides standard media control keys, and default arrow keys.
51
52## Layer 3 - Unicode
53
54[![Layer 3 - Unicode](images/deadcyclo-layer-3-navigation.png)](http://www.keyboard-layout-editor.com/#/gists/67d9613dcd873c68693d11863d0fd289)
55
56The unicode layer provides keys for directly typing unicode (utf-8)
27 57
28# Changelog 58# Changelog
29 59
30- 02.01.2017 Added delete key on second layer 60- 02.01.2017 Added delete key on second layer
31- 10.01.2017 Added layer images to readme 61- 10.01.2017 Added layer images to readme
62- 24.01.2017 Added support for Ergodox Shine. Added secondary L2 switch key on left hand
63- 24.01.2017 Added unicode keys. Added shrug hug and yay. Moved Navigation to layer 2
64- 25.01.2017 Added lots of new emojis and some unicode keys
65- 27.01.2017 Added new unicode keys and shortcut for ibus unicode composer key (CTRL+SHIFT+U)
32 66
33# TODO 67# TODO
34 68
35- Add unicode support (direct input and indirect? see algernon layout for examples) 69- Add macros for lots of stuff. (Lastpass cli, pushbullet cli, other push service cli, linode cli, more?)
36- Add descriptions below each layer image of any special functions/keys 70- Make macros for gnu screen and i3wm
71- Look into the app launch macros in algernon keymap
72
diff --git a/keyboards/ergodox/keymaps/software_neo2/keymap.c b/keyboards/ergodox/keymaps/software_neo2/keymap.c
index 41ace403d..571ca062c 100644
--- a/keyboards/ergodox/keymaps/software_neo2/keymap.c
+++ b/keyboards/ergodox/keymaps/software_neo2/keymap.c
@@ -1,7 +1,8 @@
1#include "ergodox.h" 1#include "ergodox.h"
2#include "debug.h" 2#include "debug.h"
3#include "led.h"
3#include "action_layer.h" 4#include "action_layer.h"
4#include "keymap_neo2.h" 5#include "keymap_extras/keymap_neo2.h"
5 6
6// Layer names 7// Layer names
7#define BASE 0 // default layer 8#define BASE 0 // default layer
@@ -11,45 +12,45 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
11/* Keymap 0: Basic layer 12/* Keymap 0: Basic layer
12 * 13 *
13 * ,--------------------------------------------------. ,--------------------------------------------------. 14 * ,--------------------------------------------------. ,--------------------------------------------------.
14 * | ^ | 1 | 2 | 3 | 4 | 5 | Play | | Next | 6 | 7 | 8 | 9 | 0 |BackSpce| 15 * | Del | 1 | 2 | 3 | 4 | 5 | Play | | Next | 6 | 7 | 8 | 9 | 0 | ß |
15 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| 16 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
16 * | Del | X | V | L | C | W | L1 | | L1 | K | H | G | F | Q | ß | 17 * | Tab | X | V | L | C | W | Esc | | Esc | K | H | G | F | Q | Y |
17 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 18 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
18 * | Caps | U | I | A | E | O |------| |------| S | N | R | T | D | Y | 19 * | NeoL1 | U | I | A | E | O |------| |------| S | N | R | T | D | NeoR1 |
19 * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| 20 * |--------+------+------+------+------+------| L1 | | L1 |------+------+------+------+------+--------|
20 * | LShift |Ü/Ctrl| Ö/C-S| Ä/Alt| P | Z | | | | B | M | , | . | J | RShift | 21 * | LShift |Ü/Ctrl| Ö/Win| Ä/Alt| P | Z | | | | B | M | , | . | J | RShift |
21 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' 22 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
22 * | L1 | Home | PgDn | PgUp | End | | Right| Down | Up | Left | Esc | 23 * |NeoL2 | Home | PgDn | PgUp | End | | Right| Down | Up | Left | NeoR2|
23 * `----------------------------------' `----------------------------------' 24 * `----------------------------------' `----------------------------------'
24 * ,-------------. ,-------------. 25 * ,-------------. ,---------------.
25 * | App | LGui | | Alt |Ctrl/Esc| 26 * | App | LGui | | Alt |Ctrl/Esc|
26 * ,------+------+------| |------+--------+------. 27 * ,------+------+------| |------+--------+------.
27 * | | |NeoL2 | |NeoL2 | | | 28 * | | | Enter| |Delete| | |
28 * | Tab |Backsp|------| |------| Space |Enter | 29 * | Space|Backsp|------| |------| Enter |Space |
29 * | |ace |NeoL1 | |NeoL1 | | | 30 * | |ace | Tab | | Esc | | |
30 * `--------------------' `----------------------' 31 * `--------------------' `----------------------'
31 */ 32 */
32// If it accepts an argument (i.e, is a function), it doesn't need KC_. 33// If it accepts an argument (i.e, is a function), it doesn't need KC_.
33// Otherwise, it needs KC_* 34// Otherwise, it needs KC_*
34[BASE] = KEYMAP( // layer 0 : default 35[BASE] = KEYMAP( // layer 0 : default
35 // left hand 36 // left hand
36 KC_CIRC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MPLY, 37 KC_DELT, NEO_1, NEO_2, NEO_3, NEO_4, NEO_5, KC_MPLY,
37 KC_DELT, NEO_X, NEO_V, NEO_L, NEO_C, NEO_W, TG(1), 38 KC_TAB, NEO_X, NEO_V, NEO_L, NEO_C, NEO_W, KC_ESC,
38 KC_CAPS, NEO_U, NEO_I, NEO_A, NEO_E, NEO_O, 39 NEO_L1_L, NEO_U, NEO_I, NEO_A, NEO_E, NEO_O,
39 KC_LSFT, CTL_T(NEO_UE), C_S_T(NEO_OE), ALT_T(NEO_AE), NEO_P, NEO_Z, ALL_T(KC_NO), 40 KC_LSFT, CTL_T(NEO_UE), GUI_T(NEO_OE), ALT_T(NEO_AE), NEO_P, NEO_Z, TG(1),
40 DE_LESS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, 41 NEO_L2_L, KC_HOME, KC_PGDN, KC_PGUP, KC_END,
41 ALT_T(KC_APP),KC_LGUI, 42 C_S_T(KC_ESC),KC_LGUI,
42 NEO_L2_L, 43 KC_ENT,
43 KC_TAB,KC_BSPC,NEO_L1_L, 44 KC_SPC,KC_BSPC,KC_TAB,
44 // right hand 45 // right hand
45 KC_MNXT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, 46 KC_MNXT, NEO_6, NEO_7, NEO_8, NEO_9, NEO_0, NEO_SS,
46 TG(1), NEO_K, NEO_H, NEO_G, NEO_F, NEO_Q, NEO_SS, 47 KC_ESC, NEO_K, NEO_H, NEO_G, NEO_F, NEO_Q, NEO_Y,
47 NEO_S, NEO_N, NEO_R, NEO_T, NEO_D, NEO_Y, 48 NEO_S, NEO_N, NEO_R, NEO_T, NEO_D, NEO_L1_R,
48 MEH_T(KC_NO),NEO_B, NEO_M, KC_COMM, KC_DOT, NEO_J, KC_RSFT, 49 TG(1), NEO_B, NEO_M, NEO_COMM, NEO_DOT, NEO_J, KC_RSFT,
49 KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_ESC, 50 KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, NEO_L2_R,
50 KC_LALT,CTL_T(KC_ESC), 51 KC_LALT,KC_RGUI,
51 NEO_L2_R, 52 KC_DELT,
52 NEO_L1_R,KC_SPC, KC_ENT 53 KC_ESC,KC_ENT, KC_SPC
53 ), 54 ),
54/* Keymap 1: Media and mouse keys 55/* Keymap 1: Media and mouse keys
55 * 56 *
@@ -127,13 +128,16 @@ void matrix_scan_user(void) {
127 ergodox_right_led_1_off(); 128 ergodox_right_led_1_off();
128 ergodox_right_led_2_off(); 129 ergodox_right_led_2_off();
129 ergodox_right_led_3_off(); 130 ergodox_right_led_3_off();
131 ergodox_board_led_off();
132
133 if (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) {
134 ergodox_right_led_3_on();
135 }
136
130 switch (layer) { 137 switch (layer) {
131 case MDIA: 138 case MDIA:
132 ergodox_right_led_2_on(); 139 ergodox_right_led_2_on();
133 break; 140 break;
134 default:
135 ergodox_board_led_off();
136 break;
137 } 141 }
138 142
139}; 143};