- #pragma once
-
- #include QMK_KEYBOARD_H
-
- #define EECONFIG_USERSPACE (uint8_t *)20
-
- #define SYMBOL MO(1)
- #define MEDIA MO(2)
- #define ARROW MO(3)
- #define FUNCT MO(4)
- #define KEEB MO(5)
-
- #define L_BIT_MEH MOD_BIT(KC_LCTL) | MOD_BIT(KC_LALT) | MOD_BIT(KC_LSFT)
- #define L_BIT_HYPR MOD_BIT(KC_LCTL) | MOD_BIT(KC_LGUI) | MOD_BIT(KC_LALT) | MOD_BIT(KC_LSFT)
-
- #define LED_FLASH_DELAY 150
-
- #define ACCEL_DELAY 500
- #define DEACCEL_DELAY 500
-
- #define INACTIVE_DELAY 250
- #define SLEEP_DELAY 180000
-
- #define HUE_MAX 254
-
- enum {
- _QWERTY = 0,
- _SYMBOL,
- _MEDIA,
- _ARROW,
- _FUNCT,
- _KEEB,
- };
-
- typedef enum {
- OS_MAC, // Don't assign values
- OS_WIN,
- OS_NIX,
- _OS_COUNT,
- } OS;
-
- typedef struct {
- uint16_t h;
- uint8_t s;
- uint8_t v;
- } Color;
-
- typedef enum {
- no_flash = 0,
- flash_off,
- flash_on,
- } flashState;
-
- typedef enum {
- add_fade = 0,
- sub_fade,
- } fadeState;
-
- typedef enum {
- active = 0,
- inactive,
- boot,
- } activityState;
-
- enum custom_keycodes {
- M_PMOD = SAFE_RANGE,
- M_SMOD,
- M_OS,
- M_DASH,
- M_USSR,
- M_EHYPR,
- M_LMHYP,
- M_SFTY,
- M_AEST,
- };
-
- void velocikey_accelerate(void);
- void velocikey_decelerate(void);
- uint8_t velocikey_match_speed(uint8_t minValue, uint8_t maxValue);
-
- void set_color (Color new, bool update);
- void save_color(Color to_save);
- void reset_color(void);
-
- Color mod_color(Color current_color, bool should_add, uint8_t change_amount);
-
- void reverse_fade (void);
-
- void check_state (void);
-
- void fade_rgb (void);
-
- void flash_rgb (void);
-
- void set_os (uint8_t os, bool update);
-
- void tap_key(uint8_t keycode);
-
- void pri_mod(bool press);
-
- void sec_mod(bool press);
-
- void meh_hyper(bool press);
-
- void multi_tap(uint8_t num_of_chars, uint16_t keycode, bool use_shift);
-
- void surround_type(uint8_t num_of_chars, uint16_t keycode, bool use_shift);
- void pair_surround_type(uint8_t num_of_chars, uint16_t keycode, bool use_shift);
-
- void long_keystroke(size_t num_of_keys, uint16_t keys[]);
|