diff options
Diffstat (limited to 'keyboards/planck/keymaps/priyadi/keymap.c')
| -rw-r--r-- | keyboards/planck/keymaps/priyadi/keymap.c | 534 |
1 files changed, 383 insertions, 151 deletions
diff --git a/keyboards/planck/keymaps/priyadi/keymap.c b/keyboards/planck/keymaps/priyadi/keymap.c index 2e979221a..20bfa3958 100644 --- a/keyboards/planck/keymaps/priyadi/keymap.c +++ b/keyboards/planck/keymaps/priyadi/keymap.c | |||
| @@ -10,29 +10,81 @@ | |||
| 10 | #include "eeconfig.h" | 10 | #include "eeconfig.h" |
| 11 | #include "process_unicode.h" | 11 | #include "process_unicode.h" |
| 12 | #include "quantum.h" | 12 | #include "quantum.h" |
| 13 | |||
| 14 | // #define TOLELOT_ENABLE | 13 | // #define TOLELOT_ENABLE |
| 14 | #define DOUBLESPACE_LAYER_ENABLE | ||
| 15 | #define LAYOUT_DVORAK | ||
| 16 | #define LAYOUT_COLEMAK | ||
| 17 | #define LAYOUT_WORKMAN | ||
| 18 | #define LAYOUT_NORMAN | ||
| 19 | |||
| 20 | // so i can copy & paste stuff from my other planck-like keyboards | ||
| 21 | #define KEYMAP( \ | ||
| 22 | k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \ | ||
| 23 | k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \ | ||
| 24 | k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \ | ||
| 25 | k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c \ | ||
| 26 | ) \ | ||
| 27 | { \ | ||
| 28 | {k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c}, \ | ||
| 29 | {k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c}, \ | ||
| 30 | {k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c}, \ | ||
| 31 | {k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c} \ | ||
| 32 | } | ||
| 15 | 33 | ||
| 34 | // Fillers to make layering clearer | ||
| 35 | #define _______ KC_TRNS | ||
| 36 | #define XXXXXXX KC_NO | ||
| 37 | #define G(x) LGUI(x) | ||
| 38 | #define KC_WWWB KC_WWW_BACK | ||
| 39 | #define KC_WWWF KC_WWW_FORWARD | ||
| 40 | |||
| 41 | // hybrid right-alt & scroll lock (mapped to Compose in OS) | ||
| 42 | #undef KC_RALT | ||
| 43 | #define KC_RALT MT(MOD_RALT, KC_SLCK) | ||
| 44 | |||
| 45 | bool capslock = false; | ||
| 46 | |||
| 47 | #ifdef DOUBLESPACE_LAYER_ENABLE | ||
| 48 | bool lspace_active = false; | ||
| 49 | bool rspace_active = false; | ||
| 50 | bool lspace_emitted = false; | ||
| 51 | bool rspace_emitted = false; | ||
| 52 | bool space_layer_entered = false; | ||
| 53 | #endif | ||
| 54 | |||
| 55 | void turn_off_capslock(void); | ||
| 16 | extern keymap_config_t keymap_config; | 56 | extern keymap_config_t keymap_config; |
| 17 | 57 | ||
| 18 | enum layers { | 58 | enum layers { |
| 19 | _QWERTY, | 59 | _QWERTY, |
| 60 | _DVORAK, | ||
| 20 | _COLEMAK, | 61 | _COLEMAK, |
| 21 | _WORKMAN, | 62 | _WORKMAN, |
| 22 | _PUNC, | 63 | _NORMAN, |
| 64 | _DEFAULT_LAYER_MAX = _NORMAN, | ||
| 65 | |||
| 66 | _GREEKU, | ||
| 67 | _GREEKL, | ||
| 68 | |||
| 23 | _NUM, | 69 | _NUM, |
| 24 | _FUNC, | 70 | _FUNC, |
| 71 | _PUNC, | ||
| 72 | |||
| 25 | _EMOJI, | 73 | _EMOJI, |
| 26 | _GREEKU, | ||
| 27 | _GREEKL, | ||
| 28 | _GUI, | 74 | _GUI, |
| 75 | _SYS, | ||
| 29 | }; | 76 | }; |
| 30 | 77 | ||
| 78 | // double-space layer | ||
| 79 | #define _SPACE _GUI | ||
| 80 | |||
| 31 | enum planck_keycodes { | 81 | enum planck_keycodes { |
| 32 | // layouts | 82 | // layouts |
| 33 | QWERTY = SAFE_RANGE, | 83 | QWERTY = SAFE_RANGE, |
| 84 | DVORAK, | ||
| 34 | COLEMAK, | 85 | COLEMAK, |
| 35 | WORKMAN, | 86 | WORKMAN, |
| 87 | NORMAN, | ||
| 36 | 88 | ||
| 37 | // layer switchers | 89 | // layer switchers |
| 38 | PUNC, | 90 | PUNC, |
| @@ -46,12 +98,15 @@ enum planck_keycodes { | |||
| 46 | LINUX, | 98 | LINUX, |
| 47 | WIN, | 99 | WIN, |
| 48 | OSX, | 100 | OSX, |
| 49 | }; | ||
| 50 | 101 | ||
| 51 | // Fillers to make layering clearer | 102 | // others |
| 103 | LSPACE, | ||
| 104 | RSPACE, | ||
| 105 | GLOW, | ||
| 52 | 106 | ||
| 53 | #define _______ KC_TRNS | 107 | // stubs |
| 54 | #define XXXXXXX KC_NO | 108 | OUT_BLE |
| 109 | }; | ||
| 55 | 110 | ||
| 56 | // unicode map | 111 | // unicode map |
| 57 | 112 | ||
| @@ -259,17 +314,9 @@ const uint32_t PROGMEM unicode_map[] = { | |||
| 259 | [FSIGM] = 0x03C2, | 314 | [FSIGM] = 0x03C2, |
| 260 | }; | 315 | }; |
| 261 | 316 | ||
| 262 | |||
| 263 | // hybrid shift - = | ||
| 264 | // #undef KC_LSFT | ||
| 265 | // #define KC_LSFT MT(MOD_LSFT, KC_MINS) | ||
| 266 | // #undef KC_RSFT | ||
| 267 | // #define KC_RSFT MT(MOD_LSFT, KC_EQL) | ||
| 268 | |||
| 269 | |||
| 270 | // hybrid right-gui & scroll lock (mapped to Compose in OS) | 317 | // hybrid right-gui & scroll lock (mapped to Compose in OS) |
| 271 | #undef KC_RCTL | 318 | #undef KC_RALT |
| 272 | #define KC_RCTL MT(MOD_LCTL, KC_SLCK) | 319 | #define KC_RALT MT(MOD_RALT, KC_SLCK) |
| 273 | 320 | ||
| 274 | // keymaps | 321 | // keymaps |
| 275 | 322 | ||
| @@ -279,127 +326,138 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 279 | * ,-----------------------------------------------------------------------------------. | 326 | * ,-----------------------------------------------------------------------------------. |
| 280 | * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | | 327 | * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | |
| 281 | * |------+------+------+------+------+-------------+------+------+------+------+------| | 328 | * |------+------+------+------+------+-------------+------+------+------+------+------| |
| 282 | * | Esc | A | S | D | F | G | H | J | K | L | ; |Enter | | 329 | * | Esc | A | S | D | F | G | H | J | K | L | ' |Enter | |
| 283 | * |------+------+------+------+------+------|------+------+------+------+------+------| | 330 | * |------+------+------+------+------+------|------+------+------+------+------+------| |
| 284 | * | Shift| Z | X | C | V | B | N | M | , | . | / |Shift | | 331 | * | Shift| Z | X | C | V | B | N | M | , | . | / |Shift | |
| 285 | * |------+------+------+------+------+------+------+------+------+------+------+------| | 332 | * |------+------+------+------+------+------+------+------+------+------+------+------| |
| 286 | * | Ctrl | GUI | Alt | Punc | Num | Space | Func |Emoji |Greek |AltGr | Ctrl | | 333 | * | Ctrl | Alt | GUI | Punc | Num | Space | Func |Greek | GUI |AltGr | Ctrl | |
| 287 | * `-----------------------------------------------------------------------------------' | 334 | * `-----------------------------------------------------------------------------------' |
| 288 | */ | 335 | */ |
| 289 | [_QWERTY] = { | 336 | [_QWERTY] = KEYMAP( |
| 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}, | 337 | KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, |
| 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 }, | 338 | KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT , |
| 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}, | 339 | KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, |
| 293 | {KC_LCTL, KC_LALT, KC_LGUI, PUNC, NUM, KC_SPC, KC_SPC, FUNC, EMOJI, GREEK, KC_RALT, KC_RCTL} | 340 | KC_LCTL, KC_LALT, KC_LGUI, XXXXXXX, NUM, LSPACE, RSPACE, FUNC, GREEK, KC_RGUI, KC_RALT, KC_RCTL |
| 294 | }, | 341 | ), |
| 295 | 342 | ||
| 296 | /* Colemak | 343 | /* Dvorak |
| 297 | * ,-----------------------------------------------------------------------------------. | 344 | * ,-----------------------------------------------------------------------------------. |
| 298 | * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | | 345 | * | Tab | ' | , | . | P | Y | F | G | C | R | L | Bksp | |
| 299 | * |------+------+------+------+------+-------------+------+------+------+------+------| | 346 | * |------+------+------+------+------+-------------+------+------+------+------+------| |
| 300 | * | Esc | A | R | S | T | D | H | N | E | I | O |Enter | | 347 | * | Esc | A | O | E | U | I | D | H | T | N | S |Enter | |
| 301 | * |------+------+------+------+------+------|------+------+------+------+------+------| | 348 | * |------+------+------+------+------+------|------+------+------+------+------+------| |
| 302 | * | Shift| Z | X | C | V | B | K | M | , | . | / |Shift | | 349 | * | Shift| / | Q | J | K | X | B | M | W | V | Z |Shift | |
| 303 | * |------+------+------+------+------+------+------+------+------+------+------+------| | 350 | * |------+------+------+------+------+------+------+------+------+------+------+------| |
| 304 | * | Ctrl | GUI | Alt | Punc | Num | Space | Func |Emoji |AltGr | GUI | Ctrl | | 351 | * | Ctrl | Alt | GUI | Punc | Num | Space | Func |Greek | GUI |AltGr | Ctrl | |
| 305 | * `-----------------------------------------------------------------------------------' | 352 | * `-----------------------------------------------------------------------------------' |
| 306 | */ | 353 | */ |
| 307 | [_COLEMAK] = { | 354 | #ifdef LAYOUT_DVORAK |
| 308 | {_______, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, _______}, | 355 | [_DVORAK] = KEYMAP( |
| 309 | {_______, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, _______}, | 356 | _______, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, _______, |
| 310 | {_______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______}, | 357 | _______, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, _______, |
| 311 | {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} | 358 | _______, KC_SLSH, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, _______, |
| 312 | }, | 359 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ |
| 360 | ), | ||
| 361 | #endif | ||
| 313 | 362 | ||
| 314 | /* Workman | 363 | /* Colemak |
| 315 | * ,-----------------------------------------------------------------------------------. | 364 | * ,-----------------------------------------------------------------------------------. |
| 316 | * | Tab | Q | D | R | W | B | J | F | U | P | ; | Bksp | | 365 | * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | |
| 317 | * |------+------+------+------+------+-------------+------+------+------+------+------| | 366 | * |------+------+------+------+------+-------------+------+------+------+------+------| |
| 318 | * | Esc | A | S | H | T | G | Y | N | E | O | I |Enter | | 367 | * | Esc | A | R | S | T | D | H | N | E | I | O |Enter | |
| 319 | * |------+------+------+------+------+------|------+------+------+------+------+------| | 368 | * |------+------+------+------+------+------|------+------+------+------+------+------| |
| 320 | * | Shift| Z | X | M | C | V | K | K | , | . | / |Shift | | 369 | * | Shift| Z | X | C | V | B | K | M | , | . | / |Shift | |
| 321 | * |------+------+------+------+------+------+------+------+------+------+------+------| | 370 | * |------+------+------+------+------+------+------+------+------+------+------+------| |
| 322 | * | Ctrl | GUI | Alt | Punc | Num | Space | Func |Emoji |AltGr | GUI | Ctrl | | 371 | * | Ctrl | Alt | GUI | Punc | Num | Space | Func |Greek | GUI |AltGr | Ctrl | |
| 323 | * `-----------------------------------------------------------------------------------' | 372 | * `-----------------------------------------------------------------------------------' |
| 324 | */ | 373 | */ |
| 325 | [_WORKMAN] = { | ||
| 326 | {_______, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_QUOT, _______}, | ||
| 327 | {_______, KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, _______}, | ||
| 328 | {_______, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH, _______}, | ||
| 329 | {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} | ||
| 330 | }, | ||
| 331 | 374 | ||
| 332 | /* Uppercase Greek | 375 | #ifdef LAYOUT_COLEMAK |
| 376 | [_COLEMAK] = KEYMAP( | ||
| 377 | _______, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, _______, | ||
| 378 | _______, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, _______, | ||
| 379 | _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______, | ||
| 380 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
| 381 | ), | ||
| 382 | #endif | ||
| 383 | |||
| 384 | /* Norman | ||
| 333 | * ,-----------------------------------------------------------------------------------. | 385 | * ,-----------------------------------------------------------------------------------. |
| 334 | * | | | | | | | | | | | | | | 386 | * | Tab | Q | W | D | F | K | J | U | R | L | ; | Bksp | |
| 335 | * |------+------+------+------+------+-------------+------+------+------+------+------| | 387 | * |------+------+------+------+------+-------------+------+------+------+------+------| |
| 336 | * | | | | | | | | | | | | | | 388 | * | Esc | A | S | E | T | G | Y | N | I | O | H |Enter | |
| 337 | * |------+------+------+------+------+------+------+------+------+------+------+------| | 389 | * |------+------+------+------+------+------|------+------+------+------+------+------| |
| 338 | * | | | | | | | | | | | | | | 390 | * | Shift| Z | X | C | V | B | P | M | , | . | / |Shift | |
| 339 | * |------+------+------+------+------+------+------+------+------+------+------+------| | 391 | * |------+------+------+------+------+------+------+------+------+------+------+------| |
| 340 | * | | | | | | | | | | | | | | 392 | * | Ctrl | Alt | GUI | Punc | Num | Space | Func |Greek | GUI |AltGr | Ctrl | |
| 341 | * `-----------------------------------------------------------------------------------' | 393 | * `-----------------------------------------------------------------------------------' |
| 342 | */ | 394 | */ |
| 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 | 395 | ||
| 350 | /* Lowercase Greek | 396 | #ifdef LAYOUT_NORMAN |
| 397 | [_NORMAN] = KEYMAP( | ||
| 398 | _______, KC_Q, KC_W, KC_D, KC_F, KC_K, KC_J, KC_U, KC_R, KC_L, KC_QUOT, _______, | ||
| 399 | _______, KC_A, KC_S, KC_E, KC_T, KC_G, KC_Y, KC_N, KC_I, KC_O, KC_H, _______, | ||
| 400 | _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_P, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______, | ||
| 401 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
| 402 | ), | ||
| 403 | #endif | ||
| 404 | |||
| 405 | /* Workman | ||
| 351 | * ,-----------------------------------------------------------------------------------. | 406 | * ,-----------------------------------------------------------------------------------. |
| 352 | * | | | | | | | | | | | | | | 407 | * | Tab | Q | D | R | W | B | J | F | U | P | ; | Bksp | |
| 353 | * |------+------+------+------+------+-------------+------+------+------+------+------| | 408 | * |------+------+------+------+------+-------------+------+------+------+------+------| |
| 354 | * | | | | | | | | | | | | | | 409 | * | Esc | A | S | H | T | G | Y | N | E | O | I |Enter | |
| 355 | * |------+------+------+------+------+------+------+------+------+------+------+------| | 410 | * |------+------+------+------+------+------|------+------+------+------+------+------| |
| 356 | * | | | | | | | | | | | | | | 411 | * | Shift| Z | X | M | C | V | K | K | , | . | / |Shift | |
| 357 | * |------+------+------+------+------+------+------+------+------+------+------+------| | 412 | * |------+------+------+------+------+------+------+------+------+------+------+------| |
| 358 | * | | | | | | | | | | | | | | 413 | * | Ctrl | Alt | GUI | Punc | Num | Space | Func |Greek | GUI |AltGr | Ctrl | |
| 359 | * `-----------------------------------------------------------------------------------' | 414 | * `-----------------------------------------------------------------------------------' |
| 360 | */ | 415 | */ |
| 361 | [_GREEKL] = { | 416 | |
| 362 | {_______, _______,X(FSIGM),X(LEPSI), X(LRHO), X(LTAU),X(LUPSI),X(LTHET),X(LIOTA),X(LOMIC), X(LPI), _______}, | 417 | #ifdef LAYOUT_WORKMAN |
| 363 | {_______,X(LALPH),X(LSIGM),X(LDELT), X(LPHI),X(LGAMM), X(LETA), X(LXI),X(LKAPP),X(LLAMB), _______, _______}, | 418 | [_WORKMAN] = KEYMAP( |
| 364 | {_______,X(LZETA), X(LCHI), X(LPSI),X(LOMEG),X(LBETA), X(LNU), X(LMU), _______, _______, _______, _______}, | 419 | _______, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_QUOT, _______, |
| 365 | {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} | 420 | _______, KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, _______, |
| 366 | }, | 421 | _______, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH, _______, |
| 422 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
| 423 | ), | ||
| 424 | #endif | ||
| 367 | 425 | ||
| 368 | /* Punc | 426 | /* Punc |
| 369 | * ,-----------------------------------------------------------------------------------. | 427 | * ,-----------------------------------------------------------------------------------. |
| 370 | * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | ` | | 428 | * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | ` | |
| 371 | * |------+------+------+------+------+-------------+------+------+------+------+------| | 429 | * |------+------+------+------+------+-------------+------+------+------+------+------| |
| 372 | * | | | \ | - | = | < | > | ( | ) | ' | | | | 430 | * | | * | \ | - | = | / | | ( | ) | < | > | | |
| 373 | * |------+------+------+------+------+------|------+------+------+------+------+------| | 431 | * |------+------+------+------+------+------|------+------+------+------+------+------| |
| 374 | * | | | | | _ | + | { | } | [ | ] | " | | | | 432 | * | & | ^ | | | _ | + | ? | | [ | ] | { | } | : | |
| 375 | * |------+------+------+------+------+------+------+------+------+------+------+------| | 433 | * |------+------+------+------+------+------+------+------+------+------+------+------| |
| 376 | * | | | | | | | | | | | | | 434 | * | | | | | | | | | | | | |
| 377 | * `-----------------------------------------------------------------------------------' | 435 | * `-----------------------------------------------------------------------------------' |
| 378 | */ | 436 | */ |
| 379 | [_PUNC] = { | 437 | [_PUNC] = KEYMAP( |
| 380 | {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_GRV }, | 438 | KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, |
| 381 | {XXXXXXX, XXXXXXX, KC_BSLS, KC_MINS, KC_EQL, KC_LABK, KC_RABK, KC_LPRN, KC_RPRN, KC_QUOT, XXXXXXX, XXXXXXX}, | 439 | KC_GRV, KC_ASTR, KC_BSLS, KC_MINS, KC_EQL, KC_SLSH, XXXXXXX, KC_LPRN, KC_RPRN, KC_LABK, KC_RABK, _______, |
| 382 | {XXXXXXX, XXXXXXX, KC_PIPE, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, KC_DQUO, XXXXXXX, XXXXXXX}, | 440 | KC_AMPR, KC_CIRC, KC_PIPE, KC_UNDS, KC_PLUS, KC_QUES, XXXXXXX, KC_LBRC, KC_RBRC, KC_LCBR, KC_RCBR, KC_COLN, |
| 383 | {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} | 441 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ |
| 384 | }, | 442 | ), |
| 385 | 443 | ||
| 386 | /* Num | 444 | /* Num |
| 387 | * ,-----------------------------------------------------------------------------------. | 445 | * ,-----------------------------------------------------------------------------------. |
| 388 | * | ^ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | | 446 | * | ~ | ! | @ | # | $ | % | A | 7 | 8 | 9 | D | ` | |
| 389 | * |------+------+------+------+------+-------------+------+------+------+------+------| | 447 | * |------+------+------+------+------+-------------+------+------+------+------+------| |
| 390 | * | Esc | @ | A | B | C | ( | ) | 4 | 5 | 6 | : |Enter | | 448 | * | | * | \ | - | = | / | B | 4 | 5 | 6 | E | | |
| 391 | * |------+------+------+------+------+------|------+------+------+------+------+------| | 449 | * |------+------+------+------+------+------|------+------+------+------+------+------| |
| 392 | * | & | # | D | E | F | [ | ] | 1 | 2 | 3 | / | * | | 450 | * | & | ^ | | | _ | + | ? | C | 1 | 2 | 3 | F | : | |
| 393 | * |------+------+------+------+------+------+------+------+------+------+------+------| | 451 | * |------+------+------+------+------+------+------+------+------+------+------+------| |
| 394 | * | | | | x | | | 0 | , | . | + | - | | 452 | * | | | | | | | x | 0 | , | . | | | |
| 395 | * `-----------------------------------------------------------------------------------' | 453 | * `-----------------------------------------------------------------------------------' |
| 396 | */ | 454 | */ |
| 397 | [_NUM] = { | 455 | [_NUM] = KEYMAP( |
| 398 | {KC_CIRC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, | 456 | KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, S(KC_A), KC_7, KC_8, KC_9, S(KC_D), _______, |
| 399 | { KC_ESC, KC_AT, S(KC_A), S(KC_B), S(KC_C), KC_LPRN, KC_RPRN, KC_4, KC_5, KC_6, KC_COLN, KC_ENT}, | 457 | KC_GRV, KC_ASTR, KC_BSLS, KC_MINS, KC_EQL, KC_SLSH, S(KC_B), KC_4, KC_5, KC_6, S(KC_E), _______, |
| 400 | {KC_AMPR, KC_HASH, S(KC_D), S(KC_E), S(KC_F), KC_LBRC, KC_RBRC, KC_1, KC_2, KC_3, KC_SLSH, KC_ASTR}, | 458 | KC_AMPR, KC_CIRC, KC_PIPE, KC_UNDS, KC_PLUS, KC_QUES, S(KC_C), KC_1, KC_2, KC_3, S(KC_F), KC_COLN, |
| 401 | {_______, _______, _______, KC_X, _______, KC_SPC, KC_SPC, KC_0, KC_COMM, KC_DOT, KC_PLUS, KC_MINS} | 459 | _______, _______, _______, _______, _______, _______, _______, LT(_PUNC, KC_0), KC_COMM, KC_DOT, KC_X, _______ |
| 402 | }, | 460 | ), |
| 403 | 461 | ||
| 404 | /* Func | 462 | /* Func |
| 405 | * ,-----------------------------------------------------------------------------------. | 463 | * ,-----------------------------------------------------------------------------------. |
| @@ -412,12 +470,48 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 412 | * | | | | | | | | | | | | | 470 | * | | | | | | | | | | | | |
| 413 | * `-----------------------------------------------------------------------------------' | 471 | * `-----------------------------------------------------------------------------------' |
| 414 | */ | 472 | */ |
| 415 | [_FUNC] = { | 473 | [_FUNC] = KEYMAP( |
| 416 | {XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, XXXXXXX, KC_PGUP, KC_UP, KC_PGDN, KC_PGUP, KC_DEL}, | 474 | XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, XXXXXXX, KC_PGUP, KC_UP, KC_PGDN, KC_PGUP, KC_DEL, |
| 417 | {XXXXXXX, KC_F5, KC_F6, KC_F7, KC_F8,KC_PSCREEN,XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_INS}, | 475 | XXXXXXX, KC_F5, KC_F6, KC_F7, KC_F8, KC_PSCR, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_INS, |
| 418 | {_______, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_END, XXXXXXX, _______}, | 476 | _______, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_END, XXXXXXX, _______, |
| 419 | {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} | 477 | _______, _______, _______, _______, PUNC, _______, _______, _______, _______, _______, _______, _______ |
| 420 | }, | 478 | ), |
| 479 | |||
| 480 | /* Uppercase Greek | ||
| 481 | * ,-----------------------------------------------------------------------------------. | ||
| 482 | * | | | | | | | | | | | | | | ||
| 483 | * |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 484 | * | | | | | | | | | | | | | | ||
| 485 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 486 | * | | | | | | | | | | | | | | ||
| 487 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 488 | * | | | | | | | | | | | | | | ||
| 489 | * `-----------------------------------------------------------------------------------' | ||
| 490 | */ | ||
| 491 | [_GREEKU] = KEYMAP( | ||
| 492 | _______, XXXXXXX, XXXXXXX,X(UEPSI), X(URHO), X(UTAU),X(UUPSI),X(UTHET),X(UIOTA),X(UOMIC), X(UPI), _______, | ||
| 493 | _______,X(UALPH),X(USIGM),X(UDELT), X(UPHI),X(UGAMM), X(UETA), X(UXI),X(UKAPP),X(ULAMB), KC_QUOT, _______, | ||
| 494 | _______,X(UZETA), X(UCHI), X(UPSI),X(UOMEG),X(UBETA), X(UNU), X(UMU), KC_COMM, KC_DOT, KC_SLSH, _______, | ||
| 495 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
| 496 | ), | ||
| 497 | |||
| 498 | /* Lowercase Greek | ||
| 499 | * ,-----------------------------------------------------------------------------------. | ||
| 500 | * | | | | | | | | | | | | | | ||
| 501 | * |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 502 | * | | | | | | | | | | | | | | ||
| 503 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 504 | * | | | | | | | | | | | | | | ||
| 505 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 506 | * | | | | | | | | | | | | | | ||
| 507 | * `-----------------------------------------------------------------------------------' | ||
| 508 | */ | ||
| 509 | [_GREEKL] = KEYMAP( | ||
| 510 | _______, XXXXXXX,X(FSIGM),X(LEPSI), X(LRHO), X(LTAU),X(LUPSI),X(LTHET),X(LIOTA),X(LOMIC), X(LPI), _______, | ||
| 511 | _______,X(LALPH),X(LSIGM),X(LDELT), X(LPHI),X(LGAMM), X(LETA), X(LXI),X(LKAPP),X(LLAMB), KC_QUOT, _______, | ||
| 512 | _______,X(LZETA), X(LCHI), X(LPSI),X(LOMEG),X(LBETA), X(LNU), X(LMU), KC_COMM, KC_DOT, KC_SLSH, _______, | ||
| 513 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
| 514 | ), | ||
| 421 | 515 | ||
| 422 | /* Emoji | 516 | /* Emoji |
| 423 | * ,-----------------------------------------------------------------------------------. | 517 | * ,-----------------------------------------------------------------------------------. |
| @@ -430,30 +524,48 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 430 | * | | | | | | | | | | | | | | 524 | * | | | | | | | | | | | | | |
| 431 | * `-----------------------------------------------------------------------------------' | 525 | * `-----------------------------------------------------------------------------------' |
| 432 | */ | 526 | */ |
| 433 | [_EMOJI] = { | 527 | [_EMOJI] = KEYMAP( |
| 434 | {X(HART2), X(CRY2),X(WEARY),X(EYERT),X(SMIRK), X(TJOY),X(RECYC),X(UNAMU),X(MUSIC),X(OKHND),X(PENSV), X(PHEW)}, | 528 | X(HART2), X(CRY2),X(WEARY),X(EYERT),X(SMIRK), X(TJOY),X(RECYC),X(UNAMU),X(MUSIC),X(OKHND),X(PENSV), X(PHEW), |
| 435 | {X(THMUP), X(PRAY),X(SMILE),X(SMIL2),X(FLUSH), X(GRIN),X(HEART), X(BYE), X(KISS),X(CELEB), X(COOL),X(NOEVS)}, | 529 | X(THMUP), X(PRAY),X(SMILE),X(SMIL2),X(FLUSH), X(GRIN),X(HEART), X(BYE), X(KISS),X(CELEB), X(COOL),X(NOEVS), |
| 436 | {X(THMDN),X(SLEEP), X(CLAP), X(CRY), X(VIC),X(BHART), X(SUN),X(SMEYE), X(WINK), X(MOON),X(CONFU),X(NOEVH)}, | 530 | X(THMDN),X(SLEEP), X(CLAP), X(CRY), X(VIC),X(BHART), X(SUN),X(SMEYE), X(WINK), X(MOON),X(CONFU),X(NOEVH), |
| 437 | { X(POO), X(EYES),X(HUNRD), _______,X(SKULL),X(HORNS), X(HALO), X(FEAR), _______,X(YUMMY),X(DISAP),X(NOEVK)} | 531 | X(POO), X(EYES), _______,X(HUNRD), X(SKULL),X(HORNS), X(HALO), X(FEAR),X(YUMMY),_______,X(DISAP),X(NOEVK) |
| 438 | }, | 532 | ), |
| 439 | 533 | ||
| 440 | /* GUI | 534 | /* GUI |
| 441 | * ,-----------------------------------------------------------------------------------. | 535 | * ,-----------------------------------------------------------------------------------. |
| 442 | * | | D1 | D2 | D3 | D4 | D5 | D6 | D7 | D8 | D9 | D10 | | | 536 | * | | D1 | D2 | D3 | D4 | D5 | D6 | D7 | D8 | D9 | D10 | | |
| 443 | * |------+------+------+------+------+-------------+------+------+------+------+------| | 537 | * |------+------+------+------+------+-------------+------+------+------+------+------| |
| 444 | * |Linux | | Vol- | Mute | Vol+ | | | D- | | D+ | |Qwerty| | 538 | * | | | Vol- | Mute | Vol+ | | | Prev | | Next | | | |
| 445 | * |------+------+------+------+------+------+------+------+------+------+------+------| | 539 | * |------+------+------+------+------+------+------+------+------+------+------+------| |
| 446 | * | Win | | Prev | Play | Next | | | | | | |Colmak| | 540 | * | | | Prev | Play | Next | BTab | Tab | | | | | | |
| 447 | * |------+------+------+------+------+------+------+------+------+------+------+------| | 541 | * |------+------+------+------+------+------+------+------+------+------+------+------| |
| 448 | * | OSX | | | | | BL- | BL+ | | | | |Workmn| | 542 | * | | | | | | | | | | | | | |
| 449 | * `-----------------------------------------------------------------------------------' | 543 | * `-----------------------------------------------------------------------------------' |
| 450 | */ | 544 | */ |
| 451 | [_GUI] = { | 545 | [_GUI] = KEYMAP( |
| 452 | {_______, LGUI(KC_1),LGUI(KC_2),LGUI(KC_3),LGUI(KC_4),LGUI(KC_5),LGUI(KC_6),LGUI(KC_7),LGUI(KC_8),LGUI(KC_9),LGUI(KC_0), _______}, | 546 | XXXXXXX, G(KC_1), G(KC_2), G(KC_3), G(KC_4), G(KC_5), G(KC_6), G(KC_7), G(KC_8), G(KC_9), G(KC_0), XXXXXXX, |
| 453 | { LINUX, _______, KC_VOLD, KC_MUTE, KC_VOLU,_______,_______,KC_WWW_BACK,_______,KC_WWW_FORWARD,_______, QWERTY}, | 547 | XXXXXXX, XXXXXXX, KC_VOLD, KC_MUTE, KC_VOLU, S(KC_TAB),KC_TAB, KC_WWWB, XXXXXXX, KC_WWWF, XXXXXXX, XXXXXXX, |
| 454 | { WIN, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______, _______, _______, _______, COLEMAK}, | 548 | XXXXXXX, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, KC_SPC, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
| 455 | { OSX, _______, _______, _______, _______, BL_DEC, BL_INC, _______, _______, _______, _______, WORKMAN} | 549 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX |
| 456 | }, | 550 | ), |
| 551 | |||
| 552 | /* Sys | ||
| 553 | * ,-----------------------------------------------------------------------------------. | ||
| 554 | * | |Qwerty| Win | |Reset | | | USB | | | | | | ||
| 555 | * |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 556 | * | |Audio | |Dvorak| | Glow | | |WorkMn|Linux | | | | ||
| 557 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 558 | * | | | |Colmak| | BLE |Norman|MacOS | | | | | | ||
| 559 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 560 | * | | | | | | | | | | | | | | ||
| 561 | * `-----------------------------------------------------------------------------------' | ||
| 562 | */ | ||
| 563 | [_SYS] = KEYMAP( | ||
| 564 | XXXXXXX, QWERTY, WIN, XXXXXXX, RESET, XXXXXXX, XXXXXXX, OUT_USB, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 565 | XXXXXXX, FC_TOG, XXXXXXX, DVORAK, XXXXXXX, GLOW, XXXXXXX, XXXXXXX, WORKMAN, LINUX, XXXXXXX, XXXXXXX, | ||
| 566 | XXXXXXX, XXXXXXX, XXXXXXX, COLEMAK, XXXXXXX, OUT_BLE, NORMAN, OSX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 567 | _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______ | ||
| 568 | ), | ||
| 457 | 569 | ||
| 458 | }; | 570 | }; |
| 459 | 571 | ||
| @@ -476,6 +588,34 @@ void persistant_default_layer_set(uint16_t default_layer) { | |||
| 476 | default_layer_set(default_layer); | 588 | default_layer_set(default_layer); |
| 477 | } | 589 | } |
| 478 | 590 | ||
| 591 | #ifdef DOUBLESPACE_LAYER_ENABLE | ||
| 592 | void process_doublespace(bool pressed, bool *isactive, bool *otheractive, bool *isemitted) { | ||
| 593 | if (pressed) { | ||
| 594 | *isactive = true; | ||
| 595 | if (*otheractive) { | ||
| 596 | layer_on(_SPACE); | ||
| 597 | register_code(KC_LALT); // sends alt and enter layer | ||
| 598 | space_layer_entered = true; | ||
| 599 | } | ||
| 600 | } else { | ||
| 601 | *isactive = false; | ||
| 602 | if (space_layer_entered) { | ||
| 603 | unregister_code(KC_LALT); // release alt and exit layer | ||
| 604 | layer_off(_SPACE); | ||
| 605 | if (!*otheractive) { | ||
| 606 | space_layer_entered = false; | ||
| 607 | } | ||
| 608 | } else { | ||
| 609 | if (!*isemitted) { | ||
| 610 | register_code(KC_SPC); | ||
| 611 | unregister_code(KC_SPC); | ||
| 612 | } | ||
| 613 | *isemitted = false; | ||
| 614 | } | ||
| 615 | } | ||
| 616 | } | ||
| 617 | #endif | ||
| 618 | |||
| 479 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | 619 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { |
| 480 | // faux clicky | 620 | // faux clicky |
| 481 | // if (record->event.pressed) PLAY_NOTE_ARRAY(tone_click, false, 0); | 621 | // if (record->event.pressed) PLAY_NOTE_ARRAY(tone_click, false, 0); |
| @@ -493,27 +633,57 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||
| 493 | #endif | 633 | #endif |
| 494 | #endif | 634 | #endif |
| 495 | 635 | ||
| 496 | bool lshifted = keyboard_report->mods & MOD_BIT(KC_LSFT); | 636 | bool lshift = keyboard_report->mods & MOD_BIT(KC_LSFT); |
| 497 | bool rshifted = keyboard_report->mods & MOD_BIT(KC_RSFT); | 637 | bool rshift = keyboard_report->mods & MOD_BIT(KC_RSFT); |
| 638 | |||
| 639 | #ifdef DOUBLESPACE_LAYER_ENABLE | ||
| 640 | // double-space: send space immediately if any other key depressed before space is released | ||
| 641 | if ((lspace_active ^ rspace_active) | ||
| 642 | && keycode != LSPACE | ||
| 643 | && keycode != RSPACE | ||
| 644 | && record->event.pressed) | ||
| 645 | { | ||
| 646 | if (lspace_active) { | ||
| 647 | if (!lspace_emitted) { | ||
| 648 | register_code(KC_SPC); | ||
| 649 | unregister_code(KC_SPC); | ||
| 650 | } | ||
| 651 | lspace_emitted = true; | ||
| 652 | } | ||
| 653 | if (rspace_active) { | ||
| 654 | if (!rspace_emitted) { | ||
| 655 | register_code(KC_SPC); | ||
| 656 | unregister_code(KC_SPC); | ||
| 657 | } | ||
| 658 | rspace_emitted = true; | ||
| 659 | } | ||
| 660 | } | ||
| 661 | |||
| 662 | if (layer == _SPACE && keycode != S(KC_TAB) && keycode != KC_TAB && keycode != KC_ESC && keycode != XXXXXXX) { | ||
| 663 | if (record->event.pressed) { | ||
| 664 | unregister_code(KC_LALT); | ||
| 665 | } else { | ||
| 666 | register_code(KC_LALT); | ||
| 667 | } | ||
| 668 | } | ||
| 669 | #endif | ||
| 498 | 670 | ||
| 499 | switch (keycode) { | 671 | switch (keycode) { |
| 500 | // Greek layer handling | 672 | |
| 501 | case GREEK: | 673 | #ifdef DOUBLESPACE_LAYER_ENABLE |
| 502 | if (record->event.pressed) { | 674 | // double-space enter space layer |
| 503 | if (lshifted || rshifted) { | 675 | case LSPACE: |
| 504 | layer_on(_GREEKU); | 676 | process_doublespace(record->event.pressed, &lspace_active, &rspace_active, &lspace_emitted); |
| 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; | 677 | return false; |
| 515 | break; | 678 | break; |
| 679 | case RSPACE: | ||
| 680 | process_doublespace(record->event.pressed, &rspace_active, &lspace_active, &rspace_emitted); | ||
| 681 | return false; | ||
| 682 | break; | ||
| 683 | #endif | ||
| 516 | 684 | ||
| 685 | // handle greek layer shift | ||
| 686 | // handle both shift = capslock | ||
| 517 | case KC_LSFT: | 687 | case KC_LSFT: |
| 518 | case KC_RSFT: | 688 | case KC_RSFT: |
| 519 | ; | 689 | ; |
| @@ -523,11 +693,34 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||
| 523 | layer_on(_GREEKU); | 693 | layer_on(_GREEKU); |
| 524 | layer_off(_GREEKL); | 694 | layer_off(_GREEKL); |
| 525 | } else { | 695 | } else { |
| 526 | if (lshifted ^ rshifted) { // if only one shift is pressed | 696 | if (lshift ^ rshift) { // if only one shift was pressed |
| 527 | layer_on(_GREEKL); | 697 | layer_on(_GREEKL); |
| 528 | layer_off(_GREEKU); | 698 | layer_off(_GREEKU); |
| 529 | } | 699 | } |
| 530 | } | 700 | } |
| 701 | } else { | ||
| 702 | if (record->event.pressed) { | ||
| 703 | if (lshift ^ rshift) { // if only one shift was pressed | ||
| 704 | register_code(KC_CAPS); | ||
| 705 | unregister_code(KC_CAPS); | ||
| 706 | } | ||
| 707 | } | ||
| 708 | } | ||
| 709 | return true; | ||
| 710 | break; | ||
| 711 | |||
| 712 | // press both ctrls to activate SYS layer | ||
| 713 | case KC_LCTL: | ||
| 714 | case KC_RCTL: | ||
| 715 | ; | ||
| 716 | bool lctrl = keyboard_report->mods & MOD_BIT(KC_LCTL); | ||
| 717 | bool rctrl = keyboard_report->mods & MOD_BIT(KC_RCTL); | ||
| 718 | if (record->event.pressed) { | ||
| 719 | if (lctrl ^ rctrl) { // if only one ctrl was pressed | ||
| 720 | layer_on(_SYS); | ||
| 721 | } | ||
| 722 | } else { | ||
| 723 | layer_off(_SYS); | ||
| 531 | } | 724 | } |
| 532 | return true; | 725 | return true; |
| 533 | break; | 726 | break; |
| @@ -535,13 +728,13 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||
| 535 | // QWERTZ style comma and dot: semicolon and colon when shifted | 728 | // QWERTZ style comma and dot: semicolon and colon when shifted |
| 536 | case KC_COMM: | 729 | case KC_COMM: |
| 537 | if (record->event.pressed) { | 730 | if (record->event.pressed) { |
| 538 | if (lshifted || rshifted) { | 731 | if (lshift || rshift) { |
| 539 | if (lshifted) unregister_code(KC_LSFT); | 732 | if (lshift) unregister_code(KC_LSFT); |
| 540 | if (rshifted) unregister_code(KC_RSFT); | 733 | if (rshift) unregister_code(KC_RSFT); |
| 541 | register_code(KC_SCLN); | 734 | register_code(KC_SCLN); |
| 542 | unregister_code(KC_SCLN); | 735 | unregister_code(KC_SCLN); |
| 543 | if (lshifted) register_code(KC_LSFT); | 736 | if (lshift) register_code(KC_LSFT); |
| 544 | if (rshifted) register_code(KC_RSFT); | 737 | if (rshift) register_code(KC_RSFT); |
| 545 | } else { | 738 | } else { |
| 546 | register_code(KC_COMM); | 739 | register_code(KC_COMM); |
| 547 | unregister_code(KC_COMM); | 740 | unregister_code(KC_COMM); |
| @@ -565,53 +758,73 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||
| 565 | // layout switcher | 758 | // layout switcher |
| 566 | case QWERTY: | 759 | case QWERTY: |
| 567 | if (record->event.pressed) { | 760 | if (record->event.pressed) { |
| 568 | #ifdef AUDIO_ENABLE | ||
| 569 | PLAY_NOTE_ARRAY(tone_qwerty, false, 0); | ||
| 570 | #endif | ||
| 571 | persistant_default_layer_set(1UL<<_QWERTY); | 761 | persistant_default_layer_set(1UL<<_QWERTY); |
| 572 | } | 762 | } |
| 573 | return false; | 763 | return false; |
| 574 | break; | 764 | break; |
| 765 | #ifdef LAYOUT_DVORAK | ||
| 766 | case DVORAK: | ||
| 767 | if (record->event.pressed) { | ||
| 768 | persistant_default_layer_set(1UL<<_DVORAK); | ||
| 769 | } | ||
| 770 | return false; | ||
| 771 | break; | ||
| 772 | #endif | ||
| 773 | #ifdef LAYOUT_COLEMAK | ||
| 575 | case COLEMAK: | 774 | case COLEMAK: |
| 576 | if (record->event.pressed) { | 775 | if (record->event.pressed) { |
| 577 | #ifdef AUDIO_ENABLE | ||
| 578 | PLAY_NOTE_ARRAY(tone_colemak, false, 0); | ||
| 579 | #endif | ||
| 580 | persistant_default_layer_set(1UL<<_COLEMAK); | 776 | persistant_default_layer_set(1UL<<_COLEMAK); |
| 581 | } | 777 | } |
| 582 | return false; | 778 | return false; |
| 583 | break; | 779 | break; |
| 780 | #endif | ||
| 781 | #ifdef LAYOUT_WORKMAN | ||
| 584 | case WORKMAN: | 782 | case WORKMAN: |
| 585 | if (record->event.pressed) { | 783 | if (record->event.pressed) { |
| 586 | #ifdef AUDIO_ENABLE | ||
| 587 | PLAY_NOTE_ARRAY(tone_workman, false, 0); | ||
| 588 | #endif | ||
| 589 | persistant_default_layer_set(1UL<<_WORKMAN); | 784 | persistant_default_layer_set(1UL<<_WORKMAN); |
| 590 | } | 785 | } |
| 591 | return false; | 786 | return false; |
| 592 | break; | 787 | break; |
| 788 | #endif | ||
| 789 | #ifdef LAYOUT_NORMAN | ||
| 790 | case NORMAN: | ||
| 791 | if (record->event.pressed) { | ||
| 792 | persistant_default_layer_set(1UL<<_NORMAN); | ||
| 793 | } | ||
| 794 | return false; | ||
| 795 | break; | ||
| 796 | #endif | ||
| 593 | 797 | ||
| 594 | // layer switchers | 798 | // layer switchers |
| 595 | case PUNC: | 799 | case PUNC: |
| 596 | if (record->event.pressed) { | 800 | if (record->event.pressed) { |
| 597 | layer_on(_PUNC); | 801 | layer_on(_PUNC); |
| 598 | update_tri_layer(_PUNC, _EMOJI, _GUI); | 802 | update_tri_layer(_PUNC, _GREEKL, _EMOJI); |
| 599 | } else { | 803 | } else { |
| 600 | layer_off(_PUNC); | 804 | layer_off(_PUNC); |
| 601 | update_tri_layer(_PUNC, _EMOJI, _GUI); | 805 | update_tri_layer(_PUNC, _GREEKL, _EMOJI); |
| 602 | } | 806 | } |
| 603 | return false; | 807 | return false; |
| 604 | break; | 808 | break; |
| 605 | case EMOJI: | 809 | |
| 810 | case GREEK: | ||
| 606 | if (record->event.pressed) { | 811 | if (record->event.pressed) { |
| 607 | layer_on(_EMOJI); | 812 | if (lshift || rshift) { |
| 608 | update_tri_layer(_PUNC, _EMOJI, _GUI); | 813 | layer_on(_GREEKU); |
| 814 | layer_off(_GREEKL); | ||
| 815 | } else { | ||
| 816 | layer_on(_GREEKL); | ||
| 817 | layer_off(_GREEKU); | ||
| 818 | update_tri_layer(_PUNC, _GREEKL, _EMOJI); | ||
| 819 | } | ||
| 609 | } else { | 820 | } else { |
| 610 | layer_off(_EMOJI); | 821 | layer_off(_GREEKU); |
| 611 | update_tri_layer(_PUNC, _EMOJI, _GUI); | 822 | layer_off(_GREEKL); |
| 823 | update_tri_layer(_PUNC, _GREEKL, _EMOJI); | ||
| 612 | } | 824 | } |
| 613 | return false; | 825 | return false; |
| 614 | break; | 826 | break; |
| 827 | |||
| 615 | case NUM: | 828 | case NUM: |
| 616 | if (record->event.pressed) { | 829 | if (record->event.pressed) { |
| 617 | layer_on(_NUM); | 830 | layer_on(_NUM); |
| @@ -651,6 +864,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||
| 651 | #endif | 864 | #endif |
| 652 | return false; | 865 | return false; |
| 653 | break; | 866 | break; |
| 867 | |||
| 868 | // faux clicky toggle, TBD | ||
| 869 | case FC_TOG: | ||
| 870 | return true; | ||
| 871 | break; | ||
| 872 | |||
| 654 | } | 873 | } |
| 655 | return true; | 874 | return true; |
| 656 | } | 875 | } |
| @@ -677,4 +896,17 @@ void shutdown_user() | |||
| 677 | stop_all_notes(); | 896 | stop_all_notes(); |
| 678 | } | 897 | } |
| 679 | 898 | ||
| 680 | #endif \ No newline at end of file | 899 | #endif |
| 900 | |||
| 901 | void matrix_scan_user(void) { | ||
| 902 | } | ||
| 903 | |||
| 904 | void led_set_user(uint8_t usb_led) { | ||
| 905 | } | ||
| 906 | |||
| 907 | void turn_off_capslock() { | ||
| 908 | if (capslock) { | ||
| 909 | register_code(KC_CAPS); | ||
| 910 | unregister_code(KC_CAPS); | ||
| 911 | } | ||
| 912 | } | ||
