summaryrefslogtreecommitdiff
path: root/users/stanrc85/stanrc85.h
blob: a6550ca72cdfb7d460fe5ccd49bd34a927337c76 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#pragma once

#include "quantum.h"
#include "version.h"

enum my_layers {
  _NUMPAD = 0,  //Macropad numpad
  _NAVKEY,      //Macropad nav keys
  _MEDIA,       //Macropad media controls
  _RGB,         //Macropad RGB controls
  _FN1PAD,      //Macropad reset and make commands
  _QWERTY = 0,  //Qwerty with custom shortcuts and functions
  _DEFAULT,     //Default ANSI for gaming, enable with FN2+RCtl
  _FN1_60,      //Function keys, arrows, custom shortcuts, volume control
  _FN2_60       //RGB Underglow controls and RESET
};

//Aliases for longer keycodes
#define KC_CAD	LALT(LCTL(KC_DEL))
#define KC_LOCK	LGUI(KC_L)
#define CA_QUOT LCA(KC_QUOT)
#define CA_SCLN LCA(KC_SCLN)
#define KC_CTLE LCTL_T(KC_ESC)
#define LT_SPCF LT(_FN1_60, KC_SPC)
#define LT_BPCF LT(_FN1_60, KC_BSPC)
#define TD_TESC TD(TD_ESC)
#define TD_TWIN TD(TD_WIN)
#define TD_TCTL TD(TD_RCTL)
#define CA_COPY LCTL(KC_C)
#define CA_PSTE LCTL(KC_V)

enum cust_keys {
  KC_MAKE = SAFE_RANGE,
  KC_RDP
};

enum tap_dance {
  TD_WIN,
  TD_ESC,
  TD_RCTL
};

// define a type containing as many tapdance states as you need
typedef enum {
  SINGLE_TAP,
  SINGLE_HOLD,
  DOUBLE_TAP
} td_state_t;

// function to determine the current tapdance state
int cur_dance (tap_dance_state_t *state);

// `finished` and `reset` functions for each tapdance keycode
void ctl_copy_finished (tap_dance_state_t *state, void *user_data);
void ctl_copy_reset (tap_dance_state_t *state, void *user_data);