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