keymap.c 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427
  1. /*
  2. * Keyboard: Ergodox
  3. * Keymap: replicaJunction
  4. * Version: 2.1
  5. */
  6. #include QMK_KEYBOARD_H
  7. #include "config.h"
  8. #include "replicaJunction.h"
  9. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  10. [L_COLEMAK] = LAYOUT_ergodox(
  11. //--------|--------|--------|--------|--------|--------|--------|
  12. KC_ESC ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_GRV ,
  13. //--------|--------|--------|--------|--------|--------|--------|
  14. KX_ECTL ,KC_Q ,KC_W ,KC_F ,KC_P ,KC_B ,KC_LBRC ,
  15. //--------|--------|--------|--------|--------|--------|--------|
  16. KC_TAB ,KC_A ,KC_R_LT ,KC_S_LT ,KC_T ,KC_G,
  17. //--------|--------|--------|--------|--------|--------|--------|
  18. KC_LSFT ,KX_Z_MT ,KX_X_MT ,KX_C_MT ,KX_D_MT ,KC_V ,KC_RBRC ,
  19. //--------|--------|--------|--------|--------|--------|--------|
  20. TD_LAYR ,KC_LGUI ,KC_HYPR ,KX_CTSF ,KC_LCTL ,
  21. //--------|--------|--------|--------|--------|--------|--------|
  22. KC_HOME ,KC_END ,
  23. // |--------|--------|
  24. KC_PGUP ,
  25. // |--------|--------|--------|
  26. KX_BKNM ,KX_DCTL ,KC_PGDN ,
  27. // |--------|--------|--------|
  28. //--------|--------|--------|--------|--------|--------|-------|
  29. TG_GAME ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_EQL ,
  30. //--------|--------|--------|--------|--------|--------|-------|
  31. KC_DEL ,KC_J ,KC_L ,KC_U ,KC_Y ,KC_SCLN ,KC_BSLS,
  32. //--------|--------|--------|--------|--------|--------|-------|
  33. KC_M ,KC_N ,KC_E_LT ,KC_I_LT ,KC_O ,KC_QUOT,
  34. //--------|--------|--------|--------|--------|--------|-------|
  35. KC_LOCK ,KC_K ,KX_H_MT ,KX_COMT ,KX_DOMT ,KX_SLMT ,KC_RSFT,
  36. //--------|--------|--------|--------|--------|--------|-------|
  37. KC_LALT ,KC_MINS ,KC_QUOT ,KC_EQL ,TT_NUM ,
  38. //--------|--------|--------|--------|--------|--------|-------|
  39. KC_LEFT ,KC_RGHT ,
  40. //--------|--------|
  41. KC_UP ,
  42. //--------|--------|--------|
  43. KC_DOWN ,KX_NALT ,KX_SPAC
  44. //--------|--------|--------|
  45. ),
  46. [L_QWERTY] = LAYOUT_ergodox(
  47. //--------|--------|--------|--------|--------|--------|--------|
  48. _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,
  49. //--------|--------|--------|--------|--------|--------|--------|
  50. _______ ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,_______ ,
  51. //--------|--------|--------|--------|--------|--------|--------|
  52. _______ ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,
  53. //--------|--------|--------|--------|--------|--------|--------|
  54. _______ ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,_______ ,
  55. //--------|--------|--------|--------|--------|--------|--------|
  56. _______ ,_______ ,_______ ,_______ ,_______ ,
  57. //--------|--------|--------|--------|--------|--------|--------|
  58. _______ ,_______ ,
  59. // |--------|--------|
  60. _______ ,
  61. // |--------|--------|--------|
  62. _______ ,_______ ,_______ ,
  63. // |--------|--------|--------|
  64. //--------|--------|--------|--------|--------|--------|--------|
  65. _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,KC_EQL ,
  66. //--------|--------|--------|--------|--------|--------|--------|
  67. _______ ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,_______ ,
  68. //--------|--------|--------|--------|--------|--------|--------|
  69. KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,KC_QUOT ,
  70. //--------|--------|--------|--------|--------|--------|--------|
  71. KC_LOCK ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_RSPC ,
  72. //--------|--------|--------|--------|--------|--------|--------|
  73. KC_RALT ,KC_MINS ,KC_QUOT ,KC_EQL ,TT_NUM ,
  74. //--------|--------|--------|--------|--------|--------|--------|
  75. KC_LEFT ,KC_RGHT ,
  76. //--------|--------|
  77. KC_UP ,
  78. //--------|--------|--------|
  79. KC_DOWN ,KX_NALT ,KX_SPAC
  80. //--------|--------|--------|
  81. ),
  82. [L_NUM] = LAYOUT_ergodox(
  83. //--------|--------|--------|--------|--------|--------|--------|
  84. _______ ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,_______ ,
  85. //--------|--------|--------|--------|--------|--------|--------|
  86. _______ ,KC_EXLM ,KC_AT ,KC_LCBR ,KC_RCBR ,KC_SLSH ,_______ ,
  87. //--------|--------|--------|--------|--------|--------|--------|
  88. _______ ,KC_HASH ,KC_DLR ,KC_LPRN ,KC_RPRN ,KC_PIPE,
  89. //--------|--------|--------|--------|--------|--------|--------|
  90. _______ ,KC_PERC ,KC_CIRC ,KC_LBRC ,KC_RBRC ,KC_BSLS ,_______ ,
  91. //--------|--------|--------|--------|--------|--------|--------|
  92. _______ ,_______ ,KC_AMPR ,KC_LABK ,KC_RABK,
  93. //--------|--------|--------|--------|--------|--------|--------|
  94. _______ ,_______ ,
  95. // |--------|--------|
  96. _______ ,
  97. // |--------|--------|--------|
  98. _______ ,_______ ,_______ ,
  99. // |--------|--------|--------|
  100. //--------|--------|--------|--------|--------|--------|--------|
  101. _______ ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_F11 ,
  102. //--------|--------|--------|--------|--------|--------|--------|
  103. _______ ,KC_COLN ,KC_P7 ,KC_P8 ,KC_P9 ,KC_PSLS ,KC_F12 ,
  104. //--------|--------|--------|--------|--------|--------|--------|
  105. KC_HASH ,KC_P4 ,KC_P5 ,KC_P6 ,KC_PAST ,KC_BSPC ,
  106. //--------|--------|--------|--------|--------|--------|--------|
  107. _______ ,KC_BSPC ,KC_P1 ,KC_P2 ,KC_P3 ,KC_PMNS ,KC_TAB ,
  108. //--------|--------|--------|--------|--------|--------|--------|
  109. KC_P0 ,KC_PDOT ,KC_PEQL ,KC_PPLS ,_______ ,
  110. //--------|--------|--------|--------|--------|--------|--------|
  111. _______ ,_______ ,
  112. //--------|--------|
  113. _______ ,
  114. //--------|--------|--------|
  115. _______ ,KC_PENT ,MO_FUNC
  116. //--------|--------|--------|
  117. ),
  118. [L_EXTEND] = LAYOUT_ergodox(
  119. //--------|--------|--------|--------|--------|--------|--------|
  120. _______ ,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11,
  121. //--------|--------|--------|--------|--------|--------|--------|
  122. _______ ,_______ ,_______ ,_______ ,KC_APP ,KX_CGR, KC_VOLU,
  123. //--------|--------|--------|--------|--------|--------|--------|
  124. _______ ,KC_LGUI, KC_LSFT, KC_LALT, KC_LCTL, _______ ,
  125. //--------|--------|--------|--------|--------|--------|--------|
  126. _______ ,_______ ,_______ ,_______ ,KX_SRCH, KX_PAST, KC_VOLD,
  127. //--------|--------|--------|--------|--------|--------|--------|
  128. _______ ,_______ ,_______ ,_______ ,_______ ,
  129. //--------|--------|--------|--------|--------|--------|--------|
  130. _______ ,_______ ,
  131. // |--------|--------|--------|
  132. _______ ,
  133. // |--------|--------|--------|
  134. MO_FUNC, _______ ,_______ ,
  135. // |--------|--------|--------|
  136. //--------|--------|--------|--------|--------|--------|--------|
  137. KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______ ,
  138. //--------|--------|--------|--------|--------|--------|--------|
  139. _______ ,KC_PGUP, KC_HOME, KC_UP, KC_END, KC_DEL, _______ ,
  140. //--------|--------|--------|--------|--------|--------|--------|
  141. KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_BSPC, KC_MENU,
  142. //--------|--------|--------|--------|--------|--------|--------|
  143. _______ ,_______ ,KX_STAB, KC_TAB, _______ ,KC_INS, KC_PSCR,
  144. //--------|--------|--------|--------|--------|--------|--------|
  145. _______ ,_______ ,_______ ,KC_PSCR, _______ ,
  146. //--------|--------|--------|--------|--------|--------|--------|
  147. _______ ,_______ ,
  148. //--------|--------|--------|--------|--------|--------|--------|
  149. _______ ,
  150. //--------|--------|--------|--------|--------|--------|--------|
  151. _______ ,_______ ,_______
  152. //--------|--------|--------|--------|--------|--------|--------|
  153. ),
  154. [L_FUNC] = LAYOUT_ergodox(
  155. //--------|--------|--------|--------|--------|--------|--------|
  156. _______ ,KC_F11 ,KC_F12 ,KC_F13 ,KC_F14 ,KC_F15 ,_______ ,
  157. //--------|--------|--------|--------|--------|--------|--------|
  158. _______ ,_______ ,_______ ,M_LCLIK, M_RCLIK, M_MCLIK, _______ ,
  159. //--------|--------|--------|--------|--------|--------|--------|
  160. _______ ,KC_LGUI, KC_LSFT, KC_LALT, KC_LCTL, M_WHLUP,
  161. //--------|--------|--------|--------|--------|--------|--------|
  162. _______ ,M_LEFT, M_DOWN, M_UP ,M_RIGHT, M_WHLDN, _______ ,
  163. //--------|--------|--------|--------|--------|--------|--------|
  164. _______ ,_______ ,_______ ,_______ ,_______ ,
  165. //--------|--------|--------|--------|--------|--------|--------|
  166. _______ ,_______ ,
  167. // |--------|--------|--------|
  168. _______ ,
  169. // |--------|--------|--------|
  170. _______ ,_______ ,_______ ,
  171. // |--------|--------|--------|
  172. //--------|--------|--------|--------|--------|--------|--------|
  173. _______ ,KC_F16 ,KC_F17 ,KC_F18 ,KC_F19 ,KC_F20 ,_______ ,
  174. //--------|--------|--------|--------|--------|--------|--------|
  175. _______ ,KC_VOLU, KC_F9, KC_F10, KC_F11, KC_F12, _______ ,
  176. //--------|--------|--------|--------|--------|--------|--------|
  177. KC_MUTE, KC_F5, KC_F6, KC_F7, KC_F8, _______ ,
  178. //--------|--------|--------|--------|--------|--------|--------|
  179. _______ ,KC_VOLD, KC_F1, KC_F2, KC_F3, KC_F4, _______ ,
  180. //--------|--------|--------|--------|--------|--------|--------|
  181. _______ ,_______ ,_______ ,_______ ,_______ ,
  182. //--------|--------|--------|--------|--------|--------|--------|
  183. _______ ,_______ ,
  184. //--------|--------|--------|--------|--------|--------|--------|
  185. _______ ,
  186. //--------|--------|--------|--------|--------|--------|--------|
  187. _______ ,_______ ,_______
  188. //--------|--------|--------|--------|--------|--------|--------|
  189. ),
  190. [L_GAMING] = LAYOUT_ergodox(
  191. //--------|--------|--------|--------|--------|--------|--------|
  192. _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,
  193. //--------|--------|--------|--------|--------|--------|--------|
  194. KC_ESC ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,
  195. //--------|--------|--------|--------|--------|--------|--------|
  196. _______ ,_______ ,KC_R ,KC_S ,_______ ,_______ ,
  197. //--------|--------|--------|--------|--------|--------|--------|
  198. KC_LSFT, _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,
  199. //--------|--------|--------|--------|--------|--------|--------|
  200. _______ ,_______ ,_______ ,KC_LALT ,KC_LCTL ,
  201. //--------|--------|--------|--------|--------|--------|--------|
  202. _______ ,_______ ,
  203. // |--------|--------|
  204. _______ ,
  205. // |--------|--------|--------|
  206. KC_SPC, KC_LSFT, _______ ,
  207. // |--------|--------|--------|
  208. //--------|--------|--------|--------|--------|--------|--------|
  209. _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,
  210. //--------|--------|--------|--------|--------|--------|--------|
  211. _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,
  212. //--------|--------|--------|--------|--------|--------|--------|
  213. _______ ,_______ ,KC_E ,KC_I ,_______ ,_______ ,
  214. //--------|--------|--------|--------|--------|--------|--------|
  215. _______ ,_______ ,_______ ,_______ ,_______ ,KC_UP, KC_SLSH,
  216. //--------|--------|--------|--------|--------|--------|--------|
  217. _______ ,_______ ,KC_LEFT, KC_DOWN, KC_RGHT,
  218. //--------|--------|--------|--------|--------|--------|--------|
  219. M_MCLIK ,_______ ,
  220. //--------|--------|--------|--------|--------|--------|--------|
  221. M_RCLIK ,
  222. //--------|--------|--------|--------|--------|--------|--------|
  223. M_LCLIK ,KC_ENT ,KC_BSPC
  224. //--------|--------|--------|--------|--------|--------|--------|
  225. )
  226. ,
  227. // "Letter Layers"
  228. [L_LL_R] = LAYOUT_ergodox(
  229. //--------|--------|--------|--------|--------|--------|--------|
  230. _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,
  231. //--------|--------|--------|--------|--------|--------|--------|
  232. _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,
  233. //--------|--------|--------|--------|--------|--------|--------|
  234. _______ ,_______ ,ooooooo ,KC_AMPR ,KC_PIPE ,_______ ,
  235. //--------|--------|--------|--------|--------|--------|--------|
  236. _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,
  237. //--------|--------|--------|--------|--------|--------|--------|
  238. _______ ,_______ ,_______ ,_______ ,_______ ,
  239. //--------|--------|--------|--------|--------|--------|--------|
  240. _______ ,_______ ,
  241. // |--------|--------|
  242. _______ ,
  243. // |--------|--------|--------|
  244. _______ ,_______ ,_______ ,
  245. // |--------|--------|--------|
  246. //--------|--------|--------|--------|--------|--------|--------|
  247. _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,
  248. //--------|--------|--------|--------|--------|--------|--------|
  249. _______ ,KC_COLN ,KC_P7 ,KC_P8 ,KC_P9 ,KC_PSLS ,_______ ,
  250. //--------|--------|--------|--------|--------|--------|--------|
  251. KC_HASH ,KC_P4 ,KC_P5 ,KC_P6 ,KC_PAST ,KC_TAB ,
  252. //--------|--------|--------|--------|--------|--------|--------|
  253. _______ ,KC_BSPC ,KC_P1 ,KC_P2 ,KC_P3 ,KC_PMNS ,_______ ,
  254. //--------|--------|--------|--------|--------|--------|--------|
  255. KC_P0 ,KC_PDOT ,KC_PEQL ,KC_PPLS ,_______ ,
  256. //--------|--------|--------|--------|--------|--------|--------|
  257. _______ ,_______ ,
  258. //--------|--------|
  259. _______ ,
  260. //--------|--------|--------|
  261. _______ ,KC_PENT ,MO_FUNC
  262. //--------|--------|--------|
  263. )
  264. ,
  265. [L_LL_E] = LAYOUT_ergodox(
  266. //--------|--------|--------|--------|--------|--------|--------|
  267. _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,
  268. //--------|--------|--------|--------|--------|--------|--------|
  269. RJ_QMKV ,RJ_MAKE ,RJ_EQ ,RJ_LEQ ,RJ_GEQ ,RJ_GEQR ,_______ ,
  270. //--------|--------|--------|--------|--------|--------|--------|
  271. _______ ,_______ ,_______ ,RJ_SELS ,RJ_DUND ,_______ ,
  272. //--------|--------|--------|--------|--------|--------|--------|
  273. _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,
  274. //--------|--------|--------|--------|--------|--------|--------|
  275. _______ ,_______ ,_______ ,_______ ,_______ ,
  276. //--------|--------|--------|--------|--------|--------|--------|
  277. _______ ,_______ ,
  278. // |--------|--------|
  279. _______ ,
  280. // |--------|--------|--------|
  281. _______ ,_______ ,_______ ,
  282. // |--------|--------|--------|
  283. //--------|--------|--------|--------|--------|--------|--------|
  284. _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,
  285. //--------|--------|--------|--------|--------|--------|--------|
  286. _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,
  287. //--------|--------|--------|--------|--------|--------|--------|
  288. _______ ,_______ ,ooooooo ,_______ ,_______ ,_______ ,
  289. //--------|--------|--------|--------|--------|--------|--------|
  290. _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,
  291. //--------|--------|--------|--------|--------|--------|--------|
  292. _______ ,_______ ,_______ ,_______ ,_______ ,
  293. //--------|--------|--------|--------|--------|--------|--------|
  294. _______ ,_______ ,
  295. //--------|--------|
  296. _______ ,
  297. //--------|--------|--------|
  298. _______ ,_______ ,_______
  299. //--------|--------|--------|
  300. )
  301. ,
  302. [L_LL_I] = LAYOUT_ergodox(
  303. //--------|--------|--------|--------|--------|--------|--------|
  304. _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,
  305. //--------|--------|--------|--------|--------|--------|--------|
  306. _______ ,KC_EXLM ,KC_AT ,KC_LCBR ,KC_RCBR ,KC_SLSH ,_______ ,
  307. //--------|--------|--------|--------|--------|--------|--------|
  308. _______ ,KC_HASH ,KC_DLR ,KC_LPRN ,KC_RPRN ,KC_PIPE,
  309. //--------|--------|--------|--------|--------|--------|--------|
  310. _______ ,KC_PERC ,KC_CIRC ,KC_LBRC ,KC_RBRC ,KC_BSLS ,_______ ,
  311. //--------|--------|--------|--------|--------|--------|--------|
  312. _______ ,_______ ,KC_AMPR ,KC_LABK ,KC_RABK,
  313. //--------|--------|--------|--------|--------|--------|--------|
  314. _______ ,_______ ,
  315. // |--------|--------|
  316. _______ ,
  317. // |--------|--------|--------|
  318. _______ ,_______ ,_______ ,
  319. // |--------|--------|--------|
  320. //--------|--------|--------|--------|--------|--------|--------|
  321. _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,
  322. //--------|--------|--------|--------|--------|--------|--------|
  323. _______ ,_______ ,KC_UNDS, KC_GRV ,_______ ,_______ ,_______ ,
  324. //--------|--------|--------|--------|--------|--------|--------|
  325. _______ ,KC_MINS ,KC_QUOT ,ooooooo ,_______ ,_______ ,
  326. //--------|--------|--------|--------|--------|--------|--------|
  327. _______ ,_______ ,KC_TILD, KC_DQT ,_______ ,_______ ,_______ ,
  328. //--------|--------|--------|--------|--------|--------|--------|
  329. _______ ,_______ ,_______ ,_______ ,_______ ,
  330. //--------|--------|--------|--------|--------|--------|--------|
  331. _______ ,_______ ,
  332. //--------|--------|--------|--------|--------|--------|--------|
  333. _______ ,
  334. //--------|--------|--------|--------|--------|--------|--------|
  335. _______ ,_______ ,_______
  336. //--------|--------|--------|--------|--------|--------|--------|
  337. )
  338. };
  339. // The normal QMK functions ending in _user are overridden in the
  340. // replicaJunction userspace. Those functions handle my global
  341. // settings, and redirect to these _keymap functions if something
  342. // is unhandled. This allows me to keep most of my global preferences
  343. // in one place while still allowing keyboard-specific code.
  344. // The idea was shamelessly copied from the amazing Drashna.
  345. // Nothing to do here, so I've commented it out.
  346. // bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
  347. // return true;
  348. // }
  349. // void matrix_init_keymap(void) {};
  350. void matrix_scan_keymap(void) {
  351. uint8_t layer = biton32(layer_state);
  352. // uint8_t default_layer = biton32(layer_state);
  353. ergodox_board_led_off();
  354. switch (layer) {
  355. case L_COLEMAK:
  356. ergodox_right_led_1_on();
  357. ergodox_right_led_2_off();
  358. ergodox_right_led_3_off();
  359. break;
  360. case L_NUM:
  361. ergodox_right_led_1_on();
  362. ergodox_right_led_2_on();
  363. ergodox_right_led_3_off();
  364. break;
  365. case L_EXTEND:
  366. ergodox_right_led_1_on();
  367. ergodox_right_led_2_off();
  368. ergodox_right_led_3_on();
  369. break;
  370. case L_FUNC:
  371. ergodox_right_led_1_on();
  372. ergodox_right_led_2_on();
  373. ergodox_right_led_3_on();
  374. break;
  375. case L_GAMING:
  376. ergodox_right_led_1_off();
  377. ergodox_right_led_2_on();
  378. ergodox_right_led_3_on();
  379. break;
  380. default:
  381. // none
  382. break;
  383. }
  384. };