keymap.c 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. #include QMK_KEYBOARD_H
  2. #define KC_MO1 MO(1)
  3. #define KC_MO2 MO(2)
  4. #define KC_MO3 MO(3)
  5. #define KC_LM4 LM(4, MOD_LSFT)
  6. #define KC_MTCM MT(MOD_LCTL, KC_MINS)
  7. #define KC_MTSG MT(MOD_LSFT, KC_GRV)
  8. #define KC_MTSW MT(MOD_RSFT, KC_RGUI)
  9. #define KC_MTSC MT(MOD_RSFT, KC_CAPS)
  10. #define KC_MTCT MT(MOD_LCTL, KC_TAB)
  11. #define KC_BLTG BL_TOGG
  12. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  13. [0] = LAYOUT_kc(
  14. ESC, Q, W, F, P, G, J, L, U, Y, SCLN, QUOT, BSPC,
  15. MTCT, A, R, S, T, D, H, N, E, I, O, ENT,
  16. LSFT, Z, X, C, V, B, K, M, COMM, DOT, SLSH, MTSC,
  17. MTSG, LGUI, LM4, MO2, MO1, SPC, MTSW, RALT, MO3, MTCM),
  18. [1] = LAYOUT_kc(
  19. TRNS, FN10, FN11, FN12, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, UP, DEL,
  20. TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, HOME, PGUP, LEFT, RGHT,
  21. TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, END, PGDN, DOWN, TRNS,
  22. TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS),
  23. [2] = LAYOUT_kc(
  24. TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, 7, 8, 9, 0, TRNS, TRNS,
  25. TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, LBRC, 4, 5, 6, DOT, TRNS,
  26. TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, RBRC, 1, 2, 3, BSLS, TRNS,
  27. TRNS, BLTG, TRNS, TRNS, TRNS, PAUSE, EQL, MINS, TRNS, TRNS),
  28. [3] = LAYOUT_kc(
  29. TRNS, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12,
  30. TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
  31. TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
  32. TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS),
  33. [4] = LAYOUT_kc(
  34. TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, 7, 8, 9, 0, TRNS, TRNS,
  35. TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, LBRC, 4, 5, 6, DOT, TRNS,
  36. TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, RBRC, 1, 2, 3, BSLS, TRNS,
  37. TRNS, BLTG, TRNS, TRNS, TRNS, PAUSE, EQL, MINS, TRNS, TRNS),
  38. };
  39. enum macro_id
  40. {
  41. PSWD1,
  42. PSWD2,
  43. PSWD3,
  44. };
  45. const uint16_t PROGMEM fn_actions[] = {
  46. [10] = ACTION_MACRO(PSWD1),
  47. [11] = ACTION_MACRO(PSWD2),
  48. [12] = ACTION_MACRO(PSWD3)
  49. };
  50. /*
  51. * Macro definition
  52. */
  53. const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
  54. {
  55. switch (id)
  56. {
  57. case PSWD1:
  58. return (record->event.pressed ? MACRO(I(0), T(1), T(2), T(3), T(4), T(5), T(6), T(7), T(8), T(ENT), END) : MACRO_NONE);
  59. case PSWD2:
  60. return (record->event.pressed ? MACRO(I(0), T(1), T(2), T(3), T(4), T(5), T(6), T(7), T(8), T(ENT), END) : MACRO_NONE);
  61. case PSWD3:
  62. return (record->event.pressed ? MACRO(I(0), T(1), T(2), T(3), T(4), T(5), T(6), T(7), T(8), T(ENT), END) : MACRO_NONE);
  63. //case VOLUP:
  64. // return (record->event.pressed ?
  65. // MACRO( D(VOLU), U(VOLU), END ) :
  66. // MACRO_NONE );
  67. //case ALT_TAB:
  68. // return (record->event.pressed ?
  69. // MACRO( D(LALT), D(TAB), END ) :
  70. // MACRO( U(TAB), END ));
  71. }
  72. return MACRO_NONE;
  73. }