]> git.donarmstrong.com Git - qmk_firmware.git/blob - users/arkag/arkag.h
Replace td_lshift_fn with generic td_mod_layer, add TD_RCTL_FN
[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 KEEB        MO(3)
21 #define MEDIA       MO(4)
22 #define LAZY        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   _KEEB,
41   _MEDIA,
42   _LAZY,
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_P_B,
80   M_C_A_D,
81   M_CALC,
82   M_OS,
83   M_TF,
84   M_TM,
85   M_GGT,
86   M_LOD,
87   M_LENNY,
88   M_BOLD,
89   M_ITAL,
90   M_ULIN,
91   M_SNIPT,
92   M_REPO,
93   M_SHRUG,
94   M_UF,
95 };
96
97 enum tapdances {
98   TD_3_GRV_ACT = 0,
99   TD_C_CED,
100   TD_GRV_3GRV,
101   TD_SLSH_HTTP,
102   TD_SING_DOUB,
103   TD_HYPH_UNDR,
104   TD_STRK_SHOT,
105   TD_SPECIAL,
106   TD_BRCK_PARN_O,
107   TD_BRCK_PARN_C,
108   TD_LALT_RALT,
109   SPC_SFT_NSFT,
110 };
111
112 void send_unicode_hex_string(const char *str);
113
114 void velocikey_accelerate(void);
115 void velocikey_decelerate(void);
116 uint8_t velocikey_match_speed(uint8_t minValue, uint8_t maxValue);
117
118 void set_color (Color new, bool update);
119 void save_color(Color to_save);
120 void reset_color(void);
121
122 Color mod_color(Color current_color, bool should_add, uint8_t change_amount);
123
124 void reverse_fade (void);
125
126 void check_state (void);
127
128 void fade_rgb (void);
129
130 void flash_rgb (void);
131
132 void set_os (uint8_t os, bool update);
133
134 void tap_key(uint8_t keycode);
135
136 void pri_mod(bool press);
137
138 void sec_mod(bool press);
139
140 void surround_type(uint8_t num_of_chars, uint16_t keycode, bool use_shift);
141
142 void long_keystroke(size_t num_of_keys, uint16_t keys[]);
143
144 void dance_grv (qk_tap_dance_state_t *state, void *user_data);
145 void dance_quot (qk_tap_dance_state_t *state, void *user_data);
146 void dance_strk (qk_tap_dance_state_t *state, void *user_data);
147 void dance_3 (qk_tap_dance_state_t *state, void *user_data);
148 void dance_c (qk_tap_dance_state_t *state, void *user_data);
149
150 int cur_dance (qk_tap_dance_state_t *state);
151 void spc_finished (qk_tap_dance_state_t *state, void *user_data);
152 void spc_reset (qk_tap_dance_state_t *state, void *user_data);