]> git.donarmstrong.com Git - qmk_firmware.git/blob - users/wanleg/wanleg.c
Big Switch and 5x5 edits (#4168)
[qmk_firmware.git] / users / wanleg / wanleg.c
1 #include "wanleg.h"
2
3 // Defines actions for my global custom keycodes. Defined in wanleg.h file
4 // Then runs the _keymap's record handier if not processed here
5 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
6   switch (keycode) {
7     case QWERTY:
8       if (record->event.pressed) {
9         print("mode just switched to qwerty and this is a huge string\n");
10         set_single_persistent_default_layer(_QW);
11       }
12       return false;
13       break;
14     case GHERKIN:
15       if (record->event.pressed) {
16         set_single_persistent_default_layer(_GK);
17       }
18       return false;
19       break;
20     case gGHERKIN:
21       if (record->event.pressed) {
22         set_single_persistent_default_layer(gGK);
23       }
24       return false;
25       break;
26     case ONEHAND:
27     if (record->event.pressed) {
28       set_single_persistent_default_layer(ONE);
29       }
30       return false;
31       break;
32     case QWERTY75:
33     if (record->event.pressed) {
34       set_single_persistent_default_layer(QW75);
35       }
36       return false;
37       break;
38     case GHERKIN75:
39     if (record->event.pressed) {
40       set_single_persistent_default_layer(GK75);
41       }
42       return false;
43       break;
44     case NUMPAD:
45     if (record->event.pressed) {
46       set_single_persistent_default_layer(PAD);
47       }
48       return false;
49       break;
50     case GHERKIN50:
51     if (record->event.pressed) {
52       set_single_persistent_default_layer(GK50);
53       }
54       return false;
55       break;
56     case SUBTER:
57       if (record->event.pressed) {
58         layer_on(SUB);
59       } else {
60         layer_off(SUB);
61       }
62       return false;
63       break;
64     case SUPRA:
65       if (record->event.pressed) {
66         layer_on(SUP);
67       } else {
68         layer_off(SUP);
69       }
70       return false;
71       break;
72         case NUMBER:
73       if (record->event.pressed) {
74         layer_on(NUM);
75       } else {
76         layer_off(NUM);
77       }
78       return false;
79       break;
80         case DIRECTION:
81       if (record->event.pressed) {
82         layer_on(DIR);
83       } else {
84         layer_off(DIR);
85       }
86       return false;
87       break;
88         case ETCETERA:
89       if (record->event.pressed) {
90         layer_on(ETC);
91       } else {
92         layer_off(ETC);
93       }
94       return false;
95       break;
96   case gNUMBER:
97       if (record->event.pressed) {
98         layer_on(gNUM);
99       } else {
100         layer_off(gNUM);
101       }
102       return false;
103       break;
104   case gDIRECTION:
105       if (record->event.pressed) {
106         layer_on(gDIR);
107       } else {
108         layer_off(gDIR);
109       }
110       return false;
111       break;
112         case gETCETERA:
113       if (record->event.pressed) {
114         layer_on(gETC);
115       } else {
116         layer_off(gETC);
117       }
118       return false;
119       break;
120         case SUBTER75:
121       if (record->event.pressed) {
122         layer_on(SUB75);
123       } else {
124         layer_off(SUB75);
125       }
126       return false;
127       break;
128         case SUPRA75:
129       if (record->event.pressed) {
130         layer_on(SUP75);
131       } else {
132         layer_off(SUP75);
133       }
134       return false;
135       break;
136         case NUMBER75:
137       if (record->event.pressed) {
138         layer_on(NUM75);
139       } else {
140         layer_off(NUM75);
141       }
142       return false;
143       break;
144         case DIRECTION75:
145       if (record->event.pressed) {
146         layer_on(DIR75);
147       } else {
148         layer_off(DIR75);
149       }
150       return false;
151       break;
152         case ETCETERA75:
153       if (record->event.pressed) {
154         layer_on(ETC75);
155       } else {
156         layer_off(ETC75);
157       }
158       return false;
159       break;
160         case FUNCTION75:
161       if (record->event.pressed) {
162         layer_on(FN75);
163       } else {
164         layer_off(FN75);
165       }
166       return false;
167       break;
168   }
169   return true;
170 }
171
172 /// Turn off LEDs on ProMicros of Let's Split ///
173 // LEDs only on by default on Let's Split
174 // Add reconfigurable functions here, for keymap customization
175 // This allows for a global, userspace functions, and continued
176 // customization of the keymap.  Use _keymap instead of _user
177 // functions in the keymaps
178 __attribute__ ((weak))
179 void matrix_init_keymap(void) {}
180
181 // Call user matrix init, then call the keymap's init function
182 void matrix_init_user(void) {
183 #if defined(KEYBOARD_lets_split_rev2)
184   DDRD &= ~(1<<5);
185   PORTD &= ~(1<<5);
186
187   DDRB &= ~(1<<0);
188   PORTB &= ~(1<<0);
189 #endif
190   matrix_init_keymap();
191 }