Keyboard firmwares for Atmel AVR and Cortex-M
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.

actionmap_gherkin.c 4.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. #include "actionmap.h"
  2. #include "action_code.h"
  3. #include "actionmap_common.h"
  4. #include "rgblight.h"
  5. /*
  6. * Actions
  7. */
  8. #define AC_BLD ACTION_BACKLIGHT_DECREASE()
  9. #define AC_BLI ACTION_BACKLIGHT_INCREASE()
  10. #define AC_TL1 ACTION_LAYER_TAP_KEY(1, KC_SPACE)
  11. #define AC_TL2 ACTION_LAYER_TAP_KEY(2, KC_BSPACE)
  12. #define AC_TL3 ACTION_LAYER_TAP_KEY(3, KC_C)
  13. #define AC_TL4 ACTION_LAYER_TAP_KEY(4, KC_V)
  14. #define AC_TL5 ACTION_LAYER_TAP_KEY(5, KC_B)
  15. #define AC_TM1 ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT)
  16. #define AC_TM2 ACTION_MODS_TAP_KEY(MOD_LCTL, KC_Z)
  17. #define AC_TM3 ACTION_MODS_TAP_KEY(MOD_LALT, KC_X)
  18. #define AC_TM4 ACTION_MODS_TAP_KEY(MOD_RALT, KC_N)
  19. #define AC_TM5 ACTION_MODS_TAP_KEY(MOD_RCTL, KC_M)
  20. #define AC_S01 ACTION_MODS_KEY(MOD_LSFT, KC_1)
  21. #define AC_S02 ACTION_MODS_KEY(MOD_LSFT, KC_2)
  22. #define AC_S03 ACTION_MODS_KEY(MOD_LSFT, KC_3)
  23. #define AC_S04 ACTION_MODS_KEY(MOD_LSFT, KC_4)
  24. #define AC_S05 ACTION_MODS_KEY(MOD_LSFT, KC_5)
  25. #define AC_S06 ACTION_MODS_KEY(MOD_LSFT, KC_6)
  26. #define AC_S07 ACTION_MODS_KEY(MOD_LSFT, KC_7)
  27. #define AC_S08 ACTION_MODS_KEY(MOD_LSFT, KC_8)
  28. #define AC_S09 ACTION_MODS_KEY(MOD_LSFT, KC_9)
  29. #define AC_S10 ACTION_MODS_KEY(MOD_LSFT, KC_0)
  30. #define AC_S11 ACTION_MODS_KEY(MOD_LSFT, KC_MINS)
  31. #define AC_S12 ACTION_MODS_KEY(MOD_LSFT, KC_EQL)
  32. #define AC_S13 ACTION_MODS_KEY(MOD_LSFT, KC_LBRC)
  33. #define AC_S14 ACTION_MODS_KEY(MOD_LSFT, KC_RBRC)
  34. #define AC_S15 ACTION_MODS_KEY(MOD_LSFT, KC_BSLS)
  35. #define AC_S16 ACTION_MODS_KEY(MOD_LSFT, KC_COMM)
  36. #define AC_S17 ACTION_MODS_KEY(MOD_LSFT, KC_DOT)
  37. #define AC_S18 ACTION_MODS_KEY(MOD_LSFT, KC_SLSH)
  38. #define AC_S19 ACTION_MODS_KEY(MOD_LSFT, KC_SCLN)
  39. #define AC_S20 ACTION_MODS_KEY(MOD_LSFT, KC_QUOT)
  40. #define AC_L01 ACTION_FUNCTION(RGBLED_TOGGLE)
  41. #define AC_L02 ACTION_FUNCTION(RGBLED_STEP_MODE)
  42. #define AC_L03 ACTION_FUNCTION(RGBLED_INCREASE_HUE)
  43. #define AC_L04 ACTION_FUNCTION(RGBLED_DECREASE_HUE)
  44. #define AC_L05 ACTION_FUNCTION(RGBLED_INCREASE_SAT)
  45. #define AC_L06 ACTION_FUNCTION(RGBLED_DECREASE_SAT)
  46. #define AC_L07 ACTION_FUNCTION(RGBLED_INCREASE_VAL)
  47. #define AC_L08 ACTION_FUNCTION(RGBLED_DECREASE_VAL)
  48. const action_t PROGMEM actionmaps[][MATRIX_ROWS][MATRIX_COLS] = {
  49. [0] = ACTIONMAP( \
  50. Q, W, E, R, T, Y, U, I, O, P, \
  51. A, S, D, F, G, H, J, K, L, ESC, \
  52. TM2, TM3, TL3, TL4, TL2, TL1, TL5, TM4, TM5, TM1),
  53. [1] = ACTIONMAP( \
  54. 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, \
  55. F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, \
  56. TRNS, TRNS, TRNS, TRNS, DEL, TRNS, TRNS, TRNS, TRNS, TRNS),
  57. [2] = ACTIONMAP( \
  58. S01, S02, S03, S04, S05, S06, S07, S08, S09, S10, \
  59. F11, F12, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, GRV, \
  60. TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS),
  61. [3] = ACTIONMAP( \
  62. TRNS, TRNS, TRNS, TRNS, TRNS, MINS, EQL, LBRC, RBRC, BSLS, \
  63. TAB, TRNS, TRNS, TRNS, TRNS, COMM, DOT, SLSH, SCLN, QUOT, \
  64. TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, LEFT, DOWN, UP, RGHT),
  65. [4] = ACTIONMAP( \
  66. TRNS, TRNS, TRNS, TRNS, TRNS, S11, S12, S13, S14, S15, \
  67. TAB, TRNS, TRNS, TRNS, TRNS, S16, S17, S18, S19, S20, \
  68. TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, HOME, PGDN, PGUP, END),
  69. [5] = ACTIONMAP( \
  70. CALC, WHOM, MAIL, MYCM, TRNS, TRNS, TRNS, TRNS, TRNS, PSCR, \
  71. L01, L02, L03, L04, L05, L06, L07, L08, BLD, BLI, \
  72. TRNS, TRNS, TRNS, TRNS, BTLD, TRNS, TRNS, TRNS, TRNS, TRNS),
  73. };
  74. void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
  75. switch (id) {
  76. case RGBLED_TOGGLE:
  77. if (record->event.pressed) {
  78. rgblight_toggle();
  79. }
  80. break;
  81. case RGBLED_INCREASE_HUE:
  82. if (record->event.pressed) {
  83. rgblight_increase_hue();
  84. }
  85. break;
  86. case RGBLED_DECREASE_HUE:
  87. if (record->event.pressed) {
  88. rgblight_decrease_hue();
  89. }
  90. break;
  91. case RGBLED_INCREASE_SAT:
  92. if (record->event.pressed) {
  93. rgblight_increase_sat();
  94. }
  95. break;
  96. case RGBLED_DECREASE_SAT:
  97. if (record->event.pressed) {
  98. rgblight_decrease_sat();
  99. }
  100. break;
  101. case RGBLED_INCREASE_VAL:
  102. if (record->event.pressed) {
  103. rgblight_increase_val();
  104. }
  105. break;
  106. case RGBLED_DECREASE_VAL:
  107. if (record->event.pressed) {
  108. rgblight_decrease_val();
  109. }
  110. break;
  111. case RGBLED_STEP_MODE:
  112. if (record->event.pressed) {
  113. rgblight_step();
  114. }
  115. break;
  116. }
  117. }