]> git.donarmstrong.com Git - qmk_firmware.git/blob - users/gordon/gordon.h
a failed attempt at hot-plugging
[qmk_firmware.git] / users / gordon / gordon.h
1 #ifndef GORDON
2 #define GORDON
3
4 #include "quantum.h"
5 #include "process_keycode/process_tap_dance.h"
6
7
8 // Fillers to make layering more clear
9 #define _______ KC_TRNS
10 #define ________ KC_TRNS
11 #define _________ KC_TRNS
12 #define XXXXXXX KC_NO
13
14 // KC codes that are too long
15 #define DOLLAR KC_DOLLAR
16 #define LSQUIGLY KC_LBRACKET
17 #define RSQUIGLY KC_RBRACKET
18 #define NUMLOCK KC_NUMLOCK
19 #define CAPLOCK KC_CAPSLOCK
20 #define BK_SLASH KC_BSLASH
21 #define ASTERSK KC_KP_ASTERISK
22  
23 // Navigation
24 #define SNAPLEFT  LGUI(KC_LEFT)
25 #define SNAPRGHT  LGUI(KC_RIGHT)
26 #define SNAPUP    LGUI(KC_UP)
27 #define SNAPDOWN  LGUI(KC_DOWN)
28 #define PREVTAB   LCTL(LSFT(KC_TAB))
29 #define NEXTTAB   LCTL(KC_TAB)
30 #define WORKRIGHT LCTL(LGUI(KC_RIGHT))
31 #define WORKLEFT  LCTL(LGUI(KC_LEFT))
32
33 // KC/modifier hold
34 #define CTRL_F   CTL_T(KC_F)
35 #define CTRL_J   CTL_T(KC_J)
36 #define CTRL_Z   CTL_T(KC_Z)
37 #define ALT_V    ALT_T(KC_V)
38 #define ALT_M    ALT_T(KC_M)
39 #define WIN_G    GUI_T(KC_G)
40 #define WIN_H    GUI_T(KC_H)
41 #define HYPER_X  ALL_T(KC_X)
42 #define HYPE_DOT ALL_T(KC_DOT)
43 #define MEH_S    MEH_T(KC_S)
44 #define MEH_L    MEH_T(KC_L)
45 #define ALT_HOME ALT_T(KC_HOME)
46
47
48 // KC/Layer Hold
49 #define NAV_E    LT(_NAV,KC_E)
50 #define NUMPAD_D LT(_NUMPAD,KC_D)
51 #define MOUSE_C  LT(_MOUSE,KC_C)
52 #define SYMB_BSP LT(_SYMBOLS,KC_BSPACE)
53 #define COL_MOUS LT(_MOUSE,KC_SCOLON)
54 #define SPAC_SYM LT(_SYMBOLS,KC_SPACE)
55
56 // Double Modifier ONLY hold
57 #define ALT_SHFT LSFT(KC_LALT)
58 #define CTR_SHFT LSFT(KC_LCTL)
59
60 // KC/Double modifier Hold
61 #define CTR_SH_W MT(MOD_LCTL|MOD_LSFT,KC_W)
62 #define CTR_AL_R MT(MOD_LCTL|MOD_LALT,KC_R)
63
64 //MISC
65 #define PRINTSCR KC_PSCREEN
66 #define CALTDEL LCTL(LALT(KC_DEL))
67 #define TSKMGR LCTL(LSFT(KC_ESC))
68
69
70 typedef struct {
71   bool is_press_action;
72   int state;
73 } xtap;
74
75 enum {
76   SINGLE_TAP = 1,
77   SINGLE_HOLD = 2,
78   DOUBLE_TAP = 3,
79   DOUBLE_HOLD = 4,
80   DOUBLE_SINGLE_TAP = 5, //send two single taps
81   TRIPLE_TAP = 6,
82   TRIPLE_HOLD = 7
83 };
84
85 enum gordon_layers
86 {
87   _QWERTY = 0,
88   _SYMBOLS,
89   _MOUSE,
90   _NUMPAD,
91   _NAV,
92   _MACROS,
93   _FUNCTION,
94   _TEXTNAV
95 };
96
97
98
99 void register_hyper (void);
100 void unregister_hyper (void);
101
102 void register_ctrl_a (void); 
103 void unregister_ctrl_a (void); 
104
105 void register_alt_f7 (void); 
106 void unregister_alt_f7 (void);
107
108 void register_shift_f6 (void); 
109 void unregister_shift_f6 (void); 
110
111 void register_ctrl_shift (void); 
112 void unregister_ctrl_shift (void); 
113
114 void register_alt_shift (void); 
115 void unregister_alt_shift (void);
116
117 int cur_dance (qk_tap_dance_state_t *state); 
118 int hold_cur_dance (qk_tap_dance_state_t *state); 
119
120 void x_finished (qk_tap_dance_state_t *state, void *user_data);
121 void x_reset (qk_tap_dance_state_t *state, void *user_data);
122
123 void h_finished (qk_tap_dance_state_t *state, void *user_data);
124 void h_reset (qk_tap_dance_state_t *state, void *user_data);
125
126 void tab_finished (qk_tap_dance_state_t *state, void *user_data);
127 void tab_reset (qk_tap_dance_state_t *state, void *user_data);
128
129 void comma_finished (qk_tap_dance_state_t *state, void *user_data);
130 void comma_reset (qk_tap_dance_state_t *state, void *user_data);
131
132 void bt_finished (qk_tap_dance_state_t *state, void *user_data);
133 void bt_reset (qk_tap_dance_state_t *state, void *user_data);
134
135 // Macro Declarations
136 enum {
137   INFOQM,
138   TIL_SLASH,
139   DEREF,
140   EQRIGHT,
141   TILD3,
142   TICK3,
143   ALTTAB_START,
144   ALTTAB_END
145 };
146
147 enum secret_strings {
148   KC_SECRET_1 = SAFE_RANGE,
149   KC_SECRET_2,
150   KC_SECRET_3,
151   KC_SECRET_4,
152   KC_SECRET_5,
153 };
154
155 const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt);
156
157 #endif