wrappers.h 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. /* Copyright 2021 SethBarberee <seth.barberee@gmail.com>
  2. *
  3. * This program is free software: you can redistribute it and/or modify
  4. * it under the terms of the GNU General Public License as published by
  5. * the Free Software Foundation, either version 2 of the License, or
  6. * (at your option) any later version.
  7. *
  8. * This program is distributed in the hope that it will be useful,
  9. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. * GNU General Public License for more details.
  12. *
  13. * You should have received a copy of the GNU General Public License
  14. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  15. */
  16. #pragma once
  17. #include "sethBarberee.h"
  18. /*
  19. Since our quirky block definitions are basically a list of comma separated
  20. arguments, we need a wrapper in order for these definitions to be
  21. expanded before being used as arguments to the LAYOUT_xxx macro.
  22. */
  23. /*
  24. Blocks for each of the four major keyboard layouts
  25. Organized so we can quickly adapt and modify all of them
  26. at once, rather than for each keyboard, one at a time.
  27. And this allows for much cleaner blocks in the keymaps.
  28. For instance Tap/Hold for Control on all of the layouts
  29. NOTE: These are all the same length. If you do a search/replace
  30. then you need to add/remove underscores to keep the
  31. lengths consistent.
  32. */
  33. // clang-format off
  34. #define _________________QWERTY_L1_________________ KC_Q, KC_W, KC_E, KC_R, KC_T
  35. #define _________________QWERTY_L2_________________ KC_A, KC_S, KC_D, KC_F, KC_G
  36. #define _________________QWERTY_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B
  37. #define _________________QWERTY_R1_________________ KC_Y, KC_U, KC_I, KC_O, KC_P
  38. #define _________________QWERTY_R2_________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT
  39. #define _________________QWERTY_R3_________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH
  40. #define _________________COLEMAK_L1________________ KC_Q, KC_W, KC_F, KC_P, KC_G
  41. #define _________________COLEMAK_L2________________ KC_A, KC_R, KC_S, KC_T, KC_D
  42. #define _________________COLEMAK_L3________________ KC_Z, KC_X, KC_C, KC_V, KC_B
  43. #define _________________COLEMAK_R1________________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN
  44. #define _________________COLEMAK_R2________________ KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT
  45. #define _________________COLEMAK_R3________________ KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH
  46. #define _________________DVORAK_L1_________________ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y
  47. #define _________________DVORAK_L2_________________ KC_A, KC_O, KC_E, KC_U, KC_I
  48. #define _________________DVORAK_L3_________________ KC_SCLN, KC_Q, KC_J, KC_K, KC_X
  49. #define _________________DVORAK_R1_________________ KC_F, KC_G, KC_C, KC_R, KC_L
  50. #define _________________DVORAK_R2_________________ KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH
  51. #define _________________DVORAK_R3_________________ KC_B, KC_M, KC_W, KC_V, KC_Z
  52. #define ________________NUMBER_LEFT________________ KC_1, KC_2, KC_3, KC_4, KC_5
  53. #define ________________NUMBER_RIGHT_______________ KC_6, KC_7, KC_8, KC_9, KC_0
  54. #define _________________FUNC_LEFT_________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
  55. #define _________________FUNC_RIGHT________________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
  56. #define ___________________BLANK___________________ _______, _______, _______, _______, _______
  57. // clang-format on