void rgblight_mode(uint8_t mode) { if (!rgblight_config.enable) { return; } if (mode < 1) { rgblight_config.mode = 1; } else if (mode > RGBLIGHT_MODES) { rgblight_config.mode = RGBLIGHT_MODES; } else { rgblight_config.mode = mode; } eeconfig_update_rgblight(rgblight_config.raw); xprintf("rgblight mode: %u\n", rgblight_config.mode); if (rgblight_config.mode == 1) { #ifdef RGBLIGHT_ANIMATIONS rgblight_timer_disable(); #endif } else if (rgblight_config.mode >= 2 && rgblight_config.mode <= 23) { // MODE 2-5, breathing // MODE 6-8, rainbow mood // MODE 9-14, rainbow swirl // MODE 15-20, snake // MODE 21-23, knight #ifdef RGBLIGHT_ANIMATIONS rgblight_timer_enable(); #endif } rgblight_sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val); }
void matrix_scan_user(void) { if (runonce && timer_elapsed(my_timer) > 1000) { runonce = false; rgblight_sethsv(0x0, 0xff, 0x80); rgblight_mode(9); rgblight_enable(); } }
void rgblight_decrease_val(void) { uint8_t val; if (rgblight_config.val - RGBLIGHT_VAL_STEP < 0) { val = 0; } else { val = rgblight_config.val - RGBLIGHT_VAL_STEP; } rgblight_sethsv(rgblight_config.hue, rgblight_config.sat, val); }
void rgblight_increase_val(void) { uint8_t val; if (rgblight_config.val + RGBLIGHT_VAL_STEP > RGBLIGHT_LIMIT_VAL) { val = RGBLIGHT_LIMIT_VAL; } else { val = rgblight_config.val + RGBLIGHT_VAL_STEP; } rgblight_sethsv(rgblight_config.hue, rgblight_config.sat, val); }
void rgblight_decrease_sat(void) { uint8_t sat; if (rgblight_config.sat - RGBLIGHT_SAT_STEP < 0) { sat = 0; } else { sat = rgblight_config.sat - RGBLIGHT_SAT_STEP; } rgblight_sethsv(rgblight_config.hue, sat, rgblight_config.val); }
void rgblight_increase_sat(void) { uint8_t sat; if (rgblight_config.sat + RGBLIGHT_SAT_STEP > 255) { sat = 255; } else { sat = rgblight_config.sat + RGBLIGHT_SAT_STEP; } rgblight_sethsv(rgblight_config.hue, sat, rgblight_config.val); }
void rgblight_decrease_hue(void) { uint16_t hue; if (rgblight_config.hue-RGBLIGHT_HUE_STEP < 0) { hue = (rgblight_config.hue + 360 - RGBLIGHT_HUE_STEP) % 360; } else { hue = (rgblight_config.hue - RGBLIGHT_HUE_STEP) % 360; } rgblight_sethsv(hue, rgblight_config.sat, rgblight_config.val); }
void matrix_init_user(void) { if (!initialized){ dprintf("Initializing in matrix_scan_user"); rgblight_enable(); rgblight_mode(7); rgblight_sethsv(0,255,255); rgblight_setrgb(0x00, 0x00, 0xFF); initialized = 1; } }
bool process_record_user(uint16_t keycode, keyrecord_t *record) { #ifdef RGBLIGHT_ENABLE static uint32_t savedRgbMode; static uint16_t savedHue; static uint8_t savedSat; static uint8_t savedVal; if (keycode == KC_ESC) { if (record->event.pressed) { savedRgbMode = rgblight_get_mode(); savedHue = rgblight_get_hue(); savedSat = rgblight_get_sat(); savedVal = rgblight_get_val(); rgblight_mode(1); rgblight_setrgb(255, 0, 0); } else { rgblight_mode(savedRgbMode); rgblight_sethsv(savedHue, savedSat, savedVal); } } #endif // If console is enabled, it will print the matrix position and status of each key pressed #ifdef CONSOLE_ENABLE xprintf("KL: row: %u, column: %u, pressed: %u\n", record->event.key.row, record->event.key.col, record->event.pressed); #endif //CONSOLE_ENABLE switch (keycode) { case KC_MAKE: // Compiles the firmware, and adds the flash command based on keyboard bootloader if (!record->event.pressed) { SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP #if defined(BOOTLOADER_HALFKAY) ":teensy" #elif defined(BOOTLOADER_CATERINA) ":avrdude" #else ":dfu" #endif SS_TAP(X_ENTER)); } return false; break; } return process_record_keymap(keycode, record); }
bool process_record_userspace(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case CU_GAME: if(record->event.pressed) { game = !game; } return false; case KC_LGUI: case KC_RGUI: if (game) return false; else return true; case CU_NAV: if(record->event.pressed) { navesc = true; navesc_timer = timer_read(); layer_on(_NAV); } else { if (timer_elapsed(navesc_timer) < 200 && navesc) { register_code(KC_ESC); unregister_code(KC_ESC); } layer_off(_NAV); } return false; #ifdef RGBLIGHT_ENABLE case CU_RGBV: if(record->event.pressed) { if (rgblight_get_val()+32>255) rgblight_sethsv(rgblight_get_hue(), rgblight_get_sat(), 31); else rgblight_sethsv(rgblight_get_hue(), rgblight_get_sat(), rgblight_get_val()+32); } return false; #endif #ifdef GERMAN_ENABLE case CU_LSFT: if(record->event.pressed) { lshiftp = true; lshift_timer = timer_read(); unregister_code(KC_LSFT); register_code(KC_LSFT); lshift = true; } else { if (timer_elapsed(lshift_timer) < 200 && lshiftp && !game) { register_code(KC_LSFT); register_code(KC_8); unregister_code(KC_8); unregister_code(KC_LSFT); } unreg_prev(); if (!rshift) unregister_code(KC_LSFT); lshift = false; } return false; case CU_RSFT: if(record->event.pressed) { rshiftp = true; rshift_timer = timer_read(); unregister_code(KC_LSFT); register_code(KC_LSFT); rshift = true; } else { if (timer_elapsed(rshift_timer) < 200 && rshiftp && !game) { register_code(KC_LSFT); register_code(KC_9); unregister_code(KC_9); unregister_code(KC_LSFT); } unreg_prev(); if (!lshift) unregister_code(KC_LSFT); rshift = false; } return false; case CU_ESCT: if(record->event.pressed) { esct = !esct; } return false; case CU_AE: UML(DE_AE) case CU_OE: UML(DE_OE) case CU_UE: UML(DE_UE) case CU_SS: if(record->event.pressed) { timer_timeout(); unregister_code(KC_LSFT); register_code(DE_SS); unregister_code(DE_SS); if (lshift || rshift) register_code(KC_LSFT); layer_off(_DEADKEY); } return false; case CU_DDQ: if(record->event.pressed) { timer_timeout(); register_code(KC_LSFT); register_code(KC_2); unregister_code(KC_2); if (!lshift && !rshift) unregister_code(KC_LSFT); layer_off(_DEADKEY); } return false; case CU_ED: if(record->event.pressed) { timer_timeout(); layer_off(_DEADKEY); } return false; case CU_GRV: if(record->event.pressed) { timer_timeout(); if (lshift || rshift){ unregister_code(KC_LSFT); register_code(DE_ALGR); unregister_code(DE_PLUS); register_code(DE_PLUS); unregister_code(DE_PLUS); unregister_code(DE_ALGR); register_code(KC_LSFT); } else { register_code(KC_LSFT); unregister_code(DE_ACUT); register_code(DE_ACUT); unregister_code(DE_ACUT); unregister_code(KC_LSFT); if (!esct) { register_code(KC_SPC); unregister_code(KC_SPC); } } } return false; case CU_CIRC: if(record->event.pressed) { timer_timeout(); unregister_code(KC_LSFT); unregister_code(DE_CIRC); register_code(DE_CIRC); unregister_code(DE_CIRC); if (!esct) { register_code(KC_SPC); unregister_code(KC_SPC); } if (lshift || rshift) register_code(KC_LSFT); } return false; case CU_QUOT: if(record->event.pressed){ timer_timeout(); register_code(KC_LSFT); if (lshift || rshift){ layer_on(_DEADKEY); } else { unregister_code(DE_HASH); register_code(DE_HASH); add_to_prev(DE_HASH); } } else { unregister_code(DE_HASH); unreg_prev(); if (lshift || rshift) register_code(KC_LSFT); else unregister_code(KC_LSFT); } return false; case CU_6: if(record->event.pressed){ timer_timeout(); unregister_code(KC_LSFT); if (lshift || rshift){ unregister_code(DE_CIRC); register_code(DE_CIRC); unregister_code(DE_CIRC); if (!esct) { register_code(KC_SPC); unregister_code(KC_SPC); } register_code(KC_LSFT); } else { register_code(DE_6); } } else { unregister_code(DE_6); } return false; case CU_COMM: SHIFT_NO(DE_COMM, DE_LESS) case CU_DOT: SHIFT_NORM(DE_DOT, DE_LESS) case CU_SLSH: SHIFT_ALL(DE_7, DE_SS) case CU_SCLN: SHIFT_ALL(DE_COMM, DE_DOT) case CU_3: SHIFT_NO(DE_3, DE_HASH) case CU_7: SHIFT_NORM(DE_7, DE_6) case CU_8: SHIFT_NORM(DE_8, DE_PLUS) case CU_9: SHIFT_NORM(DE_9, DE_8) case CU_0: SHIFT_NORM(DE_0, DE_9) case CU_EQL: SHIFT_SWITCH(DE_0, DE_PLUS) case CU_LBRC: SHIFT_ALGR(DE_8, DE_7) case CU_RBRC: SHIFT_ALGR(DE_9, DE_0) case CU_BSLS: SHIFT_ALGR(DE_SS, DE_LESS) case CU_Z: CTRL(DE_Z, KC_Z) case CU_Y: CTRL(DE_Y, KC_Y) case KC_LCTL: case KC_RCTL: if(!record->event.pressed) { unregister_code(KC_Z); unregister_code(KC_Y); } return true; #endif default: if(record->event.pressed) { timer_timeout(); #ifdef GERMAN_ENABLE if (lshift || rshift) register_code(KC_LSFT); else unregister_code(KC_LSFT); #endif } return true; } }
void rgblight_increase_hue(void) { uint16_t hue; hue = (rgblight_config.hue+RGBLIGHT_HUE_STEP) % 360; rgblight_sethsv(hue, rgblight_config.sat, rgblight_config.val); }
void matrix_scan_user(void) { // runs frequently to update info uint8_t modifiders = get_mods(); uint8_t layer = biton32(layer_state); static bool has_layer_changed = true; if (!skip_leds) { ergodox_board_led_off(); ergodox_right_led_1_off(); ergodox_right_led_2_off(); ergodox_right_led_3_off(); // Since we're not using the LEDs here for layer indication anymore, // then lets use them for modifier indicators. Shame we don't have 4... // Also, no "else", since we want to know each, independantly. if ( modifiders & MODS_SHIFT_MASK) { ergodox_right_led_2_on(); } if ( modifiders & MODS_CTRL_MASK) { ergodox_right_led_1_on(); } if ( modifiders & MODS_ALT_MASK) { ergodox_right_led_3_on(); } } if (layer != current_layer) { has_layer_changed = true; current_layer = layer; } // Check layer, and apply color if its changed since last check if (has_layer_changed) { uint8_t default_layer = 0; default_layer = eeconfig_read_default_layer(); switch (layer) { case SYMB: rgblight_set_blue; rgblight_mode(2); break; case OVERWATCH: rgblight_set_orange; rgblight_mode(17); break; case DIABLO: rgblight_set_red; rgblight_mode(5); break; case MOUS: rgblight_set_urine; rgblight_mode(1); break; case 7: rgblight_sethsv (255,255,255); rgblight_mode(1); break; default: if (default_layer & (1UL << COLEMAK)) { rgblight_set_green; } else if (default_layer & (1UL << DVORAK)) { rgblight_set_magenta; } else if (default_layer & (1UL << WORKMAN)) { rgblight_set_purple; } else { rgblight_set_teal; } rgblight_mode(1); break; } has_layer_changed = false; } // Run Diablo 3 macro checking code. run_diablo_macro_check(); #ifdef LEADER_KEYS LEADER_DICTIONARY() { leading = false; leader_end(); SEQ_ONE_KEY(KC_C) { SEND_STRING("Covecube"); } SEQ_TWO_KEYS(KC_S, KC_D) { SEND_STRING("StableBit DrivePool"); } SEQ_TWO_KEYS(KC_C, KC_D) { SEND_STRING("StableBit CloudDrive"); }