1 #include "spacebarracecar.h"
8 uint16_t lshift_timer = 0;
9 uint16_t rshift_timer = 0;
11 uint8_t prev_indx = 0;
12 uint16_t prev_kcs[6] = {0, 0, 0, 0, 0, 0};
16 void add_to_prev(uint16_t kc){
17 for (int i=0; i<prev_indx; i++){
18 if (kc == prev_kcs[i])
22 for (int i=5; i>0; i--){
23 prev_kcs[i] = prev_kcs[i-1];
27 prev_kcs[prev_indx] = kc;
32 void unreg_prev(void){
35 for (int i=0; i<prev_indx; i++){
36 unregister_code(prev_kcs[i]);
44 uint16_t navesc_timer = 0;
47 void timer_timeout(void){
55 bool process_record_userspace(uint16_t keycode, keyrecord_t *record) {
58 if(record->event.pressed) {
69 if(record->event.pressed) {
71 navesc_timer = timer_read();
74 if (timer_elapsed(navesc_timer) < 200 && navesc) {
75 register_code(KC_ESC);
76 unregister_code(KC_ESC);
82 #ifdef RGBLIGHT_ENABLE
84 if(record->event.pressed) {
85 if (rgblight_get_val()+32>255)
86 rgblight_sethsv(rgblight_get_hue(), rgblight_get_sat(), 31);
88 rgblight_sethsv(rgblight_get_hue(), rgblight_get_sat(), rgblight_get_val()+32);
95 if(record->event.pressed) {
97 lshift_timer = timer_read();
98 unregister_code(KC_LSFT);
99 register_code(KC_LSFT);
102 if (timer_elapsed(lshift_timer) < 200 && lshiftp && !game) {
103 register_code(KC_LSFT);
105 unregister_code(KC_8);
106 unregister_code(KC_LSFT);
110 unregister_code(KC_LSFT);
115 if(record->event.pressed) {
117 rshift_timer = timer_read();
118 unregister_code(KC_LSFT);
119 register_code(KC_LSFT);
122 if (timer_elapsed(rshift_timer) < 200 && rshiftp && !game) {
123 register_code(KC_LSFT);
125 unregister_code(KC_9);
126 unregister_code(KC_LSFT);
130 unregister_code(KC_LSFT);
135 if(record->event.pressed) {
146 if(record->event.pressed) {
148 unregister_code(KC_LSFT);
149 register_code(DE_SS);
150 unregister_code(DE_SS);
151 if (lshift || rshift)
152 register_code(KC_LSFT);
157 if(record->event.pressed) {
159 register_code(KC_LSFT);
161 unregister_code(KC_2);
162 if (!lshift && !rshift)
163 unregister_code(KC_LSFT);
168 if(record->event.pressed) {
174 if(record->event.pressed) {
176 if (lshift || rshift){
177 unregister_code(KC_LSFT);
178 register_code(DE_ALGR);
179 unregister_code(DE_PLUS);
180 register_code(DE_PLUS);
181 unregister_code(DE_PLUS);
182 unregister_code(DE_ALGR);
183 register_code(KC_LSFT);
185 register_code(KC_LSFT);
186 unregister_code(DE_ACUT);
187 register_code(DE_ACUT);
188 unregister_code(DE_ACUT);
189 unregister_code(KC_LSFT);
191 register_code(KC_SPC);
192 unregister_code(KC_SPC);
198 if(record->event.pressed) {
200 unregister_code(KC_LSFT);
201 unregister_code(DE_CIRC);
202 register_code(DE_CIRC);
203 unregister_code(DE_CIRC);
205 register_code(KC_SPC);
206 unregister_code(KC_SPC);
208 if (lshift || rshift)
209 register_code(KC_LSFT);
213 if(record->event.pressed){
215 register_code(KC_LSFT);
216 if (lshift || rshift){
219 unregister_code(DE_HASH);
220 register_code(DE_HASH);
221 add_to_prev(DE_HASH);
224 unregister_code(DE_HASH);
226 if (lshift || rshift)
227 register_code(KC_LSFT);
229 unregister_code(KC_LSFT);
233 if(record->event.pressed){
235 unregister_code(KC_LSFT);
236 if (lshift || rshift){
237 unregister_code(DE_CIRC);
238 register_code(DE_CIRC);
239 unregister_code(DE_CIRC);
241 register_code(KC_SPC);
242 unregister_code(KC_SPC);
244 register_code(KC_LSFT);
249 unregister_code(DE_6);
253 SHIFT_NO(DE_COMM, DE_LESS)
255 SHIFT_NORM(DE_DOT, DE_LESS)
257 SHIFT_ALL(DE_7, DE_SS)
259 SHIFT_ALL(DE_COMM, DE_DOT)
261 SHIFT_NO(DE_3, DE_HASH)
263 SHIFT_NORM(DE_7, DE_6)
265 SHIFT_NORM(DE_8, DE_PLUS)
267 SHIFT_NORM(DE_9, DE_8)
269 SHIFT_NORM(DE_0, DE_9)
271 SHIFT_SWITCH(DE_0, DE_PLUS)
273 SHIFT_ALGR(DE_8, DE_7)
275 SHIFT_ALGR(DE_9, DE_0)
277 SHIFT_ALGR(DE_SS, DE_LESS)
284 if(!record->event.pressed) {
285 unregister_code(KC_Z);
286 unregister_code(KC_Y);
292 if(record->event.pressed) {
296 if (lshift || rshift)
297 register_code(KC_LSFT);
299 unregister_code(KC_LSFT);