keymap.c 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. #include QMK_KEYBOARD_H
  2. #include "version.h"
  3. #include "rishka.h"
  4. enum layers {
  5. BASE, // default layer
  6. WIN, // Switch keys that are needed in windows
  7. SYMB, // symbols
  8. MDIA, // media keys
  9. GAME, // Gamepad setup
  10. FIRMWARE // Layer to trigger reset/refresh
  11. };
  12. enum custom_keycodes {
  13. VRSN = SAFE_RANGE,
  14. RGB_SLD
  15. };
  16. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  17. [BASE] = LAYOUT_ergodox_pretty_wrapper(
  18. KC_EQL, ________________NUMBERS_L__________________, TG(WIN), OSX_LOCK, ________________NUMBERS_R__________________, KC_MINS,
  19. KC_DELT, _________________QWERTY_L1_________________, TG(SYMB), TG(SYMB), _________________QWERTY_R1_________________, KC_BSLS,
  20. KC_BSPC, _____________MOD_QWERTY_L2_________________, _____________MOD_QWERTY_R2_________________, LT(MDIA, KC_QUOT),
  21. OS_LSFT, _________________QWERTY_L3_________________, ALL_T(KC_NO), TG(MDIA), _________________QWERTY_R3_________________, OS_RSFT,
  22. LT(SYMB,KC_GRV), KC_QUOT, LALT(KC_LSFT), KC_LEFT, KC_RGHT, KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, OSL(SYMB),
  23. ALT_T(KC_APP), TG(GAME), KC_LALT, CTL_T(KC_ESC),
  24. LT(FIRMWARE, KC_HOME), KC_PGUP,
  25. KC_SPC, GUI_T(KC_BSPC), ALT_T(KC_END), GUI_T(KC_PGDN), CTL_T(KC_TAB), ALT_T(KC_ENT)
  26. ),
  27. [WIN] = LAYOUT_ergodox_pretty_wrapper(
  28. _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
  29. KC_F1, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
  30. KC_TAB, _________________QWERTY_L2_________________, _______, _______, _______, _______, _______, _______,
  31. _______, _______, _______, _______, _______, _______, KC_LGUI, _______, _______, _______, _______, _______, _______, _______,
  32. KC_LCTL, _______, KC_LALT, _______, _______, _______, _______, _______, _______, _______,
  33. _______, KC_ESC, _______, _______,
  34. _______, _______,
  35. _______, KC_BSPC, KC_LALT, KC_PGDN, CTL_T(KC_TAB), _______
  36. ),
  37. [SYMB] = LAYOUT_ergodox_pretty_wrapper(
  38. VRSN, ______________________F_L__________________, KC_F11, KC_F12 , ______________________F_R__________________, KC_NLCK,
  39. _______, _________________SYMBOL_L1_________________, _______, _______, _________________SYMBOL_R1_________________, _______,
  40. _______, _________________SYMBOL_L2_________________, _________________SYMBOL_R2_________________, _______,
  41. _______, _________________SYMBOL_L3_________________, _______, _______, _________________SYMBOL_R3_________________, _______,
  42. _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_PSLS, _______,
  43. RGB_MOD, RGB_VAI, RGB_HUI, RGB_SLD,
  44. RGB_VAD, RGB_HUD,
  45. _______, _______, _______, RGB_TOG, _______, _______
  46. ),
  47. [MDIA] = LAYOUT_ergodox(
  48. // left hand
  49. _______, _______, _______, _______, _______, _______, _______,
  50. _______, _______, _______, KC_MS_U, _______, KC_WH_U, _______,
  51. _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D,
  52. _______, _______, _______, _______, _______, _______, _______,
  53. _______, _______, _______, KC_BTN1, KC_BTN2,
  54. _______, KC_BTN5,
  55. KC_BTN4,
  56. KC_BTN1, KC_BTN2, KC_BTN3,
  57. // right hand
  58. _______, _______, _______, _______, _______, _______, _______,
  59. _______, _______, _______, KC_WH_U, _______, _______, _______,
  60. _______, KC_WH_L, KC_WH_D, KC_WH_R, _______, KC_MPLY,
  61. _______, _______, _______, KC_MPRV, KC_MNXT, _______, _______,
  62. KC_VOLU, KC_VOLD, KC_MUTE, _______, _______,
  63. _______, _______,
  64. _______,
  65. KC_ACL2, KC_ACL1, KC_ACL0
  66. ),
  67. [GAME] = LAYOUT_ergodox(
  68. // left hand
  69. KC_ESCAPE, KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5,
  70. KC_F1, KC_Y, KC_Q, KC_W, KC_E, KC_R, KC_T,
  71. KC_TAB, KC_LSHIFT, KC_A, KC_S, KC_D, KC_F,
  72. KC_LCTRL, KC_B, KC_Z, KC_X, KC_C, KC_V, KC_G,
  73. LT(BASE, KC_L), KC_J, KC_I, KC_O, KC_M,
  74. KC_ESCAPE, _______,
  75. KC_ENTER,
  76. KC_SPACE, KC_LCTRL, KC_LALT,
  77. // right hand
  78. KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
  79. TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
  80. KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN), GUI_T(KC_QUOT),
  81. MEH_T(KC_NO), KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), KC_RSFT,
  82. KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, TT(SYMB),
  83. KC_LALT, CTL_T(KC_ESC),
  84. KC_PGUP,
  85. KC_PGDN, KC_TAB, KC_ENT
  86. ),
  87. [FIRMWARE] = LAYOUT_ergodox(
  88. // left hand
  89. _______, _______, _______, _______, _______, _______, _______,
  90. _______, _______, _______, _______, _______, _______, _______,
  91. _______, _______, _______, _______, _______, _______,
  92. _______, _______, _______, _______, _______, _______, _______,
  93. _______, _______, _______, _______, _______,
  94. _______, _______,
  95. _______,
  96. RESET, _______, _______,
  97. // right hand
  98. _______, _______, _______, _______, _______, _______, _______,
  99. _______, _______, _______, _______, _______, _______, _______,
  100. _______, _______, _______, _______, _______, _______,
  101. _______, _______, _______, _______, _______, _______, _______,
  102. _______, _______, _______, _______, _______,
  103. _______, _______,
  104. _______,
  105. _______, _______, EEP_RST
  106. ),
  107. };
  108. bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  109. if (record->event.pressed) {
  110. switch (keycode) {
  111. case VRSN:
  112. SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
  113. return false;
  114. #ifdef RGBLIGHT_ENABLE
  115. case RGB_SLD:
  116. rgblight_mode(1);
  117. return false;
  118. #endif
  119. }
  120. }
  121. return true;
  122. }
  123. // Runs just one time when the keyboard initializes.
  124. void keyboard_post_init_user(void) {
  125. #ifdef RGBLIGHT_COLOR_LAYER_0
  126. rgblight_setrgb(RGBLIGHT_COLOR_LAYER_0);
  127. #endif
  128. };
  129. // Runs whenever there is a layer state change.
  130. uint32_t layer_state_set_user(layer_state_t state) {
  131. ergodox_board_led_off();
  132. ergodox_right_led_1_off();
  133. ergodox_right_led_2_off();
  134. ergodox_right_led_3_off();
  135. uint8_t layer = get_highest_layer(state);
  136. switch (layer) {
  137. case 0:
  138. #ifdef RGBLIGHT_COLOR_LAYER_0
  139. rgblight_setrgb(RGBLIGHT_COLOR_LAYER_0);
  140. #else
  141. #ifdef RGBLIGHT_ENABLE
  142. rgblight_init();
  143. #endif
  144. #endif
  145. break;
  146. case 1:
  147. ergodox_right_led_1_on();
  148. #ifdef RGBLIGHT_COLOR_LAYER_1
  149. rgblight_setrgb(RGBLIGHT_COLOR_LAYER_1);
  150. #endif
  151. break;
  152. case 2:
  153. ergodox_right_led_2_on();
  154. #ifdef RGBLIGHT_COLOR_LAYER_2
  155. rgblight_setrgb(RGBLIGHT_COLOR_LAYER_2);
  156. #endif
  157. break;
  158. case 3:
  159. ergodox_right_led_3_on();
  160. #ifdef RGBLIGHT_COLOR_LAYER_3
  161. rgblight_setrgb(RGBLIGHT_COLOR_LAYER_3);
  162. #endif
  163. break;
  164. case 4:
  165. ergodox_right_led_1_on();
  166. ergodox_right_led_2_on();
  167. #ifdef RGBLIGHT_COLOR_LAYER_4
  168. rgblight_setrgb(RGBLIGHT_COLOR_LAYER_4);
  169. #endif
  170. break;
  171. case 5:
  172. ergodox_right_led_1_on();
  173. ergodox_right_led_3_on();
  174. #ifdef RGBLIGHT_COLOR_LAYER_5
  175. rgblight_setrgb(RGBLIGHT_COLOR_LAYER_5);
  176. #endif
  177. break;
  178. case 6:
  179. ergodox_right_led_2_on();
  180. ergodox_right_led_3_on();
  181. #ifdef RGBLIGHT_COLOR_LAYER_6
  182. rgblight_setrgb(RGBLIGHT_COLOR_LAYER_6);
  183. #endif
  184. break;
  185. case 7:
  186. ergodox_right_led_1_on();
  187. ergodox_right_led_2_on();
  188. ergodox_right_led_3_on();
  189. #ifdef RGBLIGHT_COLOR_LAYER_7
  190. rgblight_setrgb(RGBLIGHT_COLOR_LAYER_7);
  191. #endif
  192. break;
  193. default:
  194. break;
  195. }
  196. return state;
  197. };