qmk-keychron-q3-colemak-dh/users/replicaJunction/replicaJunction.h

115 lines
2.8 KiB
C

#pragma once
#include "quantum.h"
///////////////////////////////////////////////////////////////////////////////
// Keymap definitions
///////////////////////////////////////////////////////////////////////////////
// Layer definitions
// #define L_COLEMAK 0
// #define L_QWERTY 1
// #define L_NUM 2
// #define L_EXTEND 3
// #define L_FUNC 4
// #define L_GAMING 5
// #define L_SYMBOL 6
// #define L_LL_R 7
// #define L_LL_S 8
// #define L_LL_E 9
// #define L_LL_I 10
// Keyboard aliases
#define ooooooo KC_TRNS
#define MO_FUNC MO(L_FUNC)
#define TT_NUM TT(L_NUM)
#define TG_GAME TG(L_GAMING)
#define OSL_SYM OSL(L_SYMBOL)
#define OSM_LSF OSM(MOD_LSFT)
#define OSM_RSF OSM(MOD_RSFT)
#define KX_CTSF LCTL(KC_LSFT)
#define KX_STAB LSFT(KC_TAB)
#define KX_CGR LCTL(KC_GRV)
#define KX_PAST LCTL(LGUI(LALT(KC_V)))
#define KX_SRCH LCTL(LGUI(LALT(KC_S)))
#define KX_BKNM LT(L_NUM, KC_BSPC)
#define KX_DCTL CTL_T(KC_DEL)
#define KX_NALT ALT_T(KC_ENT)
#define KX_ECTL CTL_T(KC_ESC)
#define KX_SPAC LT(L_EXTEND, KC_SPC)
#define KX_Z_MT CTL_T(KC_Z)
#define KX_X_MT GUI_T(KC_X)
#define KX_C_MT MT(MOD_LCTL | MOD_LALT, KC_C)
#define KX_D_MT ALT_T(KC_D)
#define KX_SLMT CTL_T(KC_SLSH)
#define KX_DOMT GUI_T(KC_DOT)
#define KX_COMT MT(MOD_LCTL | MOD_LALT, KC_COMM)
#define KX_H_MT ALT_T(KC_H)
#ifdef L_LL_R
#define KC_R_LT LT(L_LL_R, KC_R)
#else
#define KC_R_LT KC_R
#endif
#ifdef L_LL_S
#define KC_S_LT LT(L_LL_S, KC_S)
#else
#define KC_S_LT KC_S
#endif
#ifdef L_LL_E
#define KC_E_LT LT(L_LL_E, KC_E)
#else
#define KC_E_LT KC_E
#endif
#ifdef L_LL_I
#define KC_I_LT LT(L_LL_I, KC_I)
#else
#define KC_I_LT KC_I
#endif
// "Macro" functions
enum userspace_custom_keycodes {
RJ_MAKE = SAFE_RANGE, // QMK make command
RJ_QMKV, // QMK version
RJ_EQ, // ==
RJ_NEQ, // !=
RJ_GEQ, // >=
RJ_LEQ, // <=
RJ_GEQR, // => ("greater than or equal - right")
RJ_DUND, // $_
RJ_SELS, // select * (used for PowerShell)
RJ_MUTE, // Discord mute (GUI+Shift+M)
RJ_DEAF, // Discord deafen (GUI+Shift+D)
RJ_DOVR // Toggle Discord overlay (GUI+Shift+O)
};
// Mouse keys
#define M_UP KC_MS_UP
#define M_DOWN KC_MS_DOWN
#define M_LEFT KC_MS_LEFT
#define M_RIGHT KC_MS_RIGHT
#define M_LCLIK KC_MS_BTN1
#define M_RCLIK KC_MS_BTN2
#define M_MCLIK KC_MS_BTN3
#define M_WHLUP KC_WH_U
#define M_WHLDN KC_WH_D
// Used in macro definitions
#define TAP(code) register_code (code); unregister_code (code);
// Tap Dance
#ifdef TAP_DANCE_ENABLE
#define TD_LAYER_TOGGLE 0
extern void dance_layer(qk_tap_dance_state_t *state, void *user_data);
#define TD_LAYR TD(TD_LAYER_TOGGLE)
#endif // TAP_DANCE_ENABLE