mirror of
https://github.com/Keychron/qmk_firmware.git
synced 2024-11-30 12:47:37 +06:00
157 lines
3.4 KiB
C
157 lines
3.4 KiB
C
|
#ifndef GORDON
|
||
|
#define GORDON
|
||
|
|
||
|
#include "quantum.h"
|
||
|
#include "process_keycode/process_tap_dance.h"
|
||
|
|
||
|
|
||
|
// Fillers to make layering more clear
|
||
|
#define _______ KC_TRNS
|
||
|
#define ________ KC_TRNS
|
||
|
#define _________ KC_TRNS
|
||
|
#define XXXXXXX KC_NO
|
||
|
|
||
|
// KC codes that are too long
|
||
|
#define DOLLAR KC_DOLLAR
|
||
|
#define LSQUIGLY KC_LBRACKET
|
||
|
#define RSQUIGLY KC_RBRACKET
|
||
|
#define NUMLOCK KC_NUMLOCK
|
||
|
#define CAPLOCK KC_CAPSLOCK
|
||
|
#define BK_SLASH KC_BSLASH
|
||
|
#define ASTERSK KC_KP_ASTERISK
|
||
|
|
||
|
// Navigation
|
||
|
#define SNAPLEFT LGUI(KC_LEFT)
|
||
|
#define SNAPRGHT LGUI(KC_RIGHT)
|
||
|
#define SNAPUP LGUI(KC_UP)
|
||
|
#define SNAPDOWN LGUI(KC_DOWN)
|
||
|
#define PREVTAB LCTL(LSFT(KC_TAB))
|
||
|
#define NEXTTAB LCTL(KC_TAB)
|
||
|
#define WORKRIGHT LCTL(LGUI(KC_RIGHT))
|
||
|
#define WORKLEFT LCTL(LGUI(KC_LEFT))
|
||
|
|
||
|
// KC/modifier hold
|
||
|
#define CTRL_F CTL_T(KC_F)
|
||
|
#define CTRL_J CTL_T(KC_J)
|
||
|
#define CTRL_Z CTL_T(KC_Z)
|
||
|
#define ALT_V ALT_T(KC_V)
|
||
|
#define ALT_M ALT_T(KC_M)
|
||
|
#define WIN_G GUI_T(KC_G)
|
||
|
#define WIN_H GUI_T(KC_H)
|
||
|
#define HYPER_X ALL_T(KC_X)
|
||
|
#define HYPE_DOT ALL_T(KC_DOT)
|
||
|
#define MEH_S MEH_T(KC_S)
|
||
|
#define MEH_L MEH_T(KC_L)
|
||
|
#define ALT_HOME ALT_T(KC_HOME)
|
||
|
|
||
|
|
||
|
// KC/Layer Hold
|
||
|
#define NAV_E LT(_NAV,KC_E)
|
||
|
#define NUMPAD_D LT(_NUMPAD,KC_D)
|
||
|
#define MOUSE_C LT(_MOUSE,KC_C)
|
||
|
#define SYMB_BSP LT(_SYMBOLS,KC_BSPACE)
|
||
|
#define COL_MOUS LT(_MOUSE,KC_SCOLON)
|
||
|
#define SPAC_SYM LT(_SYMBOLS,KC_SPACE)
|
||
|
|
||
|
// Double Modifier ONLY hold
|
||
|
#define ALT_SHFT LSFT(KC_LALT)
|
||
|
#define CTR_SHFT LSFT(KC_LCTL)
|
||
|
|
||
|
// KC/Double modifier Hold
|
||
|
#define CTR_SH_W MT(MOD_LCTL|MOD_LSFT,KC_W)
|
||
|
#define CTR_AL_R MT(MOD_LCTL|MOD_LALT,KC_R)
|
||
|
|
||
|
//MISC
|
||
|
#define PRINTSCR KC_PSCREEN
|
||
|
#define CALTDEL LCTL(LALT(KC_DEL))
|
||
|
#define TSKMGR LCTL(LSFT(KC_ESC))
|
||
|
|
||
|
|
||
|
typedef struct {
|
||
|
bool is_press_action;
|
||
|
int state;
|
||
|
} xtap;
|
||
|
|
||
|
enum {
|
||
|
SINGLE_TAP = 1,
|
||
|
SINGLE_HOLD = 2,
|
||
|
DOUBLE_TAP = 3,
|
||
|
DOUBLE_HOLD = 4,
|
||
|
DOUBLE_SINGLE_TAP = 5, //send two single taps
|
||
|
TRIPLE_TAP = 6,
|
||
|
TRIPLE_HOLD = 7
|
||
|
};
|
||
|
|
||
|
enum gordon_layers
|
||
|
{
|
||
|
_QWERTY = 0,
|
||
|
_SYMBOLS,
|
||
|
_MOUSE,
|
||
|
_NUMPAD,
|
||
|
_NAV,
|
||
|
_MACROS,
|
||
|
_FUNCTION,
|
||
|
_TEXTNAV
|
||
|
};
|
||
|
|
||
|
|
||
|
|
||
|
void register_hyper (void);
|
||
|
void unregister_hyper (void);
|
||
|
|
||
|
void register_ctrl_a (void);
|
||
|
void unregister_ctrl_a (void);
|
||
|
|
||
|
void register_alt_f7 (void);
|
||
|
void unregister_alt_f7 (void);
|
||
|
|
||
|
void register_shift_f6 (void);
|
||
|
void unregister_shift_f6 (void);
|
||
|
|
||
|
void register_ctrl_shift (void);
|
||
|
void unregister_ctrl_shift (void);
|
||
|
|
||
|
void register_alt_shift (void);
|
||
|
void unregister_alt_shift (void);
|
||
|
|
||
|
int cur_dance (qk_tap_dance_state_t *state);
|
||
|
int hold_cur_dance (qk_tap_dance_state_t *state);
|
||
|
|
||
|
void x_finished (qk_tap_dance_state_t *state, void *user_data);
|
||
|
void x_reset (qk_tap_dance_state_t *state, void *user_data);
|
||
|
|
||
|
void h_finished (qk_tap_dance_state_t *state, void *user_data);
|
||
|
void h_reset (qk_tap_dance_state_t *state, void *user_data);
|
||
|
|
||
|
void tab_finished (qk_tap_dance_state_t *state, void *user_data);
|
||
|
void tab_reset (qk_tap_dance_state_t *state, void *user_data);
|
||
|
|
||
|
void comma_finished (qk_tap_dance_state_t *state, void *user_data);
|
||
|
void comma_reset (qk_tap_dance_state_t *state, void *user_data);
|
||
|
|
||
|
void bt_finished (qk_tap_dance_state_t *state, void *user_data);
|
||
|
void bt_reset (qk_tap_dance_state_t *state, void *user_data);
|
||
|
|
||
|
// Macro Declarations
|
||
|
enum {
|
||
|
INFOQM,
|
||
|
TIL_SLASH,
|
||
|
DEREF,
|
||
|
EQRIGHT,
|
||
|
TILD3,
|
||
|
TICK3,
|
||
|
ALTTAB_START,
|
||
|
ALTTAB_END
|
||
|
};
|
||
|
|
||
|
enum secret_strings {
|
||
|
KC_SECRET_1 = SAFE_RANGE,
|
||
|
KC_SECRET_2,
|
||
|
KC_SECRET_3,
|
||
|
KC_SECRET_4,
|
||
|
KC_SECRET_5,
|
||
|
};
|
||
|
|
||
|
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt);
|
||
|
|
||
|
#endif
|