keymap.c 40 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386
  1. #include QMK_KEYBOARD_H
  2. extern keymap_config_t keymap_config;
  3. // Layer names
  4. enum{
  5. // - Base layers:
  6. _COLEMAKDHMK,
  7. _COLEMAKDHMK_MAC,
  8. _QWERTY,
  9. _QWERTY_MAC,
  10. // - Symbols, numbers, functions and custom shifts:
  11. _SYMB,
  12. _NUMB,
  13. _FUNC,
  14. _RHSH, // Righ hand shifted keycodes
  15. _LHSH, // Left hand shifted keycodes
  16. // - Adjust layer:
  17. _ADJUST
  18. };
  19. // Custom keycodes
  20. enum custom_keycodes {
  21. COLEMAKDHMK = SAFE_RANGE,
  22. COLEMAKDHMK_MAC,
  23. QWERTY,
  24. QWERTY_MAC,
  25. ASC_SAR,
  26. ASC_DAR,
  27. ASC_SQT,
  28. ASC_DQT,
  29. ASC_CIRC,
  30. ASC_TILD,
  31. ASC_HAP,
  32. ASC_SAD,
  33. ASC_BKT,
  34. ASC_CBRL,
  35. ASC_CBRR
  36. };
  37. // Tap dance keycodes
  38. enum tap_dance{
  39. TD_SCLN, // ;; -> :
  40. TD_LBRC, // [[ -> {
  41. TD_RBRC, // ]] -> }
  42. TD_QMRK // // -> ?
  43. };
  44. // Semicolon to Colon
  45. void dance_scln_finished (qk_tap_dance_state_t *state, void *user_data) {
  46. if (state->count == 1) {
  47. register_code (KC_SCLN);
  48. } else {
  49. register_code (KC_RSFT);
  50. register_code (KC_SCLN);
  51. }
  52. }
  53. void dance_scln_reset (qk_tap_dance_state_t *state, void *user_data) {
  54. if (state->count == 1) {
  55. unregister_code (KC_SCLN);
  56. } else {
  57. unregister_code (KC_RSFT);
  58. unregister_code (KC_SCLN);
  59. }
  60. }
  61. // Square braket to curly bracket (left)
  62. void dance_lbrc_finished (qk_tap_dance_state_t *state, void *user_data) {
  63. if (state->count == 1) {
  64. register_code (KC_LBRC);
  65. } else {
  66. register_code (KC_RSFT);
  67. register_code (KC_LBRC);
  68. }
  69. }
  70. void dance_lbrc_reset (qk_tap_dance_state_t *state, void *user_data) {
  71. if (state->count == 1) {
  72. unregister_code (KC_LBRC);
  73. } else {
  74. unregister_code (KC_RSFT);
  75. unregister_code (KC_LBRC);
  76. }
  77. }
  78. // Square braket to curly bracket (right)
  79. void dance_rbrc_finished (qk_tap_dance_state_t *state, void *user_data) {
  80. if (state->count == 1) {
  81. register_code (KC_RBRC);
  82. } else {
  83. register_code (KC_RSFT);
  84. register_code (KC_RBRC);
  85. }
  86. }
  87. void dance_rbrc_reset (qk_tap_dance_state_t *state, void *user_data) {
  88. if (state->count == 1) {
  89. unregister_code (KC_RBRC);
  90. } else {
  91. unregister_code (KC_RSFT);
  92. unregister_code (KC_RBRC);
  93. }
  94. }
  95. //Tap Dance Definitions
  96. qk_tap_dance_action_t tap_dance_actions[] = {
  97. [TD_SCLN] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_scln_finished, dance_scln_reset),
  98. [TD_LBRC] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_lbrc_finished, dance_lbrc_reset),
  99. [TD_RBRC] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_rbrc_finished, dance_rbrc_reset)
  100. };
  101. // Shortcut to make keymap more readable
  102. // - Adjustment Layer:
  103. #define KC_ADEN LT(_ADJUST, KC_END) // End / _ADJUST layer
  104. #define KC_ADPU LT(_ADJUST, KC_PGUP) // Page Up / _ADJUST layer
  105. // - Custom layers:
  106. #define KC_SYSP LT(_SYMB, KC_SPC) // Space / _symbols
  107. #define KC_NUES LT(_NUMB, KC_ESC) // Esc / _numbers
  108. #define KC_FUTA LT(_FUNC, KC_TAB) // Tab / _functions
  109. #define KC_N_SH LT(_LHSH, KC_N) // Pressing N key, enable shifted keys on other half (the left one)
  110. #define KC_T_SH LT(_RHSH, KC_T) // Pressing T key, enable shifted keys on other half (the right one)
  111. // - Custom keys/modifiers:
  112. #define KC_ATAB RALT_T(KC_TAB) // - Tab / Alt Gr
  113. #define KC_CESC LCTL_T(KC_ESC) // - Esc / Left Ctrl
  114. #define KC_GSPC LGUI_T(KC_SPC) // - Space / Left GUI
  115. #define KC_CBSP LCTL_T(KC_BSPC) // - Backspace / Left Ctrl
  116. // -- Mac os mode:
  117. #define KC_CSPC LCTL_T(KC_SPC) // - Space / Left Ctrl
  118. #define KC_GBSP LGUI_T(KC_BSPC) // - Backspace / Left GUI
  119. #define KC_AEQL LALT_T(KC_EQL) // - Equals / Alt (left alt)
  120. #define KC_CMIN RCTL_T(KC_MINUS) // - Minus / Right Ctrl
  121. #define KC_ADEL RALT_T(KC_DEL) // - Del / Alt Gr
  122. #define KC_RSEN RSFT_T(KC_ENT) // - Enter / Right Shift (standard shift)
  123. #define KC_LAEN LALT_T(KC_ENT) // - Enter / Left Alt
  124. // Home row mod tap keys:
  125. // - Left hand
  126. #define KC_CT_A CTL_T(KC_A) // A / Left Ctrl
  127. #define KC_AL_S ALT_T(KC_S) // S / Left Alt
  128. // - Right hand
  129. #define KC_AL_E ALT_T(KC_E) // E / Left Alt
  130. #define KC_CT_O CTL_T(KC_O) // O / Left Ctrl
  131. // - Tap dance:
  132. #define KC_TDSC TD(TD_SCLN) // ;; -> :
  133. #define KC_TDLB TD(TD_LBRC) // [[ -> {
  134. #define KC_TDRB TD(TD_RBRC) // ]] -> }
  135. // - Keyboard base maps:
  136. #define LR1 COLEMAKDHMK
  137. #define LR2 COLEMAKDHMK_MAC
  138. #define LR3 QWERTY
  139. #define LR4 QWERTY_MAC
  140. // Send custom strings or change default base layer
  141. bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  142. if (record->event.pressed) {
  143. switch(keycode) {
  144. case ASC_SAR:
  145. SEND_STRING("->");
  146. return false;
  147. case ASC_DAR:
  148. SEND_STRING("=>");
  149. return false;
  150. case ASC_SQT:
  151. // SS_RALT(): Avoid sending dead key on software intl layouts
  152. SEND_STRING(SS_RALT("'"));
  153. return false;
  154. case ASC_DQT:
  155. // SS_RALT(SS_LSFT()): Avoid sending dead key on software intl layouts
  156. SEND_STRING(SS_RALT(SS_LSFT("\"")));
  157. return false;
  158. case ASC_CIRC:
  159. // SS_RALT(): Avoid sending dead key on software intl layouts
  160. SEND_STRING(SS_RALT("^"));
  161. return false;
  162. case ASC_TILD:
  163. // SS_RALT(SS_LSFT()): Avoid sending dead key on software intl layouts
  164. SEND_STRING(SS_RALT(SS_LSFT("~")));
  165. return false;
  166. case ASC_HAP:
  167. SEND_STRING(":-) ");
  168. return false;
  169. case ASC_SAD:
  170. SEND_STRING(":-( ");
  171. return false;
  172. case ASC_BKT:
  173. // SS_RALT(): Avoid sending dead key on software intl layouts
  174. SEND_STRING(SS_RALT("`"));
  175. return false;
  176. case ASC_CBRL:
  177. SEND_STRING("{");
  178. return false;
  179. case ASC_CBRR:
  180. SEND_STRING("}");
  181. return false;
  182. case QWERTY:
  183. if (record->event.pressed) {
  184. set_single_persistent_default_layer(_QWERTY);
  185. }
  186. return false;
  187. break;
  188. case COLEMAKDHMK:
  189. if (record->event.pressed) {
  190. set_single_persistent_default_layer(_COLEMAKDHMK);
  191. }
  192. return false;
  193. break;
  194. case QWERTY_MAC:
  195. if (record->event.pressed) {
  196. set_single_persistent_default_layer(_QWERTY_MAC);
  197. }
  198. return false;
  199. break;
  200. case COLEMAKDHMK_MAC:
  201. if (record->event.pressed) {
  202. set_single_persistent_default_layer(_COLEMAKDHMK_MAC);
  203. }
  204. return false;
  205. break;
  206. }
  207. }
  208. return true;
  209. };
  210. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  211. // Colemak DM-MK Mod
  212. [_COLEMAKDHMK] = LAYOUT(
  213. //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
  214. XXXXXXX ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 , KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_ESC ,
  215. //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
  216. KC_ATAB ,KC_Q ,KC_W ,KC_F ,KC_P ,KC_B ,XXXXXXX , XXXXXXX ,KC_J ,KC_L ,KC_U ,KC_Y ,KC_TDSC ,KC_AEQL ,
  217. //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤
  218. KC_CESC ,KC_A ,KC_R ,KC_AL_S ,KC_T_SH ,KC_G ,KC_TDLB , KC_TDRB ,KC_M ,KC_N_SH ,KC_AL_E ,KC_I ,KC_O ,KC_CMIN ,
  219. //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
  220. KC_LSPO ,KC_Z ,KC_X ,KC_C ,KC_D ,KC_V ,KC_ADPU ,KC_PGDN , KC_HOME ,KC_ADEN ,KC_K ,KC_H ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_RSPC ,
  221. //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤
  222. KC_GSPC ,KC_HYPR ,KC_MEH ,XXXXXXX , KC_NUES , KC_CBSP ,KC_FUTA , KC_LAEN ,KC_SYSP , KC_ADEL , KC_LEFT ,KC_DOWN ,KC_UP ,KC_RGHT
  223. //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘
  224. ),
  225. // Colemak DM-MK Mod, Mac version (CTRL and GUI are swapped)
  226. [_COLEMAKDHMK_MAC] = LAYOUT(
  227. //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
  228. XXXXXXX ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 , KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_ESC ,
  229. //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
  230. KC_ATAB ,KC_Q ,KC_W ,KC_F ,KC_P ,KC_B ,XXXXXXX , XXXXXXX ,KC_J ,KC_L ,KC_U ,KC_Y ,KC_TDSC ,KC_AEQL ,
  231. //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤
  232. KC_CESC ,KC_A ,KC_R ,KC_AL_S ,KC_T_SH ,KC_G ,KC_TDLB , KC_TDRB ,KC_M ,KC_N_SH ,KC_AL_E ,KC_I ,KC_O ,KC_CMIN ,
  233. //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
  234. KC_LSPO ,KC_Z ,KC_X ,KC_C ,KC_D ,KC_V ,KC_ADPU ,KC_PGDN , KC_HOME ,KC_ADEN ,KC_K ,KC_H ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_RSPC ,
  235. //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤
  236. KC_CSPC ,KC_HYPR ,KC_MEH ,XXXXXXX , KC_NUES , KC_GBSP ,KC_FUTA , KC_LAEN ,KC_SYSP , KC_ADEL , KC_LEFT ,KC_DOWN ,KC_UP ,KC_RGHT
  237. //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘
  238. ),
  239. // QWERTY
  240. [_QWERTY] = LAYOUT(
  241. //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
  242. XXXXXXX ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 , KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_ESC ,
  243. //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
  244. KC_ATAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,XXXXXXX , XXXXXXX ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_AEQL ,
  245. //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤
  246. KC_CESC ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,KC_TDLB , KC_TDRB ,KC_H ,KC_J ,KC_K ,KC_L ,KC_TDSC ,KC_CMIN ,
  247. //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
  248. KC_LSPO ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_ADPU ,KC_PGDN , KC_HOME ,KC_ADEN ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_RSPC ,
  249. //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤
  250. KC_GSPC ,KC_HYPR ,KC_MEH ,XXXXXXX , KC_NUES , KC_CBSP ,KC_FUTA , KC_LAEN ,KC_SYSP , KC_ADEL , KC_LEFT ,KC_DOWN ,KC_UP ,KC_RGHT
  251. //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘
  252. ),
  253. // QWERTY, Mac version (CTRL and GUI are swapped)
  254. [_QWERTY_MAC] = LAYOUT(
  255. //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
  256. XXXXXXX ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 , KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_ESC ,
  257. //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
  258. KC_ATAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,XXXXXXX , XXXXXXX ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_AEQL ,
  259. //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤
  260. KC_CESC ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,KC_TDLB , KC_TDRB ,KC_H ,KC_J ,KC_K ,KC_L ,KC_TDSC ,KC_CMIN ,
  261. //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
  262. KC_LSPO ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_ADPU ,KC_PGDN , KC_HOME ,KC_ADEN ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_RSPC ,
  263. //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤
  264. KC_CSPC ,KC_HYPR ,KC_MEH ,XXXXXXX , KC_NUES , KC_GBSP ,KC_FUTA , KC_LAEN ,KC_SYSP , KC_ADEL , KC_LEFT ,KC_DOWN ,KC_UP ,KC_RGHT
  265. //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘
  266. ),
  267. // Symbols, home row arrows, function keys and macros layer
  268. [_SYMB] = LAYOUT(
  269. //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
  270. _______ ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 , KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,_______ ,
  271. //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
  272. _______ ,KC_EXLM ,KC_AT ,KC_HASH ,KC_DLR ,KC_PERC ,_______ , _______ ,ASC_CIRC,KC_AMPR ,KC_ASTR ,KC_PLUS ,_______ ,_______ ,
  273. //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤
  274. _______ ,KC_PIPE ,KC_PMNS ,ASC_SQT ,ASC_DQT ,KC_GRV ,ASC_SAR , ASC_DAR ,KC_QUOT ,KC_LEFT ,KC_DOWN ,KC_UP ,KC_RGHT ,_______ ,
  275. //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
  276. _______ ,KC_BSLS ,KC_UNDS ,KC_COLN ,ASC_TILD,KC_EQL ,ASC_SAD ,ASC_HAP , _______ ,_______ ,ASC_BKT ,KC_PGUP ,KC_PGDN ,KC_HOME ,KC_END ,_______ ,
  277. //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤
  278. _______ ,_______ ,_______ ,_______ , _______ , _______ ,_______ , _______ ,_______ , _______ , _______ ,_______ ,_______ ,_______
  279. //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘
  280. ),
  281. // Numeric keypad layer
  282. [_NUMB] = LAYOUT(
  283. //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
  284. _______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,
  285. //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
  286. _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______ ,KC_PAST ,KC_KP_7 ,KC_KP_8 ,KC_KP_9 ,KC_PPLS ,_______ ,
  287. //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤
  288. _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______ ,XXXXXXX ,KC_KP_4 ,KC_KP_5 ,KC_KP_6 ,KC_PMNS ,_______ ,
  289. //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
  290. _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______ ,_______ ,XXXXXXX ,KC_KP_1 ,KC_KP_2 ,KC_KP_3 ,KC_PSLS ,_______ ,
  291. //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤
  292. _______ ,_______ ,_______ ,_______ , _______ , _______ ,_______ , _______ ,_______ , XXXXXXX , KC_KP_0 ,KC_PDOT ,XXXXXXX ,XXXXXXX
  293. //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘
  294. ),
  295. // Function layer and some extra keys on right hand
  296. [_FUNC] = LAYOUT(
  297. //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
  298. _______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,
  299. //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
  300. _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______ ,_______ ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F12 ,_______ ,
  301. //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤
  302. _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______ ,_______ ,KC_F4 ,KC_F5 ,KC_F6 ,KC_F11 ,_______ ,
  303. //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
  304. _______ ,KC_PSCR ,KC_NLCK ,KC_INS ,KC_CAPS ,KC_APP ,_______ ,_______ , _______ ,_______ ,_______ ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F10 ,_______ ,
  305. //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤
  306. _______ ,_______ ,_______ ,_______ , _______ , _______ ,_______ , _______ ,_______ , _______ , _______ ,_______ ,_______ ,_______
  307. //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘
  308. ),
  309. // Left hand shifted keycodes
  310. [_LHSH] = LAYOUT(
  311. //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
  312. _______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,
  313. //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
  314. _______ ,S(KC_Q) ,S(KC_W) ,S(KC_F) ,S(KC_P) ,S(KC_B) ,_______ , _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,
  315. //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤
  316. _______ ,S(KC_A) ,S(KC_R) ,S(KC_S) ,S(KC_T) ,S(KC_G) ,_______ , _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,
  317. //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
  318. _______ ,S(KC_Z) ,S(KC_X) ,S(KC_C) ,S(KC_D) ,S(KC_V) ,_______ ,_______ , _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,
  319. //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤
  320. _______ ,_______ ,_______ ,_______ , _______ , _______ ,_______ , KC_TAB ,KC_BSPC , KC_ESC , _______ ,_______ ,_______ ,_______
  321. //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘
  322. ),
  323. // Right hand shifted keycodes
  324. [_RHSH] = LAYOUT(
  325. //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
  326. _______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,
  327. //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
  328. _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______ ,S(KC_J) ,S(KC_L) ,S(KC_U) ,S(KC_Y) ,KC_COLN ,_______ ,
  329. //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤
  330. _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______ ,S(KC_M) ,S(KC_N) ,S(KC_E) ,S(KC_I) ,S(KC_O) ,_______ ,
  331. //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
  332. _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______ ,_______ ,S(KC_K) ,S(KC_H) ,KC_LABK ,KC_RABK ,KC_QUES ,_______ ,
  333. //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤
  334. _______ ,_______ ,_______ ,_______ , KC_DEL , KC_SPC ,KC_ENT , _______ ,_______ , _______ , _______ ,_______ ,_______ ,_______
  335. //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘
  336. ),
  337. // Adjust layer (RGB, Reset and base layer switch)
  338. [_ADJUST] = LAYOUT(
  339. //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
  340. XXXXXXX ,LR1 ,LR2 ,LR3 ,LR4 ,XXXXXXX , XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,
  341. //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
  342. XXXXXXX ,RESET ,RGB_M_P ,RGB_TOG ,RGB_MOD ,RGB_HUD ,RGB_HUI , RGB_SAD ,RGB_SAI ,RGB_VAD ,RGB_VAI ,XXXXXXX ,XXXXXXX ,XXXXXXX ,
  343. //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤
  344. XXXXXXX ,XXXXXXX ,RGB_M_B ,RGB_M_R ,RGB_M_SW,RGB_M_SN,XXXXXXX , XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,
  345. //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
  346. XXXXXXX ,XXXXXXX ,RGB_M_K ,RGB_M_X ,RGB_M_G ,XXXXXXX ,_______ ,XXXXXXX , XXXXXXX ,_______ ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,
  347. //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤
  348. XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , XXXXXXX , XXXXXXX ,XXXXXXX , XXXXXXX ,XXXXXXX , XXXXXXX , XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX
  349. //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘
  350. )
  351. };