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.

163 lines
3.8 KiB

  1. #include "mtdjr.h"
  2. #ifdef SOLENOID_ENABLE
  3. #include "solenoid.h"
  4. #endif
  5. #ifndef RGB_MODE
  6. #define RGB_MODE 2
  7. #endif
  8. #ifndef RGB_HUE
  9. #define RGB_HUE 285
  10. #endif
  11. // Tap Dance Definitions
  12. qk_tap_dance_action_t tap_dance_actions[] = {
  13. [TD_ESC] = ACTION_TAP_DANCE_DOUBLE(KC_GRV, KC_ESC),
  14. [TD_ALTLOCK] = ACTION_TAP_DANCE_DOUBLE(KC_RALT, LGUI(KC_L)),
  15. [TD_ENDLOCK] = ACTION_TAP_DANCE_DOUBLE(KC_END, LGUI(KC_L)),
  16. [TD_PRINT] = ACTION_TAP_DANCE_DOUBLE(LGUI(LSFT(KC_3)), LGUI(LSFT(KC_4))),
  17. };
  18. // Macros
  19. const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
  20. if (record->event.pressed) {
  21. switch(id) {
  22. case ROOT:
  23. SEND_STRING("sudo su -\n");
  24. return false; break;
  25. case PPLY:
  26. SEND_STRING("puppet apply /etc/puppetlabs/code/environments/production/manifests/site.pp\n");
  27. return false; break;
  28. case PSEF:
  29. SEND_STRING("ps -ef | grep ");
  30. return false; break;
  31. }
  32. }
  33. return MACRO_NONE;
  34. };
  35. void matrix_init_user(void) {
  36. #ifdef RGBLIGHT_ENABLE
  37. rgblight_enable_noeeprom();
  38. rgblight_mode_noeeprom(RGB_MODE);
  39. rgblight_sethsv (RGB_HUE, 255, 255);
  40. #endif
  41. #ifdef SOLENOID_ENABLE
  42. solenoid_setup();
  43. #endif
  44. }
  45. void matrix_scan_user(void) {
  46. #ifdef SOLENOID_ENABLE
  47. solenoid_check();
  48. #endif
  49. }
  50. bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  51. #ifdef SOLENOID_ENABLE
  52. if (record->event.pressed) {
  53. solenoid_fire();
  54. }
  55. #endif
  56. switch (keycode) {
  57. case QWERTY:
  58. if (record->event.pressed) {
  59. set_single_persistent_default_layer(_QWERTY);
  60. }
  61. return false;
  62. break;
  63. case LOWER:
  64. if (record->event.pressed) {
  65. layer_on(_LOWER);
  66. update_tri_layer(_LOWER, _RAISE, _ADJUST);
  67. } else {
  68. layer_off(_LOWER);
  69. update_tri_layer(_LOWER, _RAISE, _ADJUST);
  70. }
  71. return false;
  72. break;
  73. case RAISE:
  74. if (record->event.pressed) {
  75. layer_on(_RAISE);
  76. update_tri_layer(_LOWER, _RAISE, _ADJUST);
  77. } else {
  78. layer_off(_RAISE);
  79. update_tri_layer(_LOWER, _RAISE, _ADJUST);
  80. }
  81. return false;
  82. break;
  83. case ADJUST:
  84. if (record->event.pressed) {
  85. layer_on(_ADJUST);
  86. update_tri_layer(_LOWER, _RAISE, _ADJUST);
  87. } else {
  88. layer_off(_ADJUST);
  89. update_tri_layer(_LOWER, _RAISE, _ADJUST);
  90. }
  91. return false;
  92. break;
  93. case SOLENOID_TOG:
  94. #ifdef SOLENOID_ENABLE
  95. if (record->event.pressed) {
  96. solenoid_toggle();
  97. }
  98. #endif
  99. break;
  100. case SOLENOID_DWELL_MINUS:
  101. #ifdef SOLENOID_ENABLE
  102. if (record->event.pressed) {
  103. solenoid_dwell_minus();
  104. }
  105. #endif
  106. break;
  107. case SOLENOID_DWELL_PLUS:
  108. #ifdef SOLENOID_ENABLE
  109. if (record->event.pressed) {
  110. solenoid_dwell_plus();
  111. }
  112. #endif
  113. break;
  114. case SOLENOID_BUZZ_ON:
  115. #ifdef SOLENOID_ENABLE
  116. if (record->event.pressed) {
  117. solenoid_buzz_on();
  118. }
  119. #endif
  120. break;
  121. case SOLENOID_BUZZ_OFF:
  122. #ifdef SOLENOID_ENABLE
  123. if (record->event.pressed) {
  124. solenoid_buzz_off();
  125. }
  126. #endif
  127. break;
  128. }
  129. return true;
  130. };
  131. layer_state_t layer_state_set_user(layer_state_t state) {
  132. switch (biton32(state)) {
  133. case _RAISE:
  134. #ifdef RGBLIGHT_ENABLE
  135. rgblight_sethsv_noeeprom (240, 255, 255);
  136. #endif
  137. break;
  138. case _LOWER:
  139. #ifdef RGBLIGHT_ENABLE
  140. rgblight_sethsv_noeeprom (0, 255, 255);
  141. #endif
  142. break;
  143. case _ADJUST:
  144. #ifdef RGBLIGHT_ENABLE
  145. rgblight_sethsv_noeeprom (0, 0, 255);
  146. #endif
  147. break;
  148. default:
  149. #ifdef RGBLIGHT_ENABLE
  150. rgblight_sethsv_noeeprom (RGB_HUE, 255, 255);
  151. #endif
  152. break;
  153. }
  154. return state;
  155. }