keymap.c 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. #include QMK_KEYBOARD_H
  2. #define BASE 0 // default layer
  3. #define SYMB 1 // symbols
  4. #define MDIA 2 // media keys
  5. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  6. /* Keymap 0: Basic layer
  7. *
  8. * ,--------------------------------------------------. ,--------------------------------------------------.
  9. * | ` | 1 | 2 | 3 | 4 | 5 | F5 | |Hypr+M| 6 | 7 | 8 | 9 | 0 | Mute |
  10. * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
  11. * | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \ |
  12. * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
  13. * | LGui | A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
  14. * |--------+------+------+------+------+------| SYMB | | MDIA |------+------+------+------+------+--------|
  15. * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
  16. * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
  17. * |Ca/Ctl| { | ( | | | : | | - | = | ) | } |C`/Ctl|
  18. * `----------------------------------' `----------------------------------'
  19. * ,-------------. ,-------------.
  20. * | LGA | LAlt | | RAlt | Play |
  21. * ,------|------|------| |------+------+------.
  22. * | | | Home | | PgUp | | |
  23. * |Backsp| Esc |------| |------|Enter |Space |
  24. * |ace | | End | | PgDn | | |
  25. * `--------------------' `--------------------'
  26. */
  27. // If it accepts an argument (i.e, is a function), it doesn't need KC_.
  28. // Otherwise, it needs KC_*
  29. [BASE] = LAYOUT_ergodox( // layer 0 : default
  30. // left hand
  31. KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_F5,
  32. KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC,
  33. KC_LGUI, KC_A, KC_S, KC_D, KC_F, KC_G,
  34. KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, TG(SYMB),
  35. KC_NO, KC_LCBR, KC_LPRN,KC_PIPE,KC_COLN,
  36. LGUI(KC_LALT), KC_LALT,
  37. KC_HOME,
  38. KC_BSPC, KC_ESC, KC_END,
  39. // right hand
  40. HYPR(KC_M), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MUTE,
  41. KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
  42. KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
  43. TG(MDIA), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
  44. KC_MINS, KC_EQL, KC_RPRN, KC_RCBR, KC_NO,
  45. KC_RALT, KC_MPLY,
  46. KC_PGUP,
  47. KC_PGDN, KC_ENT, KC_SPC
  48. ),
  49. /* Keymap 1: Symbol Layer
  50. *
  51. * ,--------------------------------------------------. ,--------------------------------------------------.
  52. * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
  53. * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
  54. * | | ! | @ | { | } | | | | | | | | | | | F12 |
  55. * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
  56. * | | # | $ | ( | ) | ` |------| |------| Left | Down | Up | Right| | |
  57. * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
  58. * | | % | ^ | [ | ] | ~ | | | | | | | | | |
  59. * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
  60. * | | | | | | | | | | | |
  61. * `----------------------------------' `----------------------------------'
  62. * ,-------------. ,-------------.
  63. * | | | | | |
  64. * ,------|------|------| |------+------+------.
  65. * | | | | | | | |
  66. * | | |------| |------| | |
  67. * | | | | | | | |
  68. * `--------------------' `--------------------'
  69. */
  70. // SYMBOLS
  71. [SYMB] = LAYOUT_ergodox(
  72. // left hand
  73. KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
  74. KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
  75. KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
  76. KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
  77. KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
  78. KC_TRNS,KC_TRNS,
  79. KC_TRNS,
  80. KC_TRNS,KC_TRNS,KC_TRNS,
  81. // right hand
  82. KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
  83. KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12,
  84. KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS,
  85. KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
  86. KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
  87. KC_TRNS, KC_TRNS,
  88. KC_TRNS,
  89. KC_TRNS, KC_TRNS, KC_TRNS
  90. ),
  91. /* Keymap 2: Media and mouse keys
  92. *
  93. * ,--------------------------------------------------. ,--------------------------------------------------.
  94. * | | | | | | | | | | | | | | | |
  95. * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
  96. * | | | | | | | | | | | | | | | |
  97. * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
  98. * | | | | | | |------| |------|MsLeft|MsDown| MsUp |MsRght| | |
  99. * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
  100. * | | | | | | | | | | | | | | | |
  101. * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
  102. * |VolUp |VolDn | Prev | Next | | | LClk | RClk | | | |
  103. * `----------------------------------' `----------------------------------'
  104. * ,-------------. ,-------------.
  105. * | | | | | |
  106. * ,------|------|------| |------+------+------.
  107. * | | | | | | | |
  108. * | | |------| |------| | |
  109. * | | | | | | | |
  110. * `--------------------' `--------------------'
  111. */
  112. // MEDIA AND MOUSE
  113. [MDIA] = LAYOUT_ergodox(
  114. KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
  115. KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
  116. KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
  117. KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
  118. KC_VOLU, KC_VOLD, KC_MPRV, KC_MNXT, KC_TRNS,
  119. KC_TRNS, KC_TRNS,
  120. KC_TRNS,
  121. KC_TRNS, KC_TRNS, KC_TRNS,
  122. // right hand
  123. KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
  124. KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
  125. KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_TRNS, KC_TRNS,
  126. KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
  127. KC_BTN1, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS,
  128. KC_TRNS, KC_TRNS,
  129. KC_TRNS,
  130. KC_TRNS, KC_TRNS, KC_WBAK
  131. ),
  132. };
  133. // Runs constantly in the background, in a loop.
  134. void matrix_scan_user(void) {
  135. ergodox_board_led_off();
  136. ergodox_right_led_1_off();
  137. ergodox_right_led_2_off();
  138. ergodox_right_led_3_off();
  139. switch (get_highest_layer(layer_state)) {
  140. // TODO: Make this relevant to the ErgoDox EZ.
  141. case 1:
  142. ergodox_right_led_1_on();
  143. break;
  144. case 2:
  145. ergodox_right_led_2_on();
  146. break;
  147. default:
  148. // none
  149. break;
  150. }
  151. }