2
0

keymap.c 7.0 KB

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