aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaarten Dekkers <maartenn2001@gmail.com>2017-07-07 20:54:06 +0200
committerJack Humbert <jack.humb@gmail.com>2017-07-07 15:33:09 -0400
commit68cf0d454c66095ac8ed8bbada1bf6c2822ec8b8 (patch)
tree7d219657f3331b8ea080b57276d92857ae189681
parent53174036e9d8aabe01d1e7fcca7580edf3ee1178 (diff)
downloadqmk_firmware-68cf0d454c66095ac8ed8bbada1bf6c2822ec8b8.tar.gz
qmk_firmware-68cf0d454c66095ac8ed8bbada1bf6c2822ec8b8.zip
Own keymap layout
-rwxr-xr-xkeyboards/tada68/keymaps/maartenwut/Makefile22
-rwxr-xr-xkeyboards/tada68/keymaps/maartenwut/keymap.c383
-rwxr-xr-xkeyboards/tada68/keymaps/maartenwut/readme.md3
3 files changed, 408 insertions, 0 deletions
diff --git a/keyboards/tada68/keymaps/maartenwut/Makefile b/keyboards/tada68/keymaps/maartenwut/Makefile
new file mode 100755
index 000000000..79ec2f5b8
--- /dev/null
+++ b/keyboards/tada68/keymaps/maartenwut/Makefile
@@ -0,0 +1,22 @@
1# Build Options
2# change to "no" to disable the options, or define them in the Makefile in
3# the appropriate keymap folder that will get included automatically
4#
5BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
6MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
7EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
8CONSOLE_ENABLE = no # Console for debug(+400)
9COMMAND_ENABLE = no # Commands for debug and configuration
10NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
11BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
12MIDI_ENABLE = no # MIDI controls
13AUDIO_ENABLE = no # Audio output on port C6
14UNICODE_ENABLE = yes # Unicode
15BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
16RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
17SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
18COMBO_ENABLE = no # Enable key combinations
19
20ifndef QUANTUM_DIR
21 include ../../../../Makefile
22endif
diff --git a/keyboards/tada68/keymaps/maartenwut/keymap.c b/keyboards/tada68/keymaps/maartenwut/keymap.c
new file mode 100755
index 000000000..b2edb6adc
--- /dev/null
+++ b/keyboards/tada68/keymaps/maartenwut/keymap.c
@@ -0,0 +1,383 @@
1#include "maarten68.h"
2#include "action_layer.h"
3#include "timer.h"
4#include "bootloader.h"
5#include "command.h"
6
7#define _MA 0
8#define _FL 1
9#define _AR 2
10#define _LO 3
11#define _UL 4
12
13#define TRNS KC_TRNS
14#define trigger_time 400
15
16#define T1 M(1)
17#define T2 M(2)
18#define T3 M(3)
19#define T4 M(4)
20#define T5 M(5)
21#define T6 M(6)
22#define T7 M(7)
23#define T8 M(8)
24#define T9 M(9)
25#define T10 M(10)
26#define T11 M(11)
27#define T12 M(12)
28#define END_HOME M(0)
29#define LSHIFT OSM(MOD_LSFT)
30#define SPACE LT(_AR, KC_SPC)
31
32static uint16_t key_timer;
33
34enum emoticons {
35 LENNY = SAFE_RANGE,
36 DWNHRT,
37 SHRUG
38};
39
40const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
41 /* Keymap _MA: Main Layer, Default
42 * ,----------------------------------------------------------------.
43 * |Esc | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |P/P |
44 * |----------------------------------------------------------------|
45 * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |Del |
46 * |----------------------------------------------------------------|
47 * |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return |PgUp|
48 * |----------------------------------------------------------------|
49 * |Shft|End| Z| X| C| V| B| N| M| ,| .| /|Shift | Up|PgDn|
50 * |----------------------------------------------------------------|
51 * |Ctrl|Win |Alt | Space |Alt|Ctrl| FN|Lef|Dow|Rig |
52 * `----------------------------------------------------------------'
53 */
54[_MA] = KEYMAP_ANSI(
55 KC_ESC, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, KC_BSPC, KC_MPLY, \
56 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, \
57 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, \
58 LSHIFT, END_HOME, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, \
59 KC_LCTL, KC_LGUI, KC_LALT, SPACE, KC_RALT, KC_RCTRL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT),
60
61 /* Keymap _FL: Function Layer
62 * ,----------------------------------------------------------------.
63 * | | F1|F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12| |Prsc|
64 * |----------------------------------------------------------------|
65 * | |MbL|MsU|MbR| | | | | | | | | | |_LO |
66 * |----------------------------------------------------------------|
67 * | |MsL|MsD|MsR| | | | | | | | | |Hme |
68 * |----------------------------------------------------------------|
69 * | |Gam| | | | | | | | | | | |MwU|End |
70 * |----------------------------------------------------------------|
71 * | | | | | | | |MwL|MwD|MwR |
72 * `----------------------------------------------------------------'
73 */
74[_FL] = KEYMAP_ANSI(
75 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, TRNS, KC_PSCR, \
76 TRNS, KC_BTN1, KC_MS_U, KC_BTN2, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TO(_LO), \
77 TRNS, KC_MS_L, KC_MS_D, KC_MS_R, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_HOME, \
78 TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_VOLD, KC_VOLU, KC_MUTE, TRNS, KC_WH_U, KC_END, \
79 TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_WH_L, KC_WH_D, KC_WH_R),
80
81 /* Keymap _AR: Arrow keys layer
82 * ,----------------------------------------------------------------.
83 * |Esc | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |P/P |
84 * |----------------------------------------------------------------|
85 * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |Del |
86 * |----------------------------------------------------------------|
87 * |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return |PgUp|
88 * |----------------------------------------------------------------|
89 * |Shft|End| Z| X| C| V| B| N| M| ,| .| /|Shift | Up|PgDn|
90 * |----------------------------------------------------------------|
91 * |Ctrl|Win |Alt | Space |Alt|Ctrl| FN|Lef|Dow|Rig |
92 * `----------------------------------------------------------------'
93 */
94[_AR] = KEYMAP_ANSI(
95 TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \
96 LENNY, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \
97 DWNHRT, TRNS, TRNS, TRNS, TRNS, TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, TRNS, TRNS, TRNS, TRNS, \
98 SHRUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \
99 TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS),
100
101 /* Keymap _UL: Unlock layer
102 * ,----------------------------------------------------------------.
103 * | | | | | | | | | | | | | | | |
104 * |----------------------------------------------------------------|
105 * | | | | | | | | | | | | | | |_MA |
106 * |----------------------------------------------------------------|
107 * | | | | | | | | | | | | | | |
108 * |----------------------------------------------------------------|
109 * | | | | | | | | | | | | | | |
110 * |----------------------------------------------------------------|
111 * | | | | | | | | | | |
112 * `----------------------------------------------------------------'
113 */
114[_UL] = KEYMAP_ANSI(
115 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
116 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(_MA), \
117 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
118 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
119 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TRNS, KC_NO, KC_NO, KC_NO),
120
121 /* Keymap _LO: Lock layer
122 * ,----------------------------------------------------------------.
123 * | | | | | | | | | | | | | | | |
124 * |----------------------------------------------------------------|
125 * | | | | | | | | | | | | | | | |
126 * |----------------------------------------------------------------|
127 * | | | | | | | | | | | | | | |
128 * |----------------------------------------------------------------|
129 * | | | | | | | | | | | | | | |
130 * |----------------------------------------------------------------|
131 * | | | | | | | _UL | | | |
132 * `----------------------------------------------------------------'
133 */
134[_LO] = KEYMAP_ANSI(
135 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
136 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
137 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
138 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
139 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, MO(_UL), KC_NO, KC_NO, KC_NO),
140};
141
142void tap(uint16_t keycode){
143 register_code(keycode);
144 unregister_code(keycode);
145};
146
147bool process_record_user(uint16_t keycode, keyrecord_t *record) {
148 switch (keycode) {
149 case LENNY: // ( ͡° ͜ʖ ͡°)
150 if(record->event.pressed){
151 set_unicode_input_mode(UC_WIN);
152 register_code(KC_LSFT);
153 tap(KC_9); // Head
154 unregister_code(KC_LSFT);
155 tap(KC_SPC); // Space
156 process_unicode((0x0361|QK_UNICODE), record); // Eyebrow
157 process_unicode((0x00B0|QK_UNICODE), record); // Eye
158 tap(KC_SPC);
159 process_unicode((0x035C|QK_UNICODE), record); // Mouth
160 process_unicode((0x0296|QK_UNICODE), record); // Nose
161 tap(KC_SPC);
162 process_unicode((0x0361|QK_UNICODE), record); // Eyebrow
163 process_unicode((0x00B0|QK_UNICODE), record); // Eye
164 register_code(KC_LSFT);
165 tap(KC_0); // Head
166 unregister_code(KC_LSFT);
167 }
168 return false;
169 break;
170 case DWNHRT: // (´・ω・`)
171 if(record->event.pressed){
172 set_unicode_input_mode(UC_WIN);
173 register_code(KC_LSFT);
174 tap(KC_9); // Head
175 unregister_code(KC_LSFT);
176 process_unicode((0x00B4|QK_UNICODE), record); // Eyebrow
177 process_unicode((0x30FB|QK_UNICODE), record); // Eye
178 process_unicode((0x03C9|QK_UNICODE), record); // Mouth
179 process_unicode((0x30FB|QK_UNICODE), record); // Eye
180 process_unicode((0x0060|QK_UNICODE), record); // Eyebrow
181 register_code(KC_LSFT);
182 tap(KC_0); // Head
183 unregister_code(KC_LSFT);
184 }
185 return false;
186 break;
187 case SHRUG: // ¯\_(ツ)_/¯
188 if(record->event.pressed){
189 set_unicode_input_mode(UC_WIN);
190 process_unicode((0x00AF|QK_UNICODE), record); // Hand
191 tap(KC_BSLS); // Arm
192 register_code(KC_LSFT);
193 tap(KC_UNDS); // Arm
194 tap(KC_LPRN); // Head
195 unregister_code(KC_LSFT);
196 process_unicode((0x30C4|QK_UNICODE), record); // Face
197 register_code(KC_LSFT);
198 tap(KC_RPRN); // Head
199 tap(KC_UNDS); // Arm
200 unregister_code(KC_LSFT);
201 tap(KC_SLSH); // Arm
202 process_unicode((0x00AF|QK_UNICODE), record); // Hand
203 }
204 return false;
205 break;
206 }
207 return true;
208};
209
210const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
211 switch (id) {
212 case 0:
213 if (record->event.pressed) {
214 key_timer = timer_read();
215 }
216 else {
217 if (timer_elapsed(key_timer) > trigger_time) {
218 return MACRO( T(END), END );
219 }
220 else {
221 return MACRO( T(HOME), END );
222 }
223 }
224 break;
225 case 1:
226 if (record->event.pressed) {
227 key_timer = timer_read();
228 }
229 else {
230 if (timer_elapsed(key_timer) > trigger_time) {
231 return MACRO( T(F1), END );
232 }
233 else {
234 return MACRO( T(1), END );
235 }
236 }
237 break;
238 case 2:
239 if (record->event.pressed) {
240 key_timer = timer_read();
241 }
242 else {
243 if (timer_elapsed(key_timer) > trigger_time) {
244 return MACRO( T(F2), END );
245 }
246 else {
247 return MACRO( T(2), END );
248 }
249 }
250 break;
251 case 3:
252 if (record->event.pressed) {
253 key_timer = timer_read();
254 }
255 else {
256 if (timer_elapsed(key_timer) > trigger_time) {
257 return MACRO( T(F3), END );
258 }
259 else {
260 return MACRO( T(3), END );
261 }
262 }
263 break;
264 case 4:
265 if (record->event.pressed) {
266 key_timer = timer_read();
267 }
268 else {
269 if (timer_elapsed(key_timer) > trigger_time) {
270 return MACRO( T(F4), END );
271 }
272 else {
273 return MACRO( T(4), END );
274 }
275 }
276 break;
277 case 5:
278 if (record->event.pressed) {
279 key_timer = timer_read();
280 }
281 else {
282 if (timer_elapsed(key_timer) > trigger_time) {
283 return MACRO( T(F5), END );
284 }
285 else {
286 return MACRO( T(5), END );
287 }
288 }
289 break;
290 case 6:
291 if (record->event.pressed) {
292 key_timer = timer_read();
293 }
294 else {
295 if (timer_elapsed(key_timer) > trigger_time) {
296 return MACRO( T(F6), END );
297 }
298 else {
299 return MACRO( T(6), END );
300 }
301 }
302 break;
303 case 7:
304 if (record->event.pressed) {
305 key_timer = timer_read();
306 }
307 else {
308 if (timer_elapsed(key_timer) > trigger_time) {
309 return MACRO( T(F7), END );
310 }
311 else {
312 return MACRO( T(7), END );
313 }
314 }
315 break;
316 case 8:
317 if (record->event.pressed) {
318 key_timer = timer_read();
319 }
320 else {
321 if (timer_elapsed(key_timer) > trigger_time) {
322 return MACRO( T(F8), END );
323 }
324 else {
325 return MACRO( T(8), END );
326 }
327 }
328 break;
329 case 9:
330 if (record->event.pressed) {
331 key_timer = timer_read();
332 }
333 else {
334 if (timer_elapsed(key_timer) > trigger_time) {
335 return MACRO( T(F9), END );
336 }
337 else {
338 return MACRO( T(9), END );
339 }
340 }
341 break;
342 case 10:
343 if (record->event.pressed) {
344 key_timer = timer_read();
345 }
346 else {
347 if (timer_elapsed(key_timer) > trigger_time) {
348 return MACRO( T(F10), END );
349 }
350 else {
351 return MACRO( T(0), END );
352 }
353 }
354 break;
355 case 11:
356 if (record->event.pressed) {
357 key_timer = timer_read();
358 }
359 else {
360 if (timer_elapsed(key_timer) > trigger_time) {
361 return MACRO( T(F11), END );
362 }
363 else {
364 return MACRO( T(MINS), END );
365 }
366 }
367 break;
368 case 12:
369 if (record->event.pressed) {
370 key_timer = timer_read();
371 }
372 else {
373 if (timer_elapsed(key_timer) > trigger_time) {
374 return MACRO( T(F12), END );
375 }
376 else {
377 return MACRO( T(EQL), END );
378 }
379 }
380 break;
381 }
382 return MACRO_NONE;
383}; \ No newline at end of file
diff --git a/keyboards/tada68/keymaps/maartenwut/readme.md b/keyboards/tada68/keymaps/maartenwut/readme.md
new file mode 100755
index 000000000..9194fbe3c
--- /dev/null
+++ b/keyboards/tada68/keymaps/maartenwut/readme.md
@@ -0,0 +1,3 @@
1# Maartenwut's layout
2
3Well, this is my keyboard layout.