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.

427 lines
39 KiB

  1. #include QMK_KEYBOARD_H
  2. extern keymap_config_t keymap_config;
  3. enum kinesis_layers {
  4. _COLEMAK, // Colemak (default layer)
  5. _QWERTY, // QWERTY
  6. _GAMING, // Gaming/vanilla toggle layer (limited dual-role keys and layer access)
  7. _NUMBERS, // Numbers & Symbols
  8. _NUMBERS2, // Numbers & Symbols 2 (identical as _NUMBERS; basically used for tri-layer access to _ADJUST)
  9. _FUNCTION, // Function
  10. _FUNCTION2, // Function 2 (identical as _FUNCTION; used to allow for easier use of space and backspace while using function layer arrows)
  11. _NUMPAD, // Numpad
  12. _ADJUST, // Adjust layer (accessed via tri-layer feature)
  13. _ADJUST2 // Second Adjust layer (accessed outside of tri-layer feature)
  14. };
  15. enum kinesis_keycodes {
  16. COLEMAK = SAFE_RANGE,
  17. QWERTY,
  18. GAMING
  19. };
  20. //Tap Dance Declarations
  21. enum {
  22. ADJ = 0,
  23. LBCB,
  24. RBCB,
  25. EQPL,
  26. PLEQ,
  27. MNUN,
  28. SLAS,
  29. GVTL,
  30. PPEQ,
  31. PMUN,
  32. PSPA
  33. };
  34. void dance_LAYER_finished(qk_tap_dance_state_t *state, void *user_data) {
  35. if (state->count == 2) {
  36. layer_on(_ADJUST2);
  37. set_oneshot_layer(_ADJUST2, ONESHOT_START);
  38. }
  39. }
  40. void dance_LAYER_reset(qk_tap_dance_state_t *state, void *user_data) {
  41. if (state->count == 2) {
  42. layer_off(_ADJUST2);
  43. clear_oneshot_layer_state(ONESHOT_PRESSED);
  44. }
  45. }
  46. qk_tap_dance_action_t tap_dance_actions[] = {
  47. [ADJ] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_LAYER_finished, dance_LAYER_reset), // Double-tap to activate Adjust layer via oneshot layer
  48. [LBCB] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, KC_LCBR), // Left bracket on a single-tap, left brace on a double-tap
  49. [RBCB] = ACTION_TAP_DANCE_DOUBLE(KC_RBRC, KC_RCBR), // Right bracket on a single-tap, right brace on a double-tap
  50. [EQPL] = ACTION_TAP_DANCE_DOUBLE(KC_EQL, KC_PLUS), // Plus sign on a single-tap, equal sign on a double-tap
  51. [PLEQ] = ACTION_TAP_DANCE_DOUBLE(KC_PLUS, KC_EQL), // Equal sign on a single-tap, plus sign on a double-tap
  52. [MNUN] = ACTION_TAP_DANCE_DOUBLE(KC_MINS, KC_UNDS), // Minus sign on a single-tap, underscore on a double-tap
  53. [SLAS] = ACTION_TAP_DANCE_DOUBLE(KC_SLSH, KC_ASTR), // Slash in a single-tap, asterisk in a double-tap
  54. [GVTL] = ACTION_TAP_DANCE_DOUBLE(KC_GRV, KC_TILD), // Grave on a single-tap, tilde on a double-tap
  55. [PPEQ] = ACTION_TAP_DANCE_DOUBLE(KC_PPLS, KC_EQL), // Numpad plus sign on a single-tap, equal sign on a double-tap
  56. [PMUN] = ACTION_TAP_DANCE_DOUBLE(KC_PMNS, KC_UNDS), // Numpad minus sign on a single-tap, underscore on a double-tap
  57. [PSPA] = ACTION_TAP_DANCE_DOUBLE(KC_PSLS, KC_PAST) // Numpad slash on a single-tap, numpad asterisk on a double-tap
  58. };
  59. //Aliases for longer keycodes
  60. #define NUMPAD TG(_NUMPAD)
  61. #define ADJUST MO(_ADJUST2)
  62. #define SPCFN LT(_FUNCTION, KC_SPC)
  63. #define BSPCFN LT(_FUNCTION2, KC_BSPC)
  64. #define ENTNS LT(_NUMBERS, KC_ENT)
  65. #define DELNS LT(_NUMBERS2, KC_DEL)
  66. #define CTLESC CTL_T(KC_ESC)
  67. #define ALTAPP ALT_T(KC_APP)
  68. #define CTL_A LCTL(KC_A)
  69. #define CTL_C LCTL(KC_C)
  70. #define CTL_V LCTL(KC_V)
  71. #define CTL_X LCTL(KC_X)
  72. #define CTL_Z LCTL(KC_Z)
  73. #define CTL_Y LCTL(KC_Y)
  74. #define CA_TAB LCA(KC_TAB)
  75. #define HYPER ALL_T(KC_NO)
  76. #define TD_ADJ TD(ADJ)
  77. #define TD_LBCB TD(LBCB)
  78. #define TD_RBCB TD(RBCB)
  79. #define TD_EQPL TD(EQPL)
  80. #define TD_PLEQ TD(PLEQ)
  81. #define TD_MNUN TD(MNUN)
  82. #define TD_SLAS TD(SLAS)
  83. #define TD_GVTL TD(GVTL)
  84. #define TD_PPEQ TD(PPEQ)
  85. #define TD_PMUN TD(PMUN)
  86. #define TD_PSPA TD(PSPA)
  87. #define NKROTG MAGIC_TOGGLE_NKRO
  88. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  89. /*
  90. Colemak
  91. (Default layer; keys separated by "/" tap for first, hold for second; uses Space Cadet Shifts)
  92. ,--------------------------------------------------------------. ,--------------------------------------------------------------.
  93. | ESC | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | | F9 | F10 | F11 | F12 |PrtScr|ScrLck| Pause|Numpad|Adjust|
  94. `--------------------------------------------------------------' `--------------------------------------------------------------'
  95. ,------------------------------------------------------. ,------------------------------------------------------.
  96. | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |
  97. |---------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+---------|
  98. | Tab | Q | W | F | P | G | | J | L | U | Y | ; | \ |
  99. |---------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+---------|
  100. | ESC/Ctrl| A | R | S | T | D | | H | N | E | I | O | ' |
  101. |---------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+---------|
  102. | SC Shift| Z | X | C | V | B | | K | M | , | . | / | SC Shift|
  103. `---------+--------+--------+--------+--------+--------' `--------+--------+--------+--------+--------+---------'
  104. | Ins | ` | [ | ] | | Left | Down | Up | Right |
  105. `-----------------------------------' `-----------------------------------'
  106. ,-----------------. ,-----------------.
  107. | ESC/Ctl| Hyper | | RAlt | RCtl |
  108. ,--------+--------+--------| |--------+--------+--------.
  109. | Space | Enter | App/Alt| | RGUI | Delete | Bspc |
  110. | / | / |--------| |--------| / | / |
  111. | Fn | Number | Bspc | | Enter | Number2| Fn2 |
  112. `--------------------------' `--------------------------'
  113. */
  114. [_COLEMAK] = LAYOUT_pretty(
  115. KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, NUMPAD, ADJUST,
  116. KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
  117. KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS,
  118. CTLESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
  119. KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC,
  120. KC_INS, KC_GRV, KC_LBRC, KC_RBRC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,
  121. CTLESC, HYPER, KC_RALT, KC_RCTL,
  122. ALTAPP, KC_RGUI,
  123. SPCFN, ENTNS, KC_BSPC, KC_ENT, DELNS, BSPCFN
  124. ),
  125. /*
  126. QWERTY
  127. (Keys separated by "/" tap for first, hold for second; uses Space Cadet Shifts)
  128. ,--------------------------------------------------------------. ,--------------------------------------------------------------.
  129. | ESC | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | | F9 | F10 | F11 | F12 |PrtScr|ScrLck| Pause|Numpad|Adjust|
  130. `--------------------------------------------------------------' `--------------------------------------------------------------'
  131. ,------------------------------------------------------. ,------------------------------------------------------.
  132. | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |
  133. |---------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+---------|
  134. | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ |
  135. |---------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+---------|
  136. | ESC/Ctrl| A | S | D | F | G | | H | J | K | L | ; | ' |
  137. |---------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+---------|
  138. | SC Shift| Z | X | C | V | B | | N | M | , | . | / | SC Shift|
  139. `---------+--------+--------+--------+--------+--------' `--------+--------+--------+--------+--------+---------'
  140. | Ins | ` | [ | ] | | Left | Down | Up | Right |
  141. `-----------------------------------' `-----------------------------------'
  142. ,-----------------. ,-----------------.
  143. | ESC/Ctl| Hyper | | RAlt | RCtl |
  144. ,--------+--------+--------| |--------+--------+--------.
  145. | Space | Enter | App/Alt| | RGUI | Delete | Bspc |
  146. | / | / |--------| |--------| / | / |
  147. | Fn | Number | Bspc | | Enter | Number2| Fn2 |
  148. `--------------------------' `--------------------------'
  149. */
  150. [_QWERTY] = LAYOUT_pretty(
  151. KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, NUMPAD, ADJUST,
  152. KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
  153. KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
  154. CTLESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
  155. KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC,
  156. KC_INS, KC_GRV, KC_LBRC, KC_RBRC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,
  157. CTLESC, HYPER, KC_RALT, KC_RCTL,
  158. ALTAPP, KC_RGUI,
  159. SPCFN, ENTNS, KC_BSPC, KC_ENT, DELNS, BSPCFN
  160. ),
  161. /*
  162. Numbers/Symbols layer
  163. (Multiple characters: single-tap for first, double-tap for second)
  164. ,--------------------------------------------------------------. ,--------------------------------------------------------------.
  165. | | | | | | | | | | | | | | | | | | | |
  166. `--------------------------------------------------------------' `--------------------------------------------------------------'
  167. ,------------------------------------------------------. ,------------------------------------------------------.
  168. | F12 | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 |
  169. |---------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+---------|
  170. | | 6 | 7 | 8 | 9 | 0 | | ^ | & | * | ( | ) | |
  171. |---------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+---------|
  172. | | 1 | 2 | 3 | 4 | 5 | | ! | @ | # | $ | % | |
  173. |---------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+---------|
  174. | | | . | / * | - _ | + = | | ` ~ | [ { | ] } | | | |
  175. `---------+--------+--------+--------+--------+--------' `--------+--------+--------+--------+--------+---------'
  176. | ( | ) | [ { | ] } | | | | | |
  177. `-----------------------------------' `-----------------------------------'
  178. ,-----------------. ,-----------------.
  179. | | | | | |
  180. ,--------+--------+--------| |--------+--------+--------.
  181. | | | | | | | |
  182. | | |--------| |--------| | |
  183. | | | | | | | |
  184. `--------------------------' `--------------------------'
  185. */
  186. [_NUMBERS] = LAYOUT_pretty(
  187. _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
  188. KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
  189. _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
  190. _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______,
  191. _______, _______, KC_DOT, TD_SLAS, TD_MNUN, TD_PLEQ, TD_GVTL, TD_LBCB, TD_RBCB, _______, _______, _______,
  192. KC_LPRN, KC_RPRN, TD_LBCB, TD_RBCB, _______, _______, _______, _______,
  193. _______, _______, _______, _______,
  194. _______, _______,
  195. _______, _______, _______, _______, _______, _______
  196. ),
  197. [_NUMBERS2] = LAYOUT_pretty(
  198. _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
  199. KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
  200. _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
  201. _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______,
  202. _______, _______, KC_DOT, TD_SLAS, TD_MNUN, TD_PLEQ, TD_GVTL, TD_LBCB, TD_RBCB, _______, _______, _______,
  203. KC_LPRN, KC_RPRN, TD_LBCB, TD_RBCB, _______, _______, _______, _______,
  204. _______, _______, _______, _______,
  205. _______, _______,
  206. _______, _______, _______, _______, _______, _______
  207. ),
  208. /*
  209. Function layer
  210. ,--------------------------------------------------------------. ,--------------------------------------------------------------.
  211. | | | | | | | | | | | | | | | | | | | |
  212. `--------------------------------------------------------------' `--------------------------------------------------------------'
  213. ,------------------------------------------------------. ,------------------------------------------------------.
  214. | F12 | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 |
  215. |---------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+---------|
  216. | | | | Up | | | | | | Up | Ctrl+Y | | |
  217. |---------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+---------|
  218. | | Ctrl+A | Left | Down | Right | C+A+Tab| | PgUp | Left | Down | Right | Home | |
  219. |---------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+---------|
  220. | | Ctrl+Z | Ctrl+X | Ctrl+C | Ctrl+V | Bspc | | PgDn | Mute | Vol- | Vol+ | End | |
  221. `---------+--------+--------+--------+--------+--------' `--------+--------+--------+--------+--------+---------'
  222. | | | | | | Prev | Play | Next | Stop |
  223. `-----------------------------------' `-----------------------------------'
  224. ,-----------------. ,-----------------.
  225. | | | | | |
  226. ,--------+--------+--------| |--------+--------+--------.
  227. | | | | | | | |
  228. | | |--------| |--------| | |
  229. | | | | | | | |
  230. `--------------------------' `--------------------------'
  231. */
  232. [_FUNCTION] = LAYOUT_pretty(
  233. _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
  234. KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
  235. _______, _______, _______, KC_UP, _______, _______, _______, _______, KC_UP, CTL_Y, _______, _______,
  236. _______, CTL_A, KC_LEFT, KC_DOWN, KC_RGHT, CA_TAB, KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, KC_HOME, _______,
  237. _______, CTL_Z, CTL_X, CTL_C, CTL_V, KC_BSPC, KC_PGDN, KC_MUTE, KC_VOLD, KC_VOLU, KC_END, _______,
  238. _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP,
  239. _______, _______, _______, _______,
  240. _______, _______,
  241. _______, _______, _______, _______, _______, _______
  242. ),
  243. [_FUNCTION2] = LAYOUT_pretty(
  244. _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
  245. KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
  246. _______, _______, _______, KC_UP, _______, _______, _______, _______, KC_UP, CTL_Y, _______, _______,
  247. _______, CTL_A, KC_LEFT, KC_DOWN, KC_RGHT, CA_TAB, KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, KC_HOME, _______,
  248. _______, CTL_Z, CTL_X, CTL_C, CTL_V, KC_BSPC, KC_PGDN, KC_MUTE, KC_VOLD, KC_VOLU, KC_END, _______,
  249. _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP,
  250. _______, _______, _______, _______,
  251. _______, _______,
  252. _______, _______, _______, _______, _______, _______
  253. ),
  254. /*
  255. Numpad layer
  256. (Left side duplicates layout from the Numbers layer, just with numpad output; right side layout close to PC numpad layout)
  257. ,--------------------------------------------------------------. ,--------------------------------------------------------------.
  258. | | | | | | | | | | | | | | | | | | | |
  259. `--------------------------------------------------------------' `--------------------------------------------------------------'
  260. ,------------------------------------------------------. ,------------------------------------------------------.
  261. | | NumLock| | | | | | Tab | NumLock| KP / | KP * | KP - | |
  262. |---------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+---------|
  263. | | KP 6 | KP 7 | KP 8 | KP 9 | KP 0 | | | KP 7 | KP 8 | KP 9 | KP + | |
  264. |---------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+---------|
  265. | | KP 1 | KP 2 | KP 3 | KP 4 | KP 5 | | | KP 4 | KP 5 | KP 6 | = | |
  266. |---------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+---------|
  267. | | | KP . | KP/KP* | KP- _ | KP+ = | | | KP 1 | KP 2 | KP 3 | KP Ent | |
  268. `---------+--------+--------+--------+--------+--------' `--------+--------+--------+--------+--------+---------'
  269. | ( | ) | [ { | ] } | | | KP 0 | KP . | KP Ent |
  270. `-----------------------------------' `-----------------------------------'
  271. ,-----------------. ,-----------------.
  272. | | | | | |
  273. ,--------+--------+--------| |--------+--------+--------.
  274. | | | | | | | |
  275. | | |--------| |--------| | |
  276. | | | | | | | |
  277. `--------------------------' `--------------------------'
  278. */
  279. [_NUMPAD] = LAYOUT_pretty(
  280. _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
  281. _______, KC_NLCK, _______, _______, _______, _______, KC_TAB, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, _______,
  282. _______, KC_P6, KC_P7, KC_P8, KC_P9, KC_P0, _______, KC_P7, KC_P8, KC_P9, KC_PPLS, _______,
  283. _______, KC_P1, KC_P2, KC_P3, KC_P4, KC_P5, _______, KC_P4, KC_P5, KC_P6, KC_EQL, _______,
  284. _______, _______, KC_PDOT, TD_PSPA, TD_MNUN, TD_PPEQ, _______, KC_P1, KC_P2, KC_P3, KC_PENT, _______,
  285. KC_LPRN, KC_RPRN, TD_LBCB, TD_RBCB, _______, KC_P0, KC_PDOT, KC_PENT,
  286. _______, _______, _______, _______,
  287. _______, _______,
  288. _______, _______, _______, _______, _______, _______
  289. ),
  290. /*
  291. Gaming
  292. (Toggle gaming layer with limited dual-role keys and layer access; NKRO turned on by default; Ent/NS + Delete/Numbers2 to access Adjust layer)
  293. ,--------------------------------------------------------------. ,--------------------------------------------------------------.
  294. | | | | | | | | | | | | | | | | | | | |
  295. `--------------------------------------------------------------' `--------------------------------------------------------------'
  296. ,------------------------------------------------------. ,------------------------------------------------------.
  297. | | | | | | | | | | | | | |
  298. |---------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+---------|
  299. | | | | | | | | | | | | | |
  300. |---------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+---------|
  301. | LCtrl | | | | | | | | | | | | |
  302. |---------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+---------|
  303. | Shift | | | | | | | | | | | | Shift |
  304. `---------+--------+--------+--------+--------+--------' `--------+--------+--------+--------+--------+---------'
  305. | | | | | | | | | |
  306. `-----------------------------------' `-----------------------------------'
  307. ,-----------------. ,-----------------.
  308. | ESC |xxxxxxxx| | RAlt | RCtl |
  309. ,--------+--------+--------| |--------+--------+--------.
  310. | | | LAlt | | RGUI | Delete | Bspc |
  311. | Space | Enter |--------| |--------| / | / |
  312. | | | Bspc | |Enter/NS| Number2| Fn2 |
  313. `--------------------------' `--------------------------'
  314. */
  315. [_GAMING] = LAYOUT_pretty(
  316. _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
  317. _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
  318. _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
  319. KC_LCTL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
  320. KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RSFT,
  321. _______, _______, _______, _______, _______, _______, _______, _______,
  322. KC_ESC, XXXXXXX, _______, _______,
  323. KC_LALT, _______,
  324. KC_SPC, KC_ENT, _______, ENTNS, _______, _______
  325. ),
  326. /*
  327. Adjust layer
  328. (Press and hold Adjust key on the function row or Enter/Number + Delete/Number2 to access; Numpad and NKRO are on toggle)
  329. ,--------------------------------------------------------------. ,--------------------------------------------------------------.
  330. | | | | | | | | | | | | | | | | | | | |
  331. `--------------------------------------------------------------' `--------------------------------------------------------------'
  332. ,------------------------------------------------------. ,------------------------------------------------------.
  333. | | Colemak| QWERTY | | Gaming | | | Numpad | | | | | RESET |
  334. |---------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+---------|
  335. | | | | | | | | | | | | | |
  336. |---------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+---------|
  337. | | | | | | | | | NKRO | | | | |
  338. |---------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+---------|
  339. | | | | | | | | | | | | | |
  340. `---------+--------+--------+--------+--------+--------' `--------+--------+--------+--------+--------+---------'
  341. | | | | | | | | | |
  342. `-----------------------------------' `-----------------------------------'
  343. ,-----------------. ,-----------------.
  344. | | | | | |
  345. ,--------+--------+--------| |--------+--------+--------.
  346. | | | | | | | |
  347. | | |--------| |--------| | |
  348. | | | | | | | |
  349. `--------------------------' `--------------------------'
  350. */
  351. [_ADJUST] = LAYOUT_pretty(
  352. _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
  353. _______, COLEMAK, QWERTY, _______, GAMING, _______, NUMPAD, _______, _______, _______, _______, RESET,
  354. _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
  355. _______, _______, _______, _______, _______, _______, _______, NKROTG, _______, _______, _______, _______,
  356. _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
  357. _______, _______, _______, _______, _______, _______, _______, _______,
  358. _______, _______, _______, _______,
  359. _______, _______,
  360. _______, _______, _______, _______, _______, _______
  361. ),
  362. [_ADJUST2] = LAYOUT_pretty(
  363. _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
  364. _______, COLEMAK, QWERTY, _______, GAMING, _______, NUMPAD, _______, _______, _______, _______, RESET,
  365. _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
  366. _______, _______, _______, _______, _______, _______, _______, NKROTG, _______, _______, _______, _______,
  367. _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
  368. _______, _______, _______, _______, _______, _______, _______, _______,
  369. _______, _______, _______, _______,
  370. _______, _______,
  371. _______, _______, _______, _______, _______, _______
  372. )
  373. };
  374. layer_state_t layer_state_set_user(layer_state_t state) {
  375. return update_tri_layer_state(state, _NUMBERS, _NUMBERS2, _ADJUST);
  376. }
  377. bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  378. switch (keycode) {
  379. case COLEMAK:
  380. if (record->event.pressed) {
  381. // persistent_default_layer_set(1UL << _COLEMAK);
  382. default_layer_set(1UL << _COLEMAK);
  383. layer_move (_COLEMAK);
  384. keymap_config.nkro = 0;
  385. }
  386. return false;
  387. break;
  388. case QWERTY:
  389. if (record->event.pressed) {
  390. // persistent_default_layer_set(1UL << _QWERTY);
  391. default_layer_set(1UL << _QWERTY);
  392. layer_move (_QWERTY);
  393. keymap_config.nkro = 0;
  394. }
  395. return false;
  396. break;
  397. case GAMING:
  398. if (record->event.pressed) {
  399. layer_invert (_GAMING);
  400. layer_off (_NUMPAD);
  401. keymap_config.nkro = 1;
  402. }
  403. return false;
  404. break;
  405. }
  406. return true;
  407. }