Guest User

Untitled

a guest
Jun 19th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.41 KB | None | 0 0
  1. #include QMK_KEYBOARD_H
  2. #include "debug.h"
  3. #include "action_layer.h"
  4. #include "version.h"
  5.  
  6. enum custom_keycodes {
  7. PLACEHOLDER = SAFE_RANGE, // can always be here
  8. EPRM,
  9. VRSN,
  10. RGB_SLD,
  11. MACRO_ARROW,
  12. MACRO_FAT_ARROW
  13. };
  14.  
  15. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  16.  
  17. [0] = LAYOUT_ergodox(// Left Side
  18. // First Row
  19. KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LCBR,
  20. // Second Row
  21. KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T,
  22. // First Verical Key
  23. KC_LPRN,
  24. // Third Row
  25. KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G,
  26. // Fourth Row
  27. KC_LSHIFT, GUI_T(KC_Z), KC_X, KC_C, KC_V, KC_B,
  28. // Second Vertical Key
  29. KC_LBRACKET,
  30. // Fifth Row
  31. KC_LCTL, KC_LALT, GUI_T(KC_NO), KC_TRANSPARENT, KC_EQUAL,
  32.  
  33. // Left Thumb Culster
  34. KC_TRANSPARENT,
  35. KC_TRANSPARENT,
  36. KC_TRANSPARENT,
  37. LT(1, KC_ENTER),
  38. KC_UNDS,
  39. KC_ENTER,
  40.  
  41. // Right Side
  42. // First Row
  43. KC_RCBR, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPACE,
  44. // First Vertical Key
  45. KC_RPRN,
  46. // Second Row
  47. KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLASH,
  48. // Third Row
  49. KC_H, KC_J, KC_K, KC_L, KC_SCOLON, GUI_T(KC_QUOTE),
  50. //Second vertical Key
  51. KC_RBRACKET,
  52. // Fourth Row
  53. KC_N, KC_M, KC_COMMA, KC_DOT, LT(2, KC_SLASH), KC_RSHIFT,
  54. // Fifth Row
  55. KC_MINUS, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
  56.  
  57. // Right Thumb Cluster
  58. KC_LEFT,
  59. KC_RIGHT,
  60. KC_UP,
  61. KC_SPACE,
  62. KC_BSPACE,
  63. LT(1, KC_SPACE)),
  64.  
  65. [1] = LAYOUT_ergodox(// Left Side
  66. // First Row
  67. KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
  68. // Second Row
  69. KC_TRANSPARENT, KC_QUOTE, KC_PLUS, KC_EQUAL, KC_CIRCUMFLEX, KC_TILDE,
  70. // First Verical Key
  71. KC_TRANSPARENT,
  72. // Third Row
  73. KC_ESCAPE, KC_AMPERSAND, KC_AT, KC_DOLLAR, KC_PERCENT, KC_RABK,
  74. // Fourth Row
  75. KC_LEFT_PAREN, KC_0, KC_ASTERISK, KC_LCBR, KC_RCBR, KC_LBRACKET,
  76. // Second Vertical Key
  77. KC_RBRACKET,
  78. // Fifth Row
  79. KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
  80.  
  81. // Left Thumb Culster
  82. KC_TRANSPARENT,
  83. KC_TRANSPARENT,
  84. KC_TRANSPARENT,
  85. KC_TRANSPARENT,
  86. KC_TRANSPARENT,
  87. KC_TRANSPARENT,
  88.  
  89. // Right Side
  90. // First Row
  91. KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
  92. // First Vertical Key
  93. KC_TRANSPARENT,
  94. // Second Row
  95. KC_QUESTION, KC_UNDERSCORE, KC_PLUS, KC_PIPE, KC_PLUS, KC_BSLASH,
  96. // Third Row
  97. KC_HASH, KC_AMPERSAND, KC_ASTERISK, KC_LABK, KC_COLON, KC_ENTER,
  98. //Second vertical Key
  99. KC_TRANSPARENT,
  100. // Fourth Row
  101. KC_EXCLAIM, KC_MINUS, KC_COMMA, MACRO_ARROW, MACRO_FAT_ARROW, KC_RIGHT_PAREN,
  102. // Fifth Row
  103. KC_MINUS, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
  104.  
  105. // Right Thumb Cluster
  106. KC_LEFT,
  107. KC_RIGHT,
  108. KC_UP,
  109. KC_TRANSPARENT,
  110. KC_BSPACE,
  111. RCTL_T(KC_SPACE)),
  112.  
  113.  
  114. [2] = LAYOUT_ergodox(KC_TRANSPARENT,
  115. KC_TRANSPARENT,
  116. KC_TRANSPARENT,
  117. KC_TRANSPARENT,
  118. KC_TRANSPARENT,
  119. KC_TRANSPARENT,
  120. KC_TRANSPARENT,
  121. KC_TRANSPARENT,
  122. KC_TRANSPARENT,
  123. KC_TRANSPARENT,
  124. KC_MS_UP,
  125. KC_TRANSPARENT,
  126. KC_TRANSPARENT,
  127. KC_TRANSPARENT,
  128. KC_TRANSPARENT,
  129. KC_TRANSPARENT,
  130. KC_MS_LEFT,
  131. KC_MS_DOWN,
  132. KC_MS_RIGHT,
  133. KC_TRANSPARENT,
  134. KC_TRANSPARENT,
  135. KC_TRANSPARENT,
  136. KC_TRANSPARENT,
  137. KC_TRANSPARENT,
  138. KC_TRANSPARENT,
  139. KC_TRANSPARENT,
  140. KC_TRANSPARENT,
  141. KC_TRANSPARENT,
  142. KC_TRANSPARENT,
  143. KC_TRANSPARENT,
  144. KC_MS_BTN1,
  145. KC_MS_BTN2,
  146. KC_TRANSPARENT,
  147. KC_TRANSPARENT,
  148. KC_TRANSPARENT,
  149. KC_MS_BTN1,
  150. KC_MS_BTN2,
  151. KC_TRANSPARENT,
  152. KC_TRANSPARENT,
  153. KC_TRANSPARENT,
  154. KC_TRANSPARENT,
  155. KC_TRANSPARENT,
  156. KC_TRANSPARENT,
  157. KC_TRANSPARENT,
  158. KC_TRANSPARENT,
  159. KC_TRANSPARENT,
  160. KC_TRANSPARENT,
  161. KC_TRANSPARENT,
  162. KC_TRANSPARENT,
  163. KC_TRANSPARENT,
  164. KC_TRANSPARENT,
  165. KC_TRANSPARENT,
  166. KC_TRANSPARENT,
  167. KC_TRANSPARENT,
  168. KC_TRANSPARENT,
  169. KC_TRANSPARENT,
  170. KC_TRANSPARENT,
  171. KC_MEDIA_PLAY_PAUSE,
  172. KC_TRANSPARENT,
  173. KC_TRANSPARENT,
  174. KC_TRANSPARENT,
  175. KC_MEDIA_PREV_TRACK,
  176. KC_MEDIA_NEXT_TRACK,
  177. KC_TRANSPARENT,
  178. KC_TRANSPARENT,
  179. KC_AUDIO_VOL_UP,
  180. KC_AUDIO_VOL_DOWN,
  181. KC_AUDIO_MUTE,
  182. KC_TRANSPARENT,
  183. KC_TRANSPARENT,
  184. KC_TRANSPARENT,
  185. KC_TRANSPARENT,
  186. KC_TRANSPARENT,
  187. KC_TRANSPARENT,
  188. KC_TRANSPARENT,
  189. KC_WWW_BACK),
  190. };
  191.  
  192. const uint16_t PROGMEM fn_actions[] = {
  193. [1] = ACTION_LAYER_TAP_TOGGLE(1)
  194. };
  195.  
  196. // leaving this in place for compatibilty with old keymaps cloned and re-compiled.
  197. const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
  198. {
  199. switch(id) {
  200. case 0:
  201. if (record->event.pressed) {
  202. SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
  203. }
  204. break;
  205. }
  206. return MACRO_NONE;
  207. };
  208.  
  209. void matrix_init_user(void) {
  210. #ifdef RGBLIGHT_COLOR_LAYER_0
  211. rgblight_setrgb(RGBLIGHT_COLOR_LAYER_0);
  212. #endif
  213. };
  214.  
  215. bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  216. switch (keycode) {
  217. // dynamically generate these.
  218. case EPRM:
  219. if (record->event.pressed) {
  220. eeconfig_init();
  221. }
  222. return false;
  223. break;
  224. case VRSN:
  225. if (record->event.pressed) {
  226. SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
  227. }
  228. return false;
  229. break;
  230. case RGB_SLD:
  231. if (record->event.pressed) {
  232. rgblight_mode(1);
  233. }
  234. return false;
  235. break;
  236. case MACRO_ARROW:
  237. if (record->event.pressed) {
  238. SEND_STRING("->");
  239. }
  240. break;
  241. case MACRO_FAT_ARROW:
  242. if (record->event.pressed) {
  243. SEND_STRING("=>");
  244. }
  245. break;
  246. }
  247. return true;
  248. }
  249.  
  250. uint32_t layer_state_set_user(uint32_t state) {
  251.  
  252. uint8_t layer = biton32(state);
  253.  
  254. ergodox_board_led_off();
  255. ergodox_right_led_1_off();
  256. ergodox_right_led_2_off();
  257. ergodox_right_led_3_off();
  258. switch (layer) {
  259. case 0:
  260. #ifdef RGBLIGHT_COLOR_LAYER_0
  261. rgblight_setrgb(RGBLIGHT_COLOR_LAYER_0);
  262. #endif
  263. break;
  264. case 1:
  265. ergodox_right_led_1_on();
  266. #ifdef RGBLIGHT_COLOR_LAYER_1
  267. rgblight_setrgb(RGBLIGHT_COLOR_LAYER_1);
  268. #endif
  269. break;
  270. case 2:
  271. ergodox_right_led_2_on();
  272. #ifdef RGBLIGHT_COLOR_LAYER_2
  273. rgblight_setrgb(RGBLIGHT_COLOR_LAYER_2);
  274. #endif
  275. break;
  276. case 3:
  277. ergodox_right_led_3_on();
  278. #ifdef RGBLIGHT_COLOR_LAYER_3
  279. rgblight_setrgb(RGBLIGHT_COLOR_LAYER_3);
  280. #endif
  281. break;
  282. case 4:
  283. ergodox_right_led_1_on();
  284. ergodox_right_led_2_on();
  285. #ifdef RGBLIGHT_COLOR_LAYER_4
  286. rgblight_setrgb(RGBLIGHT_COLOR_LAYER_4);
  287. #endif
  288. break;
  289. case 5:
  290. ergodox_right_led_1_on();
  291. ergodox_right_led_3_on();
  292. #ifdef RGBLIGHT_COLOR_LAYER_5
  293. rgblight_setrgb(RGBLIGHT_COLOR_LAYER_5);
  294. #endif
  295. break;
  296. case 6:
  297. ergodox_right_led_2_on();
  298. ergodox_right_led_3_on();
  299. #ifdef RGBLIGHT_COLOR_LAYER_6
  300. rgblight_setrgb(RGBLIGHT_COLOR_LAYER_6);
  301. #endif
  302. break;
  303. case 7:
  304. ergodox_right_led_1_on();
  305. ergodox_right_led_2_on();
  306. ergodox_right_led_3_on();
  307. #ifdef RGBLIGHT_COLOR_LAYER_7
  308. rgblight_setrgb(RGBLIGHT_COLOR_LAYER_6);
  309. #endif
  310. break;
  311. default:
  312. break;
  313. }
  314. return state;
  315.  
  316. };
Add Comment
Please, Sign In to add comment