]> git.donarmstrong.com Git - qmk_firmware.git/blob - users/arkag/arkag.h
fresh commit for a new fork for PR to upstream/master (#5406)
[qmk_firmware.git] / users / arkag / arkag.h
1 #pragma once
2
3 #include "quantum.h"
4 #include "process_keycode/process_tap_dance.h"
5
6 #define EECONFIG_USERSPACE (uint8_t *)20
7
8 #define LRALT       TD(TD_LALT_RALT)
9 #define QUOTE       TD(TD_SING_DOUB)
10 #define GRAVE       TD(TD_GRV_3GRV)
11 #define OBRACK      TD(TD_BRCK_PARN_O)
12 #define CBRACK      TD(TD_BRCK_PARN_C)
13 #define THREE       TD(TD_3_GRV_ACT)
14 #define STRIKE      TD(TD_STRK_SHOT)
15 #define HYPHEN      TD(TD_HYPH_UNDR)
16 #define CEDILLA     TD(TD_C_CED)
17
18 #define RAISE       MO(1)
19 #define LOWER       MO(2)
20 #define MEDIA       MO(3)
21 #define FUNCT       MO(4)
22 #define KEEB        MO(5)
23
24 #define MOD_CTL_MASK (MOD_BIT(KC_LCTL) | MOD_BIT(KC_RCTL))
25 #define MOD_GUI_MASK (MOD_BIT(KC_LGUI) | MOD_BIT(KC_RGUI))
26 #define MOD_SFT_MASK (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT))
27
28 #define LED_FLASH_DELAY       150
29
30 #define ACCEL_DELAY           500
31 #define DEACCEL_DELAY         500
32
33 #define INACTIVE_DELAY        250
34 #define SLEEP_DELAY           180000
35
36 enum {
37   _QWERTY = 0,
38   _RAISE,
39   _LOWER,
40   _MEDIA,
41   _FUNCT,
42   _KEEB,
43 };
44
45 typedef enum {
46   OS_MAC, // Don't assign values
47   OS_WIN,
48   OS_NIX,
49   _OS_COUNT,
50 } OS;
51
52 typedef struct {
53   uint16_t  h;
54   uint8_t   s;
55   uint8_t   v;
56 } Color;
57
58 typedef enum {
59   no_flash = 0,
60   flash_off,
61   flash_on,
62 } flashState;
63
64 typedef enum {
65   add_fade = 0,
66   sub_fade,
67 } fadeState;
68
69 typedef enum {
70   active = 0,
71   inactive,
72   sleeping,
73   boot,
74 } activityState;
75
76 enum custom_keycodes {
77   M_PMOD = SAFE_RANGE,
78   M_SMOD,
79   M_OS,
80   M_SFT,
81   M_SPC,
82 };
83
84 enum tapdances {
85   TD_3_GRV_ACT = 0,
86   TD_C_CED,
87   TD_GRV_3GRV,
88   TD_SLSH_HTTP,
89   TD_SING_DOUB,
90   TD_HYPH_UNDR,
91   TD_SPECIAL,
92   TD_BRCK_PARN_O,
93   TD_BRCK_PARN_C,
94   TD_LALT_RALT,
95 };
96
97 void velocikey_accelerate(void);
98 void velocikey_decelerate(void);
99 uint8_t velocikey_match_speed(uint8_t minValue, uint8_t maxValue);
100
101 void set_color (Color new, bool update);
102 void save_color(Color to_save);
103 void reset_color(void);
104
105 Color mod_color(Color current_color, bool should_add, uint8_t change_amount);
106
107 void reverse_fade (void);
108
109 void check_state (void);
110
111 void fade_rgb (void);
112
113 void flash_rgb (void);
114
115 void set_os (uint8_t os, bool update);
116
117 void tap_key(uint8_t keycode);
118
119 void pri_mod(bool press);
120
121 void sec_mod(bool press);
122
123 void surround_type(uint8_t num_of_chars, uint16_t keycode, bool use_shift);
124
125 void long_keystroke(size_t num_of_keys, uint16_t keys[]);
126
127 void dance_grv (qk_tap_dance_state_t *state, void *user_data);
128 void dance_quot (qk_tap_dance_state_t *state, void *user_data);
129 void dance_strk (qk_tap_dance_state_t *state, void *user_data);
130 void dance_3 (qk_tap_dance_state_t *state, void *user_data);
131 void dance_c (qk_tap_dance_state_t *state, void *user_data);
132
133 int cur_dance (qk_tap_dance_state_t *state);
134 void spc_finished (qk_tap_dance_state_t *state, void *user_data);
135 void spc_reset (qk_tap_dance_state_t *state, void *user_data);