You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

192 lines
9.6 KiB

  1. #include QMK_KEYBOARD_H
  2. extern keymap_config_t keymap_config;
  3. #define _CX 0 // Carpalx layer
  4. #define _QW 1 // Qwerty layer
  5. #define _KP 2 // Keypad + Media Layer
  6. // Macro name shortcuts
  7. #define DVORAK M(_DV)
  8. #define QWERTY M(_QW)
  9. #define COLEMAK M(_CM)
  10. /*
  11. Function Keys on All Layers (Keypad toggles):
  12. ,---------------------------------------------------------------.
  13. | L0 | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 |
  14. `---------------------------------------------------------------'
  15. ,---------------------------------------------------------------.
  16. | F9 | F10 | F11 | F12 | PSCR | L1 | L2 | L2 | RESET |
  17. `---------------------------------------------------------------'
  18. L0 Carpalx layer:
  19. ,-------------------------------------------.,-------------------------------------------.
  20. | Del | 1 | 3 | 5 | 7 | 9 || 0 | 8 | 6 | 4 | 2 | - |
  21. |--------+------+------+------+------+------||------+------+------+------+------+--------|
  22. | Tab | Q | G | M | L | W || B | Y | U | V | ; | = |
  23. |--------+------+------+------+------+------||------+------+------+------+------+--------|
  24. | ESC | D | S | T | N | R || I | A | E | O | H | ' |
  25. |--------+------+------+------+------+------||------+------+------+------+------+--------|
  26. | LShift | Z | X | C | F | J || K | P | , | . | / | RShift |
  27. `--------+------+------+------+------+------'`------+------+------+------+------+--------'
  28. | ` | [ | Left | Rght | | Dn | Up | ] | \ |
  29. `---------------------------' `---------------------------'
  30. ,----------------.,----------------.
  31. | LCtl | LAlt || LAlt | RCtl |
  32. ,------|-------|--------||--------+-------+-------.
  33. | | | RGUI || RGUI | | |
  34. | BkSp | ESC |--------||--------| Enter | Space |
  35. | | | MO(L2) || MO(L2) | | |
  36. `-----------------------'`------------------------'
  37. L1 QWERTY layer:
  38. ,-------------------------------------------.,-------------------------------------------.
  39. | Del | 1 | 3 | 5 | 7 | 9 || 0 | 8 | 6 | 4 | 2 | - |
  40. |--------+------+------+------+------+------||------+------+------+------+------+--------|
  41. | Tab | Q | W | E | R | T || Y | U | I | O | P | = |
  42. |--------+------+------+------+------+------||------+------+------+------+------+--------|
  43. | ESC | A | S | D | F | G || H | J | K | L | ; | ' |
  44. |--------+------+------+------+------+------||------+------+------+------+------+--------|
  45. | LShift | Z | X | C | V | B || N | M | , | . | / | RShift |
  46. `--------+------+------+------+------+------'`------+------+------+------+------+--------'
  47. | ` | [ | Left | Rght | | Dn | Up | ] | \ |
  48. `---------------------------' `---------------------------'
  49. ,----------------.,----------------.
  50. | LCtl | LAlt || LAlt | RCtl |
  51. ,------|-------|--------||--------+-------+-------.
  52. | | | RGUI || RGUI | | |
  53. | BkSp | ESC |--------||--------| Enter | Space |
  54. | | | MO(L1) || MO(L2) | | |
  55. `-----------------------'`------------------------'
  56. L2 Keypad + Media layer:
  57. ,-------------------------------------------.,-------------------------------------------.
  58. | | | | | | || | NmLk | KP = | KP / | KP * | |
  59. |--------+------+------+------+------+------||------+------+------+------+------+--------|
  60. | | | Mute | Vol- | Vol+ | || | KP 7 | KP 8 | KP 9 | KP - | |
  61. |--------+------+------+------+------+------||------+------+------+------+------+--------|
  62. | | Stop | Prev | Play | Next | Sel || | KP 4 | KP 5 | KP 6 | KP + | |
  63. |--------+------+------+------+------+------||------+------+------+------+------+--------|
  64. | | | | | | || | KP 1 | KP 2 | KP 3 |KP Ent| |
  65. `--------+------+------+------+------+------'`------+------+------+------+------+--------'
  66. | | | | | | ( | ) | KP . |KP Ent| |
  67. `---------------------------' `----------------------------------'
  68. ,----------------.,----------------.
  69. | | || | |
  70. ,------|-------|--------||--------+-------+-------.
  71. | | | || | | |
  72. | | |--------||--------|KP Entr| KP 0 |
  73. | | | || | | |
  74. `-----------------------'`------------------------'
  75. */
  76. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  77. [_CX] = LAYOUT(
  78. // Left Hand
  79. TO(_CX), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8,
  80. KC_DEL, KC_1, KC_3, KC_5, KC_7, KC_9,
  81. KC_TAB, KC_Q, KC_G, KC_M, KC_L, KC_W,
  82. KC_ESC, KC_D, KC_S, KC_T, KC_N, KC_R,
  83. KC_LSFT, KC_Z, KC_X, KC_C, KC_F, KC_J,
  84. KC_GRV, KC_LBRC, KC_LEFT, KC_RGHT,
  85. // Left Thumb
  86. KC_LCTL, KC_LALT,
  87. KC_RGUI,
  88. KC_BSPC, KC_ESC, MO(_KP),
  89. // Right Hand
  90. KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, TO(_QW), TO(_KP), TO(_KP), RESET,
  91. KC_0, KC_8, KC_6, KC_4, KC_2, KC_MINS,
  92. KC_B, KC_Y, KC_U, KC_V, KC_SCLN, KC_EQL,
  93. KC_I, KC_A, KC_E, KC_O, KC_H, KC_QUOT,
  94. KC_K, KC_P, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
  95. KC_DOWN, KC_UP, KC_RBRC, KC_BSLS,
  96. // Right Thumb
  97. KC_RALT, KC_RCTL,
  98. KC_RGUI,
  99. MO(_KP), KC_ENT, KC_SPC
  100. ),
  101. [_QW] = LAYOUT(
  102. // Left Hand
  103. _______, _______, _______, _______, _______, _______, _______, _______, _______,
  104. _______, _______, _______, _______, _______, _______,
  105. _______, KC_Q, KC_W, KC_E, KC_R, KC_T,
  106. _______, KC_A, KC_S, KC_D, KC_F, KC_G,
  107. _______, KC_Z, KC_X, KC_C, KC_V, KC_B,
  108. _______, _______, _______, _______,
  109. // Left Thumb
  110. _______, _______,
  111. _______,
  112. _______, _______, _______,
  113. // Right Hand
  114. _______, _______, _______, _______, _______, _______, _______, _______, _______,
  115. _______, _______, _______, _______, _______, _______,
  116. KC_Y, KC_U, KC_I, KC_O, KC_P, _______,
  117. KC_H, KC_J, KC_K, KC_L, KC_SCLN, _______,
  118. KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______,
  119. _______, _______, _______, _______,
  120. // Right Thumb
  121. _______, _______,
  122. _______,
  123. _______, _______, _______
  124. ),
  125. [_KP] = LAYOUT(
  126. // Left Hand
  127. _______, _______, _______, _______, _______, _______, _______, _______, _______,
  128. _______, _______, _______, _______, _______, _______,
  129. _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______,
  130. _______, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSEL,
  131. _______, _______, _______, _______, _______, _______,
  132. _______, _______, _______, _______,
  133. // Left Thumb
  134. _______, _______,
  135. _______,
  136. _______, _______, _______,
  137. // Right Hand */
  138. _______, _______, _______, _______, _______, _______, _______, _______, _______,
  139. _______, KC_NLCK, KC_PEQL, KC_PSLS, KC_PAST, _______,
  140. _______, KC_P7, KC_P8, KC_P9, KC_PMNS, _______,
  141. _______, KC_P4, KC_P5, KC_P6, KC_PPLS, _______,
  142. _______, KC_P1, KC_P2, KC_P3, KC_PENT, _______,
  143. KC_LPRN, KC_RPRN, KC_PDOT, KC_PENT,
  144. // Right Thumb
  145. _______, _______,
  146. _______,
  147. _______, KC_PENT, KC_P0
  148. )
  149. };
  150. void persistent_default_layer_set(uint16_t default_layer) {
  151. eeconfig_update_default_layer(default_layer);
  152. default_layer_set(default_layer);
  153. }
  154. const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
  155. {
  156. switch(id) {
  157. case _CX:
  158. if (record->event.pressed) {
  159. persistent_default_layer_set(1UL<<_CX);
  160. }
  161. break;
  162. case _QW:
  163. if (record->event.pressed) {
  164. persistent_default_layer_set(1UL<<_QW);
  165. }
  166. break;
  167. }
  168. return MACRO_NONE;
  169. };
  170. // Runs just one time when the keyboard initializes.
  171. void matrix_init_user(void) {
  172. };