mirror of
https://github.com/Keychron/qmk_firmware.git
synced 2024-12-26 11:08:52 +06:00
200 lines
5.9 KiB
C
200 lines
5.9 KiB
C
#ifndef USERSPACE
|
|
#define USERSPACE
|
|
|
|
#include "quantum.h"
|
|
|
|
enum userspace_custom_keycodes {
|
|
KC_MAKE = SAFE_RANGE, // can always be here
|
|
DFAULTS,
|
|
TOGGLE_BACKLIGHT,
|
|
EFFECT,
|
|
EFFECT_END = EFFECT + 20
|
|
};
|
|
|
|
#ifndef RESET_LAYER
|
|
#define RESET_LAYER 15
|
|
#endif
|
|
|
|
enum layers {
|
|
_BASE = 0,
|
|
_WORKMAN,
|
|
_NORMAN,
|
|
_DVORAK,
|
|
_COLMAK,
|
|
_MALTROFF,
|
|
_GAME,
|
|
_NAV,
|
|
_NUM,
|
|
_ADJUST,
|
|
_RESET = RESET_LAYER,
|
|
};
|
|
|
|
enum tap_dancers {
|
|
TD_SEMICOLON,
|
|
TD_GRAVE,
|
|
TD_QUOTE,
|
|
};
|
|
|
|
#define MO_NAV MO(_NAV)
|
|
#define MO_ADJ MO(_ADJUST)
|
|
#define MO_RST MO(_RESET)
|
|
#define TG_ADJ TG(_ADJUST)
|
|
#define TG_NUM TG(_NUM)
|
|
#ifdef ENABLE_GAME_LAYER
|
|
#define TG_GAME TG(_GAME)
|
|
#else
|
|
#define TG_GAME KC_NO
|
|
#endif
|
|
#define LY_QWER DF(_BASE)
|
|
#define LY_WORK DF(_WORKMAN)
|
|
#define LY_NRMN DF(_NORMAN)
|
|
#define LY_DVRK DF(_DVORAK)
|
|
#define LY_CLMK DF(_COLMAK)
|
|
#if SPACE_COUNT >= 2
|
|
#define LY_MALT DF(_MALTROFF)
|
|
#else
|
|
#define LY_MALT KC_NO
|
|
#endif
|
|
#define TG_NKRO MAGIC_TOGGLE_NKRO
|
|
#define KC_PTT KC_F24
|
|
#define MS_MID KC_MS_BTN3
|
|
#define FX(x) (EFFECT + x)
|
|
|
|
#define CTL_ESC CTL_T(KC_ESC)
|
|
#define US_ENT RCTL_T(KC_ENT)
|
|
#define US_MINS RCTL_T(KC_QUOT)
|
|
#define US_BSLS LCA_T(KC_BSLS)
|
|
#define US_SCLN TD(TD_SEMICOLON)
|
|
#define US_GRV TD(TD_GRAVE)
|
|
#define US_QUOT TD(TD_QUOTE)
|
|
#define US_TAB C_S_T(KC_TAB)
|
|
#define SH_LBRC LSFT_T(KC_LBRC)
|
|
#define SH_RBRC RSFT_T(KC_RBRC)
|
|
|
|
#define MLT_E LT(_NUM, KC_E)
|
|
|
|
#ifndef SPACE_COUNT
|
|
#define SPACE_COUNT 1
|
|
#endif
|
|
#if (SPACE_COUNT == 1)
|
|
#define KC_SPC1 LT(_NAV, KC_SPC)
|
|
#define KC_SPC2 XXXXXXX
|
|
#define KC_SPC3 XXXXXXX
|
|
|
|
#define NV_SPC1 _______
|
|
#define NV_SPC2 _______
|
|
#define NV_SPC3 _______
|
|
|
|
#define NM_SPC1 _______
|
|
#define NM_SPC2 _______
|
|
#define NM_SPC3 _______
|
|
#elif (SPACE_COUNT == 2)
|
|
#define KC_SPC1 LT(_NAV,KC_SPC)
|
|
#define KC_SPC2 LT(_NUM,KC_ENT)
|
|
|
|
#define NV_SPC1 KC_SPC
|
|
#define NV_SPC2 KC_ENT
|
|
|
|
#define NM_SPC1 KC_0
|
|
#define NM_SPC2 KC_SPC
|
|
|
|
#define KC_SPC3 XXXXXXX
|
|
#define NV_SPC3 XXXXXXX
|
|
#define NM_SPC3 XXXXXXX
|
|
#elif (SPACE_COUNT == 3)
|
|
#ifdef SWAP_HANDS_ENABLE
|
|
#define KC_SPC1 SH_T(KC_BSPC)
|
|
#else
|
|
#define KC_SPC1 KC_BSPC
|
|
#endif
|
|
#define KC_SPC2 LT(_NUM,KC_ENT)
|
|
#define KC_SPC3 LT(_NAV,KC_SPC)
|
|
|
|
#define NV_SPC1 KC_SPC
|
|
#define NV_SPC2 KC_ENT
|
|
#define NV_SPC3 KC_SPC
|
|
|
|
#define NM_SPC1 KC_SPC
|
|
#define NM_SPC2 XXXXXXX
|
|
#define NM_SPC3 KC_0
|
|
#else
|
|
#error "Unsupported space count:" SPACE_COUNT
|
|
#endif
|
|
|
|
#ifndef ZEAL_RGB
|
|
#define BR_INC KC_NO
|
|
#define BR_DEC KC_NO
|
|
#define EF_INC KC_NO
|
|
#define EF_DEC KC_NO
|
|
#define ES_INC KC_NO
|
|
#define ES_DEC KC_NO
|
|
#define H1_INC KC_NO
|
|
#define H1_DEC KC_NO
|
|
#define S1_INC KC_NO
|
|
#define S1_DEC KC_NO
|
|
#define H2_INC KC_NO
|
|
#define H2_DEC KC_NO
|
|
#define S2_INC KC_NO
|
|
#define S2_DEC KC_NO
|
|
#define FN_MO13 KC_NO
|
|
#define FN_MO2 KC_NO
|
|
#endif
|
|
|
|
#ifndef TEMPLATE
|
|
#define _X_ KC_NO
|
|
#define TEMPLATE( \
|
|
KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2, KJ6, \
|
|
KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3, \
|
|
KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6, KB1, \
|
|
KN2, KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0, KN3, KA5, \
|
|
KA4, KP2, KC6, KX1, KK6, KX2, KC0, KM3, KD0, KA1 \
|
|
) TEMPLATE_TKL ( \
|
|
KJ6, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, KA5, \
|
|
KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2, _X_, _X_, _X_, \
|
|
KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3, _X_, _X_, _X_, \
|
|
KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6, KB1, \
|
|
KN2, KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0, KN3, _X_, \
|
|
KA4, KP2, KC6, KX1, KK6, KX2, KC0, KM3, KD0, KA1, _X_, _X_, _X_ \
|
|
)
|
|
#endif
|
|
#ifndef TEMPLATE_TKL
|
|
#define TEMPLATE_TKL( \
|
|
KJ6, KI4, KH4, KH2, KH6, KA7, KE6, KD2, KD4, KB4, KB7, KB6, KB0, KC7, KC5, KA5, \
|
|
KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2, KL4, KO4, KQ4, \
|
|
KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3, KK4, KO7, KQ7, \
|
|
KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6, KB1, \
|
|
KN2, KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0, KN3, KO6, \
|
|
KA4, KP2, KC6, KX1, KK6, KX2, KC0, KM3, KD0, KA1, KO0, KK0, KL0 \
|
|
) TEMPLATE( \
|
|
KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2, KJ6, \
|
|
KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3, \
|
|
KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6, KB1, \
|
|
KN2, KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0, KN3, KA5, \
|
|
KA4, KP2, KC6, KX1, KK6, KX2, KC0, KM3, KD0, KA1 \
|
|
)
|
|
#endif
|
|
|
|
#ifndef TEMPLATE_ALT
|
|
#define TEMPLATE_ALT TEMPLATE
|
|
#endif
|
|
#ifndef TEMPLATE_NUM
|
|
#define TEMPLATE_NUM TEMPLATE_ALT
|
|
#endif
|
|
#ifndef TEMPLATE_NAV
|
|
#define TEMPLATE_NAV TEMPLATE_ALT
|
|
#endif
|
|
#ifndef TEMPLATE_ADJUST
|
|
#define TEMPLATE_ADJUST TEMPLATE_ALT
|
|
#endif
|
|
|
|
#ifndef TEMPLATE_RESET
|
|
#define TEMPLATE_RESET TEMPLATE_ALT( \
|
|
RESET , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET , \
|
|
RESET , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET , \
|
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
|
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
|
|
RESET , XXXXXXX, XXXXXXX, XXXXXXX, RESET , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX)
|
|
#endif
|
|
|
|
#endif
|