wrappers.h 5.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. #pragma once
  2. #include "curry.h"
  3. /*
  4. Since our quirky block definitions are basically a list of comma separated
  5. arguments, we need a wrapper in order for these definitions to be
  6. expanded before being used as arguments to the LAYOUT_xxx macro.
  7. */
  8. #if (!defined(LAYOUT) && defined(KEYMAP))
  9. # define LAYOUT KEYMAP
  10. #endif
  11. // clang-format off
  12. #define KEYMAP_wrapper(...) LAYOUT(__VA_ARGS__)
  13. #define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
  14. #define LAYOUT_ortho_4x12_wrapper(...) LAYOUT_ortho_4x12(__VA_ARGS__)
  15. #define LAYOUT_ortho_5x12_wrapper(...) LAYOUT_ortho_5x12(__VA_ARGS__)
  16. /*
  17. Blocks for each of the four major keyboard layouts
  18. Organized so we can quickly adapt and modify all of them
  19. at once, rather than for each keyboard, one at a time.
  20. And this allows for much cleaner blocks in the keymaps.
  21. For instance Tap/Hold for Control on all of the layouts
  22. NOTE: These are all the same length. If you do a search/replace
  23. then you need to add/remove underscores to keep the
  24. lengths consistent.
  25. */
  26. #define _________________QWERTY_L1_________________ KC_Q, KC_W, KC_E, KC_R, KC_T
  27. #define _________________QWERTY_L2_________________ KC_A, KC_S, KC_D, KC_F, KC_G
  28. #define _________________QWERTY_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B
  29. #define _________________QWERTY_R1_________________ KC_Y, KC_U, KC_I, KC_O, KC_P
  30. #define _________________QWERTY_R2_________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN
  31. #define _________________QWERTY_R3_________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLASH
  32. #define _________________COLEMAK_L1________________ KC_Q, KC_W, KC_F, KC_P, KC_B
  33. #define _________________COLEMAK_L2________________ KC_A, KC_R, KC_S, KC_T, KC_G
  34. #define _________________COLEMAK_L3________________ KC_Z, KC_X, KC_C, KC_D, KC_V
  35. #define _________________COLEMAK_R1________________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN
  36. #define _________________COLEMAK_R2________________ KC_M, KC_N, KC_E, KC_I, KC_O
  37. #define _________________COLEMAK_R3________________ KC_K, KC_H, KC_COMM, KC_DOT, KC_SLASH
  38. #define _________________DVORAK_L1_________________ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y
  39. #define _________________DVORAK_L2_________________ KC_A, KC_O, KC_E, KC_U, KC_I
  40. #define _________________DVORAK_L3_________________ KC_SCLN, KC_Q, KC_J, KC_K, KC_X
  41. #define _________________DVORAK_R1_________________ KC_F, KC_G, KC_C, KC_R, KC_L
  42. #define _________________DVORAK_R2_________________ KC_D, KC_H, KC_T, KC_N, KC_S
  43. #define _________________DVORAK_R3_________________ KC_B, KC_M, KC_W, KC_V, KC_Z
  44. #define ________________NUMBER_LEFT________________ KC_1, KC_2, KC_3, KC_4, KC_5
  45. #define ________________NUMBER_RIGHT_______________ KC_6, KC_7, KC_8, KC_9, KC_0
  46. #define _________________FUNC_LEFT_________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
  47. #define _________________FUNC_RIGHT________________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
  48. #define _________________SYM_LEFT__________________ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC
  49. #define _________________SYM_RIGHT_________________ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN
  50. #define ___________________BLANK___________________ _______, _______, _______, _______, _______
  51. #define _________________LOWER_L1__________________ _________________FUNC_LEFT_________________
  52. #define _________________LOWER_L2__________________ _________________SYM_LEFT__________________
  53. #define _________________LOWER_L3__________________ KC_DT1, KC_DT2, KC_DT3, KC_DT4, _______
  54. #define _________________LOWER_R1__________________ _________________FUNC_RIGHT________________
  55. #define _________________LOWER_R2__________________ _________________SYM_RIGHT_________________
  56. #define _________________LOWER_R3__________________ _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR
  57. #define _________________RAISE_L1__________________ ________________NUMBER_LEFT________________
  58. #define _________________RAISE_L2__________________ KC_PGUP, KC_PGDN, KC_HOME, KC_END, _______
  59. #define _________________RAISE_L3__________________ _______, _______, _______, _______, _______
  60. #define _________________RAISE_R1__________________ ________________NUMBER_RIGHT_______________
  61. #define _________________RAISE_R2__________________ KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______
  62. #define _________________RAISE_R3__________________ _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC
  63. #define _________________ADJUST_L1_________________ RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG
  64. #define _________________ADJUST_L2_________________ MU_TOG , CK_TOGG, AU_ON, AU_OFF, CG_NORM
  65. #define _________________ADJUST_L3_________________ RGB_RMOD,RGB_HUD,RGB_SAD, RGB_VAD, KC_RGB_T
  66. #define _________________ADJUST_R1_________________ KC_SEC1, KC_SEC2, KC_SEC3, KC_SEC4, KC_SEC5
  67. #define _________________ADJUST_R2_________________ CG_SWAP, QWERTY, COLEMAK, DVORAK, XXXXXXX
  68. #define _________________ADJUST_R3_________________ MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT
  69. // clang-format on