aboutsummaryrefslogtreecommitdiff
path: root/keyboards/planck/keymaps/priyadi/keymap.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/planck/keymaps/priyadi/keymap.c')
-rw-r--r--keyboards/planck/keymaps/priyadi/keymap.c196
1 files changed, 192 insertions, 4 deletions
diff --git a/keyboards/planck/keymaps/priyadi/keymap.c b/keyboards/planck/keymaps/priyadi/keymap.c
index f0dafebf3..2e979221a 100644
--- a/keyboards/planck/keymaps/priyadi/keymap.c
+++ b/keyboards/planck/keymaps/priyadi/keymap.c
@@ -11,6 +11,8 @@
11#include "process_unicode.h" 11#include "process_unicode.h"
12#include "quantum.h" 12#include "quantum.h"
13 13
14// #define TOLELOT_ENABLE
15
14extern keymap_config_t keymap_config; 16extern keymap_config_t keymap_config;
15 17
16enum layers { 18enum layers {
@@ -21,6 +23,8 @@ enum layers {
21 _NUM, 23 _NUM,
22 _FUNC, 24 _FUNC,
23 _EMOJI, 25 _EMOJI,
26 _GREEKU,
27 _GREEKL,
24 _GUI, 28 _GUI,
25}; 29};
26 30
@@ -36,6 +40,7 @@ enum planck_keycodes {
36 FUNC, 40 FUNC,
37 EMOJI, 41 EMOJI,
38 GUI, 42 GUI,
43 GREEK,
39 44
40 // os switchers 45 // os switchers
41 LINUX, 46 LINUX,
@@ -98,6 +103,59 @@ enum unicode_name {
98 SUN, // sun 103 SUN, // sun
99 MOON, // moon 104 MOON, // moon
100 SKULL, // skull 105 SKULL, // skull
106
107 // greek letters
108 UALPH,
109 UBETA,
110 UGAMM,
111 UDELT,
112 UEPSI,
113 UZETA,
114 UETA,
115 UTHET,
116 UIOTA,
117 UKAPP,
118 ULAMB,
119 UMU,
120 UNU,
121 UXI,
122 UOMIC,
123 UPI,
124 URHO,
125 USIGM,
126 UTAU,
127 UUPSI,
128 UPHI,
129 UCHI,
130 UPSI,
131 UOMEG,
132
133 LALPH,
134 LBETA,
135 LGAMM,
136 LDELT,
137 LEPSI,
138 LZETA,
139 LETA,
140 LTHET,
141 LIOTA,
142 LKAPP,
143 LLAMB,
144 LMU,
145 LNU,
146 LXI,
147 LOMIC,
148 LPI,
149 LRHO,
150 LSIGM,
151 LTAU,
152 LUPSI,
153 LPHI,
154 LCHI,
155 LPSI,
156 LOMEG,
157
158 FSIGM,
101}; 159};
102 160
103const uint32_t PROGMEM unicode_map[] = { 161const uint32_t PROGMEM unicode_map[] = {
@@ -148,6 +206,57 @@ const uint32_t PROGMEM unicode_map[] = {
148 [SUN] = 0x2600, 206 [SUN] = 0x2600,
149 [MOON] = 0x1F314, 207 [MOON] = 0x1F314,
150 [SKULL] = 0x1F480, 208 [SKULL] = 0x1F480,
209
210 // greek letters
211 [UALPH] = 0x0391,
212 [UBETA] = 0x0392,
213 [UGAMM] = 0x0393,
214 [UDELT] = 0x0394,
215 [UEPSI] = 0x0395,
216 [UZETA] = 0x0396,
217 [UETA] = 0x0397,
218 [UTHET] = 0x0398,
219 [UIOTA] = 0x0399,
220 [UKAPP] = 0x039A,
221 [ULAMB] = 0x039B,
222 [UMU] = 0x039C,
223 [UNU] = 0x039D,
224 [UXI] = 0x039E,
225 [UOMIC] = 0x039F,
226 [UPI] = 0x03A0,
227 [URHO] = 0x03A1,
228 [USIGM] = 0x03A3,
229 [UTAU] = 0x03A4,
230 [UUPSI] = 0x03A5,
231 [UPHI] = 0x03A6,
232 [UCHI] = 0x03A7,
233 [UPSI] = 0x03A8,
234 [UOMEG] = 0x03A9,
235 [LALPH] = 0x03B1,
236 [LBETA] = 0x03B2,
237 [LGAMM] = 0x03B3,
238 [LDELT] = 0x03B4,
239 [LEPSI] = 0x03B5,
240 [LZETA] = 0x03B6,
241 [LETA] = 0x03B7,
242 [LTHET] = 0x03B8,
243 [LIOTA] = 0x03B9,
244 [LKAPP] = 0x03BA,
245 [LLAMB] = 0x03BB,
246 [LMU] = 0x03BC,
247 [LNU] = 0x03BD,
248 [LXI] = 0x03BE,
249 [LOMIC] = 0x03BF,
250 [LPI] = 0x03C0,
251 [LRHO] = 0x03C1,
252 [LSIGM] = 0x03C3,
253 [LTAU] = 0x03C4,
254 [LUPSI] = 0x03C5,
255 [LPHI] = 0x03C6,
256 [LCHI] = 0x03C7,
257 [LPSI] = 0x03C8,
258 [LOMEG] = 0x03C9,
259 [FSIGM] = 0x03C2,
151}; 260};
152 261
153 262
@@ -174,14 +283,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
174 * |------+------+------+------+------+------|------+------+------+------+------+------| 283 * |------+------+------+------+------+------|------+------+------+------+------+------|
175 * | Shift| Z | X | C | V | B | N | M | , | . | / |Shift | 284 * | Shift| Z | X | C | V | B | N | M | , | . | / |Shift |
176 * |------+------+------+------+------+------+------+------+------+------+------+------| 285 * |------+------+------+------+------+------+------+------+------+------+------+------|
177 * | Ctrl | GUI | Alt | Punc | Num | Space | Func |Emoji |AltGr | GUI | Ctrl | 286 * | Ctrl | GUI | Alt | Punc | Num | Space | Func |Emoji |Greek |AltGr | Ctrl |
178 * `-----------------------------------------------------------------------------------' 287 * `-----------------------------------------------------------------------------------'
179 */ 288 */
180[_QWERTY] = { 289[_QWERTY] = {
181 {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, 290 {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
182 {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT }, 291 {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT },
183 {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT}, 292 {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT},
184 {KC_LCTL, KC_LGUI, KC_LALT, PUNC, NUM, KC_SPC, KC_SPC, FUNC, EMOJI, KC_RALT, KC_RGUI, KC_RCTL} 293 {KC_LCTL, KC_LALT, KC_LGUI, PUNC, NUM, KC_SPC, KC_SPC, FUNC, EMOJI, GREEK, KC_RALT, KC_RCTL}
185}, 294},
186 295
187/* Colemak 296/* Colemak
@@ -220,6 +329,42 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
220 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} 329 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
221}, 330},
222 331
332/* Uppercase Greek
333 * ,-----------------------------------------------------------------------------------.
334 * | | | | | | | | | | | | |
335 * |------+------+------+------+------+-------------+------+------+------+------+------|
336 * | | | | | | | | | | | | |
337 * |------+------+------+------+------+------+------+------+------+------+------+------|
338 * | | | | | | | | | | | | |
339 * |------+------+------+------+------+------+------+------+------+------+------+------|
340 * | | | | | | | | | | | | |
341 * `-----------------------------------------------------------------------------------'
342 */
343[_GREEKU] = {
344 {_______, _______, _______,X(UEPSI), X(URHO), X(UTAU),X(UUPSI),X(UTHET),X(UIOTA),X(UOMIC), X(UPI), _______},
345 {_______,X(UALPH),X(USIGM),X(UDELT), X(UPHI),X(UGAMM), X(UETA), X(UXI),X(UKAPP),X(ULAMB), _______, _______},
346 {_______,X(UZETA), X(UCHI), X(UPSI),X(UOMEG),X(UBETA), X(UNU), X(UMU), _______, _______, _______, _______},
347 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
348},
349
350/* Lowercase Greek
351 * ,-----------------------------------------------------------------------------------.
352 * | | | | | | | | | | | | |
353 * |------+------+------+------+------+-------------+------+------+------+------+------|
354 * | | | | | | | | | | | | |
355 * |------+------+------+------+------+------+------+------+------+------+------+------|
356 * | | | | | | | | | | | | |
357 * |------+------+------+------+------+------+------+------+------+------+------+------|
358 * | | | | | | | | | | | | |
359 * `-----------------------------------------------------------------------------------'
360 */
361[_GREEKL] = {
362 {_______, _______,X(FSIGM),X(LEPSI), X(LRHO), X(LTAU),X(LUPSI),X(LTHET),X(LIOTA),X(LOMIC), X(LPI), _______},
363 {_______,X(LALPH),X(LSIGM),X(LDELT), X(LPHI),X(LGAMM), X(LETA), X(LXI),X(LKAPP),X(LLAMB), _______, _______},
364 {_______,X(LZETA), X(LCHI), X(LPSI),X(LOMEG),X(LBETA), X(LNU), X(LMU), _______, _______, _______, _______},
365 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
366},
367
223/* Punc 368/* Punc
224 * ,-----------------------------------------------------------------------------------. 369 * ,-----------------------------------------------------------------------------------.
225 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | ` | 370 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | ` |
@@ -323,6 +468,7 @@ float tone_windows[][2] = SONG(SCROLL_LOCK_ON_SOUND);
323float tone_osx[][2] = SONG(NUM_LOCK_ON_SOUND); 468float tone_osx[][2] = SONG(NUM_LOCK_ON_SOUND);
324float tone_click[][2] = SONG(MUSICAL_NOTE(_F3, 2)); 469float tone_click[][2] = SONG(MUSICAL_NOTE(_F3, 2));
325float tone_release[][2] = SONG(MUSICAL_NOTE(_A3, 2)); 470float tone_release[][2] = SONG(MUSICAL_NOTE(_A3, 2));
471float tone_tolelot[][2] = SONG(Q__NOTE(_E5), Q__NOTE(_C5), Q__NOTE(_D5));
326#endif 472#endif
327 473
328void persistant_default_layer_set(uint16_t default_layer) { 474void persistant_default_layer_set(uint16_t default_layer) {
@@ -334,19 +480,61 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
334 // faux clicky 480 // faux clicky
335 // if (record->event.pressed) PLAY_NOTE_ARRAY(tone_click, false, 0); 481 // if (record->event.pressed) PLAY_NOTE_ARRAY(tone_click, false, 0);
336 #ifdef AUDIO_ENABLE 482 #ifdef AUDIO_ENABLE
483 #ifdef TOLELOT_ENABLE
484 if (record->event.pressed) {
485 PLAY_NOTE_ARRAY(tone_tolelot, false, 0);
486 }
487 #else
337 if (record->event.pressed) { 488 if (record->event.pressed) {
338 PLAY_NOTE_ARRAY(tone_click, false, 0); 489 PLAY_NOTE_ARRAY(tone_click, false, 0);
339 } else { 490 } else {
340 PLAY_NOTE_ARRAY(tone_release, false, 0); 491 PLAY_NOTE_ARRAY(tone_release, false, 0);
341 } 492 }
342 #endif 493 #endif
494 #endif
495
496 bool lshifted = keyboard_report->mods & MOD_BIT(KC_LSFT);
497 bool rshifted = keyboard_report->mods & MOD_BIT(KC_RSFT);
343 498
344 switch (keycode) { 499 switch (keycode) {
500 // Greek layer handling
501 case GREEK:
502 if (record->event.pressed) {
503 if (lshifted || rshifted) {
504 layer_on(_GREEKU);
505 layer_off(_GREEKL);
506 } else {
507 layer_on(_GREEKL);
508 layer_off(_GREEKU);
509 }
510 } else {
511 layer_off(_GREEKU);
512 layer_off(_GREEKL);
513 }
514 return false;
515 break;
516
517 case KC_LSFT:
518 case KC_RSFT:
519 ;
520 uint8_t layer = biton32(layer_state);
521 if (layer == _GREEKU || layer == _GREEKL) {
522 if (record->event.pressed) {
523 layer_on(_GREEKU);
524 layer_off(_GREEKL);
525 } else {
526 if (lshifted ^ rshifted) { // if only one shift is pressed
527 layer_on(_GREEKL);
528 layer_off(_GREEKU);
529 }
530 }
531 }
532 return true;
533 break;
534
345 // QWERTZ style comma and dot: semicolon and colon when shifted 535 // QWERTZ style comma and dot: semicolon and colon when shifted
346 case KC_COMM: 536 case KC_COMM:
347 if (record->event.pressed) { 537 if (record->event.pressed) {
348 bool lshifted = keyboard_report->mods & MOD_BIT(KC_LSFT);
349 bool rshifted = keyboard_report->mods & MOD_BIT(KC_RSFT);
350 if (lshifted || rshifted) { 538 if (lshifted || rshifted) {
351 if (lshifted) unregister_code(KC_LSFT); 539 if (lshifted) unregister_code(KC_LSFT);
352 if (rshifted) unregister_code(KC_RSFT); 540 if (rshifted) unregister_code(KC_RSFT);