keymap.c 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. #include QMK_KEYBOARD_H
  2. // Keyboard layer definitions
  3. #define BASE 0
  4. #define NUMBERS 1
  5. #define SYMBOLS 2
  6. #define MEDIA 3
  7. // Keyboard macro defintions
  8. #define GIT_ST M(0)
  9. #define GIT_PU M(1)
  10. #define GIT_CM M(2)
  11. #define HM_DIR M(3)
  12. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  13. /* Level 0: Default Layer
  14. * ,---------------------------------------------------------------------------------------.
  15. * | Q | W | E | R | T | Y | U | I | O | P | BSP |
  16. * |---------------------------------------------------------------------------------------|
  17. * | A | S | D | F | G | H | J | K | L | ENT | RSFT |
  18. * |---------------------------------------------------------------------------------------|
  19. * |LT(2|Z)|LT(3|X)| C | V | B | SPC | N | M | , |LT(1|.)| RCTL |
  20. * |---------------------------------------------------------------------------------------|
  21. */
  22. [BASE] = LAYOUT_ortho_3x11(
  23. KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
  24. KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, KC_RSFT,
  25. LT(2, KC_Z), LT(3, KC_X), KC_C, KC_V, KC_B, KC_SPC, KC_N, KC_M, KC_COMMA, LT(1, KC_DOT), KC_RCTL
  26. ),
  27. /* Level 1: Numbers Layer
  28. * ,---------------------------------------------------------------------------------------.
  29. * | ESC | 7 | 8 | 9 | / | * | . | , | ( | ) | DEL |
  30. * |---------------------------------------------------------------------------------------|
  31. * | TAB | 4 | 5 | 6 | - | + | HOME | UP | END | INS | PGUP |
  32. * |---------------------------------------------------------------------------------------|
  33. * | LATL | 1 | 2 | 3 | 0 | ENT | LEFT | DOWN | RGHT | !TRNS!| PGDN |
  34. * |---------------------------------------------------------------------------------------|
  35. */
  36. [NUMBERS] = LAYOUT_ortho_3x11(
  37. KC_ESC, KC_7, KC_8, KC_9, KC_SLSH, KC_ASTR, KC_DOT, KC_COMM, KC_LPRN, KC_RPRN, KC_DEL,
  38. KC_TAB, KC_4, KC_5, KC_6, KC_MINS, KC_PLUS, KC_HOME, KC_UP, KC_END, KC_INSERT, KC_PGUP,
  39. KC_LALT, KC_1, KC_2, KC_3, KC_0, KC_ENT, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_PGDN
  40. ),
  41. /* Level 2: Symbols Layer
  42. * ,---------------------------------------------------------------------------------------.
  43. * | ! | @ | # | $ | % | ^ | & | * | _ | = | ? |
  44. * |---------------------------------------------------------------------------------------|
  45. * | RESET | LSFT | ~ | { | } | \ | | | ; | : | ` | " |
  46. * |---------------------------------------------------------------------------------------|
  47. * | !TRNS!| LCTL | TRNS | [ | ] | TAB | < | > | TRNS | RCTL | TRNS |
  48. * |---------------------------------------------------------------------------------------|
  49. */
  50. [SYMBOLS] = LAYOUT_ortho_3x11(
  51. KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_UNDS, KC_EQL, KC_QUES,
  52. RESET, KC_LSFT, KC_TILD, KC_LCBR, KC_RCBR, KC_BSLS, KC_PIPE, KC_SCLN, KC_COLN, KC_GRV, KC_DQUO,
  53. _______, KC_LCTL, _______, KC_LBRC, KC_RBRC, KC_TAB, KC_LABK, KC_RABK, _______, KC_RCTL, _______
  54. ),
  55. /* Level 3: Media Layer
  56. * ,---------------------------------------------------------------------------------------.
  57. * |RGB_TOG|RGB_HUI|RGB_SAI|RGB_VAI| GIT_CM| CALC | WREF | WFAV | MUTE | VOLD | VOLU |
  58. * |---------------------------------------------------------------------------------------|
  59. * |RGB_MOD|RGB_HUD|RGB_SAD|RGB_VAD| GIT_ST| WHOM | WBAK | WFWD | TRNS | STOP | PLAY |
  60. * |---------------------------------------------------------------------------------------|
  61. * | TRNS | !TRNS!| TRNS | HM_DIR| GIT_PU| MYCM | WSTP | WSCH | MSEL | MPRV | MNXT |
  62. * |---------------------------------------------------------------------------------------|
  63. */
  64. [MEDIA] = LAYOUT_ortho_3x11(
  65. RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, GIT_CM, KC_CALC, KC_WREF, KC_WFAV, KC_MUTE, KC_VOLD, KC_VOLU,
  66. RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, GIT_ST, KC_WHOM, KC_WBAK, KC_WFWD, _______, KC_MSTP, KC_MPLY,
  67. _______, _______, _______, HM_DIR, GIT_PU, KC_MYCM, KC_WSTP, KC_WSCH, KC_MSEL, KC_MPRV, KC_MNXT
  68. )
  69. };
  70. void press_and_release_key(uint8_t code)
  71. {
  72. register_code(code);
  73. unregister_code(code);
  74. }
  75. void press_and_release_mod_key(uint8_t mod, uint8_t code)
  76. {
  77. register_code(mod);
  78. register_code(code);
  79. unregister_code(code);
  80. unregister_code(mod);
  81. }
  82. const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
  83. {
  84. // MACRODOWN only works in this function
  85. switch(id)
  86. {
  87. case 0:
  88. if (record->event.pressed)
  89. {
  90. return MACRO(T(G), T(I), T(T), T(SPC),
  91. T(S), T(T), T(A), T(T), T(U), T(S), END);
  92. }
  93. break;
  94. case 1:
  95. if (record->event.pressed)
  96. {
  97. return MACRO(T(G), T(I), T(T), T(SPC),
  98. T(P), T(U), T(L), T(L), END);
  99. }
  100. break;
  101. case 2:
  102. if (record->event.pressed)
  103. {
  104. return MACRO(T(G), T(I), T(T), T(SPC),
  105. T(C), T(O), T(M), T(M), T(I), T(T), END);
  106. }
  107. break;
  108. case 3:
  109. if (record->event.pressed)
  110. {
  111. /*press_and_release_key(KC_C);
  112. press_and_release_key(KC_D);
  113. press_and_release_key(KC_SPC);
  114. press_and_release_mod_key(KC_LSFT, KC_GRV);
  115. press_and_release_key(KC_SLSH);
  116. press_and_release_key(KC_Q);
  117. press_and_release_key(KC_M);
  118. press_and_release_key(KC_K);
  119. press_and_release_mod_key(KC_LSFT, KC_MINS);*/
  120. return MACRO(I(0),
  121. T(C), T(D), T(SPC),
  122. D(LSFT), T(GRV), U(LSFT), T(SLSH),
  123. T(Q), T(M), T(K), D(LSFT), T(MINS), U(LSFT),
  124. T(F), T(I), T(R), T(M), T(W), T(A), T(R), T(E), T(SLSH),
  125. T(K), T(E), T(Y), T(B), T(O), T(A), T(R), T(D), T(S), T(SLSH),
  126. T(M), T(I), T(U), T(N), T(I), T(3), T(2), T(SLSH),
  127. T(K), T(E), T(Y), T(M), T(A), T(P), T(S), END);
  128. }
  129. }
  130. return MACRO_NONE;
  131. };
  132. void matrix_init_user(void) {
  133. }
  134. void matrix_scan_user(void) {
  135. }
  136. bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  137. return true;
  138. }
  139. void led_set_user(uint8_t usb_led) {
  140. if (usb_led & (1 << USB_LED_NUM_LOCK)) {
  141. } else {
  142. }
  143. if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
  144. } else {
  145. }
  146. if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
  147. } else {
  148. }
  149. if (usb_led & (1 << USB_LED_COMPOSE)) {
  150. } else {
  151. }
  152. if (usb_led & (1 << USB_LED_KANA)) {
  153. } else {
  154. }
  155. }