diff options
Diffstat (limited to 'quantum/quantum_keycodes.h')
-rw-r--r-- | quantum/quantum_keycodes.h | 939 |
1 files changed, 93 insertions, 846 deletions
diff --git a/quantum/quantum_keycodes.h b/quantum/quantum_keycodes.h index c8f03fa1ce..688fb892eb 100644 --- a/quantum/quantum_keycodes.h +++ b/quantum/quantum_keycodes.h @@ -16,604 +16,32 @@ #pragma once -#include "sequencer.h" - -// Fillers to make layering more clear -#define _______ KC_TRANSPARENT -#define XXXXXXX KC_NO - -enum quantum_keycodes { - // Ranges used in shortcuts - not to be used directly - QK_BASIC = 0x0000, - QK_BASIC_MAX = 0x00FF, - QK_MODS = 0x0100, - QK_LCTL = 0x0100, - QK_LSFT = 0x0200, - QK_LALT = 0x0400, - QK_LGUI = 0x0800, - QK_RMODS_MIN = 0x1000, - QK_RCTL = 0x1100, - QK_RSFT = 0x1200, - QK_RALT = 0x1400, - QK_RGUI = 0x1800, - QK_MODS_MAX = 0x1FFF, - QK_LAYER_TAP = 0x4000, - QK_LAYER_TAP_MAX = 0x4FFF, - QK_TO = 0x5000, - QK_TO_MAX = 0x50FF, - QK_MOMENTARY = 0x5100, - QK_MOMENTARY_MAX = 0x51FF, - QK_DEF_LAYER = 0x5200, - QK_DEF_LAYER_MAX = 0x52FF, - QK_TOGGLE_LAYER = 0x5300, - QK_TOGGLE_LAYER_MAX = 0x53FF, - QK_ONE_SHOT_LAYER = 0x5400, - QK_ONE_SHOT_LAYER_MAX = 0x54FF, - QK_ONE_SHOT_MOD = 0x5500, - QK_ONE_SHOT_MOD_MAX = 0x55FF, - QK_SWAP_HANDS = 0x5600, - QK_SWAP_HANDS_MAX = 0x56FF, - QK_TAP_DANCE = 0x5700, - QK_TAP_DANCE_MAX = 0x57FF, - QK_LAYER_TAP_TOGGLE = 0x5800, - QK_LAYER_TAP_TOGGLE_MAX = 0x58FF, - QK_LAYER_MOD = 0x5900, - QK_LAYER_MOD_MAX = 0x59FF, - QK_STENO = 0x5A00, - QK_STENO_BOLT = 0x5A30, - QK_STENO_GEMINI = 0x5A31, - QK_STENO_COMB = 0x5A32, - QK_STENO_COMB_MAX = 0x5A3C, - QK_STENO_MAX = 0x5A3F, - // 0x5C00 - 0x5FFF are reserved, see below - QK_MOD_TAP = 0x6000, - QK_MOD_TAP_MAX = 0x7FFF, - QK_UNICODE = 0x8000, - QK_UNICODE_MAX = 0xFFFF, - QK_UNICODEMAP = 0x8000, - QK_UNICODEMAP_MAX = 0xBFFF, - QK_UNICODEMAP_PAIR = 0xC000, - QK_UNICODEMAP_PAIR_MAX = 0xFFFF, - - // Loose keycodes - to be used directly - QK_BOOTLOADER = 0x5C00, - QK_DEBUG_TOGGLE, // 5C01 - - // Magic - MAGIC_SWAP_CONTROL_CAPSLOCK, // 5C02 - MAGIC_CAPSLOCK_TO_CONTROL, // 5C03 - MAGIC_SWAP_LALT_LGUI, // 5C04 - MAGIC_SWAP_RALT_RGUI, // 5C05 - MAGIC_NO_GUI, // 5C06 - MAGIC_SWAP_GRAVE_ESC, // 5C07 - MAGIC_SWAP_BACKSLASH_BACKSPACE, // 5C08 - MAGIC_HOST_NKRO, // 5C09 - MAGIC_SWAP_ALT_GUI, // 5C0A - MAGIC_UNSWAP_CONTROL_CAPSLOCK, // 5C0B - MAGIC_UNCAPSLOCK_TO_CONTROL, // 5C0C - MAGIC_UNSWAP_LALT_LGUI, // 5C0D - MAGIC_UNSWAP_RALT_RGUI, // 5C0E - MAGIC_UNNO_GUI, // 5C0F - MAGIC_UNSWAP_GRAVE_ESC, // 5C10 - MAGIC_UNSWAP_BACKSLASH_BACKSPACE, // 5C11 - MAGIC_UNHOST_NKRO, // 5C12 - MAGIC_UNSWAP_ALT_GUI, // 5C13 - MAGIC_TOGGLE_NKRO, // 5C14 - MAGIC_TOGGLE_ALT_GUI, // 5C15 - - // Grave Escape - QK_GRAVE_ESCAPE, // 5C16 - - // Auto Shift - KC_ASUP, // 5C17 - KC_ASDN, // 5C18 - KC_ASRP, // 5C19 - KC_ASTG, // 5C1A - KC_ASON, // 5C1B - KC_ASOFF, // 5C1C - - // Audio - AU_ON, // 5C1D - AU_OFF, // 5C1E - AU_TOG, // 5C1F - - // Audio Clicky - CLICKY_TOGGLE, // 5C20 - CLICKY_ENABLE, // 5C21 - CLICKY_DISABLE, // 5C22 - CLICKY_UP, // 5C23 - CLICKY_DOWN, // 5C24 - CLICKY_RESET, // 5C25 - - // Music mode - MU_ON, // 5C26 - MU_OFF, // 5C27 - MU_TOG, // 5C28 - MU_MOD, // 5C29 - MUV_IN, // 5C2A - MUV_DE, // 5C2B - - // MIDI - MI_ON, // 5C2C - MI_OFF, // 5C2D - MI_TOG, // 5C2E - - MI_C, // 5C2F - MI_Cs, // 5C30 - MI_Db = MI_Cs, - MI_D, // 5C31 - MI_Ds, // 5C32 - MI_Eb = MI_Ds, - MI_E, // 5C33 - MI_F, // 5C34 - MI_Fs, // 5C35 - MI_Gb = MI_Fs, - MI_G, // 5C36 - MI_Gs, // 5C37 - MI_Ab = MI_Gs, - MI_A, // 5C38 - MI_As, // 5C39 - MI_Bb = MI_As, - MI_B, // 5C3A - - MI_C_1, // 5C3B - MI_Cs_1, // 5C3C - MI_Db_1 = MI_Cs_1, - MI_D_1, // 5C3D - MI_Ds_1, // 5C3E - MI_Eb_1 = MI_Ds_1, - MI_E_1, // 5C3F - MI_F_1, // 5C40 - MI_Fs_1, // 5C41 - MI_Gb_1 = MI_Fs_1, - MI_G_1, // 5C42 - MI_Gs_1, // 5C43 - MI_Ab_1 = MI_Gs_1, - MI_A_1, // 5C44 - MI_As_1, // 5C45 - MI_Bb_1 = MI_As_1, - MI_B_1, // 5C46 - - MI_C_2, // 5C47 - MI_Cs_2, // 5C48 - MI_Db_2 = MI_Cs_2, - MI_D_2, // 5C49 - MI_Ds_2, // 5C4A - MI_Eb_2 = MI_Ds_2, - MI_E_2, // 5C4B - MI_F_2, // 5C4C - MI_Fs_2, // 5C4D - MI_Gb_2 = MI_Fs_2, - MI_G_2, // 5C4E - MI_Gs_2, // 5C4F - MI_Ab_2 = MI_Gs_2, - MI_A_2, // 5C50 - MI_As_2, // 5C51 - MI_Bb_2 = MI_As_2, - MI_B_2, // 5C52 - - MI_C_3, // 5C53 - MI_Cs_3, // 5C54 - MI_Db_3 = MI_Cs_3, - MI_D_3, // 5C55 - MI_Ds_3, // 5C56 - MI_Eb_3 = MI_Ds_3, - MI_E_3, // 5C57 - MI_F_3, // 5C58 - MI_Fs_3, // 5C59 - MI_Gb_3 = MI_Fs_3, - MI_G_3, // 5C5A - MI_Gs_3, // 5C5B - MI_Ab_3 = MI_Gs_3, - MI_A_3, // 5C5C - MI_As_3, // 5C5D - MI_Bb_3 = MI_As_3, - MI_B_3, // 5C5E - - MI_C_4, // 5C5F - MI_Cs_4, // 5C60 - MI_Db_4 = MI_Cs_4, - MI_D_4, // 5C61 - MI_Ds_4, // 5C62 - MI_Eb_4 = MI_Ds_4, - MI_E_4, // 5C63 - MI_F_4, // 5C64 - MI_Fs_4, // 5C65 - MI_Gb_4 = MI_Fs_4, - MI_G_4, // 5C66 - MI_Gs_4, // 5C67 - MI_Ab_4 = MI_Gs_4, - MI_A_4, // 5C68 - MI_As_4, // 5C69 - MI_Bb_4 = MI_As_4, - MI_B_4, // 5C6A - - MI_C_5, // 5C6B - MI_Cs_5, // 5C6C - MI_Db_5 = MI_Cs_5, - MI_D_5, // 5C6D - MI_Ds_5, // 5C6E - MI_Eb_5 = MI_Ds_5, - MI_E_5, // 5C6F - MI_F_5, // 5C70 - MI_Fs_5, // 5C71 - MI_Gb_5 = MI_Fs_5, - MI_G_5, // 5C72 - MI_Gs_5, // 5C73 - MI_Ab_5 = MI_Gs_5, - MI_A_5, // 5C74 - MI_As_5, // 5C75 - MI_Bb_5 = MI_As_5, - MI_B_5, // 5C76 - - MI_OCT_N2, // 5C77 - MI_OCT_N1, // 5C78 - MI_OCT_0, // 5C79 - MI_OCT_1, // 5C7A - MI_OCT_2, // 5C7B - MI_OCT_3, // 5C7C - MI_OCT_4, // 5C7D - MI_OCT_5, // 5C7E - MI_OCT_6, // 5C7F - MI_OCT_7, // 5C80 - MI_OCTD, // 5C81 - MI_OCTU, // 5C82 - - MI_TRNS_N6, // 5C83 - MI_TRNS_N5, // 5C84 - MI_TRNS_N4, // 5C85 - MI_TRNS_N3, // 5C86 - MI_TRNS_N2, // 5C87 - MI_TRNS_N1, // 5C88 - MI_TRNS_0, // 5C89 - MI_TRNS_1, // 5C8A - MI_TRNS_2, // 5C8B - MI_TRNS_3, // 5C8C - MI_TRNS_4, // 5C8D - MI_TRNS_5, // 5C8E - MI_TRNS_6, // 5C8F - MI_TRNSD, // 5C90 - MI_TRNSU, // 5C91 - - MI_VEL_0, // 5C92 -#ifdef VIA_ENABLE - MI_VEL_1 = MI_VEL_0, -#else - MI_VEL_1, // 5C93 -#endif - MI_VEL_2, // 5C94 - MI_VEL_3, // 5C95 - MI_VEL_4, // 5C96 - MI_VEL_5, // 5C97 - MI_VEL_6, // 5C98 - MI_VEL_7, // 5C99 - MI_VEL_8, // 5C9A - MI_VEL_9, // 5C9B - MI_VEL_10, // 5C9C - MI_VELD, // 5C9D - MI_VELU, // 5C9E - - MI_CH1, // 5C9F - MI_CH2, // 5CA0 - MI_CH3, // 5CA1 - MI_CH4, // 5CA2 - MI_CH5, // 5CA3 - MI_CH6, // 5CA4 - MI_CH7, // 5CA5 - MI_CH8, // 5CA6 - MI_CH9, // 5CA7 - MI_CH10, // 5CA8 - MI_CH11, // 5CA9 - MI_CH12, // 5CAA - MI_CH13, // 5CAB - MI_CH14, // 5CAC - MI_CH15, // 5CAD - MI_CH16, // 5CAE - MI_CHD, // 5CAF - MI_CHU, // 5CB0 - - MI_ALLOFF, // 5CB1 - - MI_SUS, // 5CB2 - MI_PORT, // 5CB3 - MI_SOST, // 5CB4 - MI_SOFT, // 5CB5 - MI_LEG, // 5CB6 - - MI_MOD, // 5CB7 - MI_MODSD, // 5CB8 - MI_MODSU, // 5CB9 - - MI_BENDD, // 5CBA - MI_BENDU, // 5CBB - - // Backlight - BL_ON, // 5CBC - BL_OFF, // 5CBD - BL_DEC, // 5CBE - BL_INC, // 5CBF - BL_TOGG, // 5CC0 - BL_STEP, // 5CC1 - BL_BRTG, // 5CC2 - - // RGB underglow/matrix - RGB_TOG, // 5CC3 - RGB_MODE_FORWARD, // 5CC4 - RGB_MODE_REVERSE, // 5CC5 - RGB_HUI, // 5CC6 - RGB_HUD, // 5CC7 - RGB_SAI, // 5CC8 - RGB_SAD, // 5CC9 - RGB_VAI, // 5CCA - RGB_VAD, // 5CCB - RGB_SPI, // 5CCC - RGB_SPD, // 5CCD - RGB_MODE_PLAIN, // 5CCE - RGB_MODE_BREATHE, // 5CCF - RGB_MODE_RAINBOW, // 5CD0 - RGB_MODE_SWIRL, // 5CD1 - RGB_MODE_SNAKE, // 5CD2 - RGB_MODE_KNIGHT, // 5CD3 - RGB_MODE_XMAS, // 5CD4 - RGB_MODE_GRADIENT, // 5CD5 - RGB_MODE_RGBTEST, // 5CD6 - - // Velocikey - VLK_TOG, // 5CD7 - - // Space Cadet - KC_LSPO, // 5CD8 - KC_RSPC, // 5CD9 - KC_SFTENT, // 5CDA - - // Thermal Printer - PRINT_ON, // 5CDB - PRINT_OFF, // 5CDC - - // Bluetooth: output selection - OUT_AUTO, // 5CDD - OUT_USB, // 5CDE - - // Clear EEPROM - QK_CLEAR_EEPROM, // 5CDF - - // Unicode - UNICODE_MODE_FORWARD, // 5CE0 - UNICODE_MODE_REVERSE, // 5CE1 - UNICODE_MODE_MAC, // 5CE2 - UNICODE_MODE_LNX, // 5CE3 - UNICODE_MODE_WIN, // 5CE4 - UNICODE_MODE_BSD, // 5CE5 - UNICODE_MODE_WINC, // 5CE6 - - // Haptic - HPT_ON, // 5CE7 - HPT_OFF, // 5CE8 - HPT_TOG, // 5CE9 - HPT_RST, // 5CEA - HPT_FBK, // 5CEB - HPT_BUZ, // 5CEC - HPT_MODI, // 5CED - HPT_MODD, // 5CEE - HPT_CONT, // 5CEF - HPT_CONI, // 5CF0 - HPT_COND, // 5CF1 - HPT_DWLI, // 5CF2 - HPT_DWLD, // 5CF3 - - // Space Cadet (continued) - KC_LCPO, // 5CF4 - KC_RCPC, // 5CF5 - KC_LAPO, // 5CF6 - KC_RAPC, // 5CF7 - - // Combos - CMB_ON, // 5CF8 - CMB_OFF, // 5CF9 - CMB_TOG, // 5CFA - - // Magic (continued) - MAGIC_SWAP_LCTL_LGUI, // 5CFB - MAGIC_SWAP_RCTL_RGUI, // 5CFC - MAGIC_UNSWAP_LCTL_LGUI, // 5CFD - MAGIC_UNSWAP_RCTL_RGUI, // 5CFE - MAGIC_SWAP_CTL_GUI, // 5CFF - MAGIC_UNSWAP_CTL_GUI, // 5D00 - MAGIC_TOGGLE_CTL_GUI, // 5D01 - MAGIC_EE_HANDS_LEFT, // 5D02 - MAGIC_EE_HANDS_RIGHT, // 5D03 - - // Dynamic Macros - DYN_REC_START1, // 5D04 - DYN_REC_START2, // 5D05 - DYN_REC_STOP, // 5D06 - DYN_MACRO_PLAY1, // 5D07 - DYN_MACRO_PLAY2, // 5D08 - - // Joystick - JS_BUTTON0, // 5D09 - JS_BUTTON1, // 5D0A - JS_BUTTON2, // 5D0B - JS_BUTTON3, // 5D0C - JS_BUTTON4, // 5D0D - JS_BUTTON5, // 5D0E - JS_BUTTON6, // 5D0F - JS_BUTTON7, // 5D10 - JS_BUTTON8, // 5D11 - JS_BUTTON9, // 5D12 - JS_BUTTON10, // 5D13 - JS_BUTTON11, // 5D14 - JS_BUTTON12, // 5D15 - JS_BUTTON13, // 5D16 - JS_BUTTON14, // 5D17 - JS_BUTTON15, // 5D18 - JS_BUTTON16, // 5D19 - JS_BUTTON17, // 5D1A - JS_BUTTON18, // 5D1B - JS_BUTTON19, // 5D1C - JS_BUTTON20, // 5D1D - JS_BUTTON21, // 5D1E - JS_BUTTON22, // 5D1F - JS_BUTTON23, // 5D20 - JS_BUTTON24, // 5D21 - JS_BUTTON25, // 5D22 - JS_BUTTON26, // 5D23 - JS_BUTTON27, // 5D24 - JS_BUTTON28, // 5D25 - JS_BUTTON29, // 5D26 - JS_BUTTON30, // 5D27 - JS_BUTTON31, // 5D28 - - // Leader Key - KC_LEAD, // 5D29 - - // Bluetooth: output selection (continued) - OUT_BT, // 5D2A - - // Lock Key - KC_LOCK, // 5D2B - - // Unused slots - UNUSED_000, // 5D2C - UNUSED_001, // 5D2D - - // Sequencer - SQ_ON, // 5D2E - SQ_OFF, // 5D2F - SQ_TOG, // 5D30 - - SQ_TMPD, // 5D31 - SQ_TMPU, // 5D32 - - SQ_RESD, // 5D33 - SQ_RESU, // 5D34 - - SQ_SALL, // 5D35 - SQ_SCLR, // 5D36 - - SEQUENCER_STEP_MIN, // 5D37 - SEQUENCER_STEP_MAX = SEQUENCER_STEP_MIN + SEQUENCER_STEPS, - - SEQUENCER_RESOLUTION_MIN, - SEQUENCER_RESOLUTION_MAX = SEQUENCER_RESOLUTION_MIN + SEQUENCER_RESOLUTIONS, - - SEQUENCER_TRACK_MIN, - SEQUENCER_TRACK_MAX = SEQUENCER_TRACK_MIN + SEQUENCER_TRACKS, - -#define SQ_S(n) (n < SEQUENCER_STEPS ? SEQUENCER_STEP_MIN + n : KC_NO) -#define SQ_R(n) (n < SEQUENCER_RESOLUTIONS ? SEQUENCER_RESOLUTION_MIN + n : KC_NO) -#define SQ_T(n) (n < SEQUENCER_TRACKS ? SEQUENCER_TRACK_MIN + n : KC_NO) +// Pull in dd keycodes to maintain header compatibility +#include "keycodes.h" - // One Shot - ONESHOT_ENABLE, - ONESHOT_DISABLE, - ONESHOT_TOGGLE, - - // RGB underglow/matrix (continued) - RGB_MODE_TWINKLE, - - // Key Overrides - KEY_OVERRIDE_TOGGLE, - KEY_OVERRIDE_ON, - KEY_OVERRIDE_OFF, - - // Additional magic key - MAGIC_TOGGLE_GUI, - - // Adjust tapping term on the fly - DT_PRNT, - DT_UP, - DT_DOWN, - - // Programmable Button - PROGRAMMABLE_BUTTON_1, - PROGRAMMABLE_BUTTON_2, - PROGRAMMABLE_BUTTON_3, - PROGRAMMABLE_BUTTON_4, - PROGRAMMABLE_BUTTON_5, - PROGRAMMABLE_BUTTON_6, - PROGRAMMABLE_BUTTON_7, - PROGRAMMABLE_BUTTON_8, - PROGRAMMABLE_BUTTON_9, - PROGRAMMABLE_BUTTON_10, - PROGRAMMABLE_BUTTON_11, - PROGRAMMABLE_BUTTON_12, - PROGRAMMABLE_BUTTON_13, - PROGRAMMABLE_BUTTON_14, - PROGRAMMABLE_BUTTON_15, - PROGRAMMABLE_BUTTON_16, - PROGRAMMABLE_BUTTON_17, - PROGRAMMABLE_BUTTON_18, - PROGRAMMABLE_BUTTON_19, - PROGRAMMABLE_BUTTON_20, - PROGRAMMABLE_BUTTON_21, - PROGRAMMABLE_BUTTON_22, - PROGRAMMABLE_BUTTON_23, - PROGRAMMABLE_BUTTON_24, - PROGRAMMABLE_BUTTON_25, - PROGRAMMABLE_BUTTON_26, - PROGRAMMABLE_BUTTON_27, - PROGRAMMABLE_BUTTON_28, - PROGRAMMABLE_BUTTON_29, - PROGRAMMABLE_BUTTON_30, - PROGRAMMABLE_BUTTON_31, - PROGRAMMABLE_BUTTON_32, - - // Dedicated macro keys for Configurator and VIA - MACRO_0, - MACRO_1, - MACRO_2, - MACRO_3, - MACRO_4, - MACRO_5, - MACRO_6, - MACRO_7, - MACRO_8, - MACRO_9, - MACRO_10, - MACRO_11, - MACRO_12, - MACRO_13, - MACRO_14, - MACRO_15, - MACRO_16, - MACRO_17, - MACRO_18, - MACRO_19, - MACRO_20, - MACRO_21, - MACRO_22, - MACRO_23, - MACRO_24, - MACRO_25, - MACRO_26, - MACRO_27, - MACRO_28, - MACRO_29, - MACRO_30, - MACRO_31, - - MAGIC_TOGGLE_CONTROL_CAPSLOCK, - - QK_MAKE, - QK_REBOOT, - - SECURE_LOCK, - SECURE_UNLOCK, - SECURE_TOGGLE, - SECURE_REQUEST, - - CAPS_WORD, - - MAGIC_SWAP_ESCAPE_CAPSLOCK, - MAGIC_UNSWAP_ESCAPE_CAPSLOCK, - MAGIC_TOGGLE_ESCAPE_CAPSLOCK, - - UNICODE_MODE_EMACS, - - // Start of custom keycode range for keyboards and keymaps - always leave at the end - SAFE_RANGE -}; +// US ANSI shifted keycode aliases +#include "keymap_us.h" + +// TODO: sub-ranges? +// clang-format off +#define QK_LCTL 0x0100 +#define QK_LSFT 0x0200 +#define QK_LALT 0x0400 +#define QK_LGUI 0x0800 +#define QK_RMODS_MIN 0x1000 +#define QK_RCTL 0x1100 +#define QK_RSFT 0x1200 +#define QK_RALT 0x1400 +#define QK_RGUI 0x1800 +#define QK_UNICODEMAP 0x8000 +#define QK_UNICODEMAP_MAX 0xBFFF +#define QK_UNICODEMAP_PAIR 0xC000 +#define QK_UNICODEMAP_PAIR_MAX 0xFFFF +// clang-format on + +// Generic decoding for the whole QK_MODS range +#define QK_MODS_GET_MODS(kc) (((kc) >> 8) & 0x1F) +#define QK_MODS_GET_BASIC_KEYCODE(kc) ((kc)&0xFF) // Keycode modifiers & aliases #define LCTL(kc) (QK_LCTL | (kc)) @@ -648,186 +76,54 @@ enum quantum_keycodes { #define RCS(kc) (QK_RCTL | QK_RSFT | (kc)) #define SAGR(kc) RSA(kc) -#define MOD_HYPR 0xF -#define MOD_MEH 0x7 - -// US ANSI shifted keycode aliases -#define KC_TILDE LSFT(KC_GRAVE) // ~ -#define KC_TILD KC_TILDE - -#define KC_EXCLAIM LSFT(KC_1) // ! -#define KC_EXLM KC_EXCLAIM - -#define KC_AT LSFT(KC_2) // @ - -#define KC_HASH LSFT(KC_3) // # - -#define KC_DOLLAR LSFT(KC_4) // $ -#define KC_DLR KC_DOLLAR - -#define KC_PERCENT LSFT(KC_5) // % -#define KC_PERC KC_PERCENT - -#define KC_CIRCUMFLEX LSFT(KC_6) // ^ -#define KC_CIRC KC_CIRCUMFLEX - -#define KC_AMPERSAND LSFT(KC_7) // & -#define KC_AMPR KC_AMPERSAND - -#define KC_ASTERISK LSFT(KC_8) // * -#define KC_ASTR KC_ASTERISK - -#define KC_LEFT_PAREN LSFT(KC_9) // ( -#define KC_LPRN KC_LEFT_PAREN - -#define KC_RIGHT_PAREN LSFT(KC_0) // ) -#define KC_RPRN KC_RIGHT_PAREN - -#define KC_UNDERSCORE LSFT(KC_MINUS) // _ -#define KC_UNDS KC_UNDERSCORE - -#define KC_PLUS LSFT(KC_EQUAL) // + - -#define KC_LEFT_CURLY_BRACE LSFT(KC_LEFT_BRACKET) // { -#define KC_LCBR KC_LEFT_CURLY_BRACE - -#define KC_RIGHT_CURLY_BRACE LSFT(KC_RIGHT_BRACKET) // } -#define KC_RCBR KC_RIGHT_CURLY_BRACE - -#define KC_LEFT_ANGLE_BRACKET LSFT(KC_COMMA) // < -#define KC_LABK KC_LEFT_ANGLE_BRACKET -#define KC_LT KC_LEFT_ANGLE_BRACKET - -#define KC_RIGHT_ANGLE_BRACKET LSFT(KC_DOT) // > -#define KC_RABK KC_RIGHT_ANGLE_BRACKET -#define KC_GT KC_RIGHT_ANGLE_BRACKET - -#define KC_COLON LSFT(KC_SEMICOLON) // : -#define KC_COLN KC_COLON - -#define KC_PIPE LSFT(KC_BACKSLASH) // | - -#define KC_QUESTION LSFT(KC_SLASH) // ? -#define KC_QUES KC_QUESTION - -#define KC_DOUBLE_QUOTE LSFT(KC_QUOTE) // " -#define KC_DQUO KC_DOUBLE_QUOTE -#define KC_DQT KC_DOUBLE_QUOTE - -#define KC_DELT KC_DELETE // Del key (four letter code) - // Modified keycode aliases #define C(kc) LCTL(kc) #define S(kc) LSFT(kc) #define A(kc) LALT(kc) #define G(kc) LGUI(kc) -#define QK_GESC QK_GRAVE_ESCAPE - -#define QK_BOOT QK_BOOTLOADER -#define DB_TOGG QK_DEBUG_TOGGLE -#define EE_CLR QK_CLEAR_EEPROM -#define QK_RBT QK_REBOOT - -// Audio Clicky aliases -#define CK_TOGG CLICKY_TOGGLE -#define CK_RST CLICKY_RESET -#define CK_UP CLICKY_UP -#define CK_DOWN CLICKY_DOWN -#define CK_ON CLICKY_ENABLE -#define CK_OFF CLICKY_DISABLE -// Fauxclicky (deprecated) redirects to Audio Clicky -#define FC_ON CLICKY_ENABLE -#define FC_OFF CLICKY_DISABLE -#define FC_TOGG CLICKY_TOGGLE - -// RGB aliases -#define RGB_MOD RGB_MODE_FORWARD -#define RGB_RMOD RGB_MODE_REVERSE -#define RGB_M_P RGB_MODE_PLAIN -#define RGB_M_B RGB_MODE_BREATHE -#define RGB_M_R RGB_MODE_RAINBOW -#define RGB_M_SW RGB_MODE_SWIRL -#define RGB_M_SN RGB_MODE_SNAKE -#define RGB_M_K RGB_MODE_KNIGHT -#define RGB_M_X RGB_MODE_XMAS -#define RGB_M_G RGB_MODE_GRADIENT -#define RGB_M_T RGB_MODE_RGBTEST -#define RGB_M_TW RGB_MODE_TWINKLE - -// Magic aliases -#define CL_SWAP MAGIC_SWAP_CONTROL_CAPSLOCK -#define CL_NORM MAGIC_UNSWAP_CONTROL_CAPSLOCK -#define CL_CTRL MAGIC_CAPSLOCK_TO_CONTROL -#define CL_CAPS MAGIC_UNCAPSLOCK_TO_CONTROL -#define CL_TOGG MAGIC_TOGGLE_CONTROL_CAPSLOCK - -#define EC_SWAP MAGIC_SWAP_ESCAPE_CAPSLOCK -#define EC_NORM MAGIC_UNSWAP_ESCAPE_CAPSLOCK -#define EC_TOGG MAGIC_TOGGLE_ESCAPE_CAPSLOCK - -#define LCG_SWP MAGIC_SWAP_LCTL_LGUI -#define LCG_NRM MAGIC_UNSWAP_LCTL_LGUI -#define RCG_SWP MAGIC_SWAP_RCTL_RGUI -#define RCG_NRM MAGIC_UNSWAP_RCTL_RGUI -#define CG_SWAP MAGIC_SWAP_CTL_GUI -#define CG_NORM MAGIC_UNSWAP_CTL_GUI -#define CG_TOGG MAGIC_TOGGLE_CTL_GUI - -#define LAG_SWP MAGIC_SWAP_LALT_LGUI -#define LAG_NRM MAGIC_UNSWAP_LALT_LGUI -#define RAG_SWP MAGIC_SWAP_RALT_RGUI -#define RAG_NRM MAGIC_UNSWAP_RALT_RGUI -#define AG_SWAP MAGIC_SWAP_ALT_GUI -#define AG_NORM MAGIC_UNSWAP_ALT_GUI -#define AG_TOGG MAGIC_TOGGLE_ALT_GUI - -#define GUI_OFF MAGIC_NO_GUI -#define GUI_ON MAGIC_UNNO_GUI -#define GUI_TOG MAGIC_TOGGLE_GUI - -#define GE_SWAP MAGIC_SWAP_GRAVE_ESC -#define GE_NORM MAGIC_UNSWAP_GRAVE_ESC - -#define BS_SWAP MAGIC_SWAP_BACKSLASH_BACKSPACE -#define BS_NORM MAGIC_UNSWAP_BACKSLASH_BACKSPACE - -#define NK_ON MAGIC_HOST_NKRO -#define NK_OFF MAGIC_UNHOST_NKRO -#define NK_TOGG MAGIC_TOGGLE_NKRO - -#define EH_LEFT MAGIC_EE_HANDS_LEFT -#define EH_RGHT MAGIC_EE_HANDS_RIGHT - -// GOTO layer - 256 layer max -#define TO(layer) (QK_TO | ((layer)&0xFF)) - -// Momentary switch layer - 256 layer max -#define MO(layer) (QK_MOMENTARY | ((layer)&0xFF)) - -// Set default layer - 256 layer max -#define DF(layer) (QK_DEF_LAYER | ((layer)&0xFF)) - -// Toggle to layer - 256 layer max -#define TG(layer) (QK_TOGGLE_LAYER | ((layer)&0xFF)) - -// One-shot layer - 256 layer max -#define OSL(layer) (QK_ONE_SHOT_LAYER | ((layer)&0xFF)) - -// L-ayer M-od: Momentary switch layer with modifiers active - 16 layer max, left mods only -#define LM(layer, mod) (QK_LAYER_MOD | (((layer)&0xF) << 4) | ((mod)&0xF)) +// GOTO layer - 32 layer max +#define TO(layer) (QK_TO | ((layer)&0x1F)) +#define QK_TO_GET_LAYER(kc) ((kc)&0x1F) + +// Momentary switch layer - 32 layer max +#define MO(layer) (QK_MOMENTARY | ((layer)&0x1F)) +#define QK_MOMENTARY_GET_LAYER(kc) ((kc)&0x1F) + +// Set default layer - 32 layer max +#define DF(layer) (QK_DEF_LAYER | ((layer)&0x1F)) +#define QK_DEF_LAYER_GET_LAYER(kc) ((kc)&0x1F) + +// Toggle to layer - 32 layer max +#define TG(layer) (QK_TOGGLE_LAYER | ((layer)&0x1F)) +#define QK_TOGGLE_LAYER_GET_LAYER(kc) ((kc)&0x1F) + +// One-shot layer - 32 layer max +#define OSL(layer) (QK_ONE_SHOT_LAYER | ((layer)&0x1F)) +#define QK_ONE_SHOT_LAYER_GET_LAYER(kc) ((kc)&0x1F) + +// L-ayer M-od: Momentary switch layer with modifiers active - 16 layer max +#define LM(layer, mod) (QK_LAYER_MOD | (((layer)&0xF) << 5) | ((mod)&0x1F)) +#define QK_LAYER_MOD_GET_LAYER(kc) (((kc) >> 5) & 0xF) +#define QK_LAYER_MOD_GET_MODS(kc) ((kc)&0x1F) // One-shot mod -#define OSM(mod) (QK_ONE_SHOT_MOD | ((mod)&0xFF)) +#define OSM(mod) (QK_ONE_SHOT_MOD | ((mod)&0x1F)) +#define QK_ONE_SHOT_MOD_GET_MODS(kc) ((kc)&0x1F) -// Layer tap-toggle -#define TT(layer) (QK_LAYER_TAP_TOGGLE | ((layer)&0xFF)) +// Layer tap-toggle - 32 layer max +#define TT(layer) (QK_LAYER_TAP_TOGGLE | ((layer)&0x1F)) +#define QK_LAYER_TAP_TOGGLE_GET_LAYER(kc) ((kc)&0x1F) // L-ayer, T-ap - 256 keycode max, 16 layer max #define LT(layer, kc) (QK_LAYER_TAP | (((layer)&0xF) << 8) | ((kc)&0xFF)) +#define QK_LAYER_TAP_GET_LAYER(kc) (((kc) >> 8) & 0xF) +#define QK_LAYER_TAP_GET_TAP_KEYCODE(kc) ((kc)&0xFF) // M-od, T-ap - 256 keycode max #define MT(mod, kc) (QK_MOD_TAP | (((mod)&0x1F) << 8) | ((kc)&0xFF)) +#define QK_MOD_TAP_GET_MODS(kc) (((kc) >> 8) & 0x1F) +#define QK_MOD_TAP_GET_TAP_KEYCODE(kc) ((kc)&0xFF) #define LCTL_T(kc) MT(MOD_LCTL, kc) #define RCTL_T(kc) MT(MOD_RCTL, kc) @@ -882,95 +178,46 @@ enum quantum_keycodes { // Unicode aliases // UNICODE_ENABLE - Allows Unicode input up to 0x7FFF #define UC(c) (QK_UNICODE | (c)) -// UNICODEMAP_ENABLE - Allows Unicode input up to 0x10FFFF, requires unicode_map -#define X(i) (QK_UNICODEMAP | (i)) -#define XP(i, j) (QK_UNICODEMAP_PAIR | ((i)&0x7F) | (((j)&0x7F) << 7)) // 127 max i and j +#define QK_UNICODE_GET_CODE_POINT(kc) ((kc)&0x7FFF) -#define UC_MOD UNICODE_MODE_FORWARD -#define UC_RMOD UNICODE_MODE_REVERSE +// UNICODEMAP_ENABLE - Allows Unicode input up to 0x10FFFF, requires unicode_map +#define X(i) (QK_UNICODEMAP | ((i)&0x3FFF)) +#define QK_UNICODEMAP_GET_INDEX(kc) ((kc)&0x3FFF) -#define UC_M_MA UNICODE_MODE_MAC -#define UNICODE_MODE_OSX UNICODE_MODE_MAC // Deprecated alias -#define UC_M_OS UNICODE_MODE_MAC // Deprecated alias -#define UC_M_LN UNICODE_MODE_LNX -#define UC_M_WI UNICODE_MODE_WIN -#define UC_M_BS UNICODE_MODE_BSD -#define UC_M_WC UNICODE_MODE_WINC -#define UC_M_EM UNICODE_MODE_EMACS +#define XP(i, j) (QK_UNICODEMAP_PAIR | ((i)&0x7F) | (((j)&0x7F) << 7)) // 127 max i and j +#define QK_UNICODEMAP_PAIR_GET_UNSHIFTED_INDEX(kc) ((kc)&0x7F) +#define QK_UNICODEMAP_PAIR_GET_SHIFTED_INDEX(kc) (((kc) >> 7) & 0x7F) // Swap Hands -#define SH_T(kc) (QK_SWAP_HANDS | (kc)) -#define SH_TG (QK_SWAP_HANDS | OP_SH_TOGGLE) -#define SH_TT (QK_SWAP_HANDS | OP_SH_TAP_TOGGLE) -#define SH_OS (QK_SWAP_HANDS | OP_SH_ONESHOT) -#define SH_MON (QK_SWAP_HANDS | OP_SH_ON_OFF) -#define SH_MOFF (QK_SWAP_HANDS | OP_SH_OFF_ON) -#define SH_ON (QK_SWAP_HANDS | OP_SH_ON) -#define SH_OFF (QK_SWAP_HANDS | OP_SH_OFF) +#define SH_T(kc) (QK_SWAP_HANDS | ((kc)&0xFF)) +#define QK_SWAP_HANDS_GET_TAP_KEYCODE(kc) ((kc)&0xFF) // MIDI aliases -#define MIDI_TONE_MIN MI_C -#define MIDI_TONE_MAX MI_B_5 -#define MIDI_OCTAVE_MIN MI_OCT_N2 -#define MIDI_OCTAVE_MAX MI_OCT_7 -#define MIDI_TRANSPOSE_MIN MI_TRNS_N6 -#define MIDI_TRANSPOSE_MAX MI_TRNS_6 -#define MIDI_VELOCITY_MIN MI_VEL_0 -#define MIDI_VELOCITY_MAX MI_VEL_10 -#define MIDI_CHANNEL_MIN MI_CH1 -#define MIDI_CHANNEL_MAX MI_CH16 - -// Dynamic Macros aliases -#define DM_REC1 DYN_REC_START1 -#define DM_REC2 DYN_REC_START2 -#define DM_RSTP DYN_REC_STOP -#define DM_PLY1 DYN_MACRO_PLAY1 -#define DM_PLY2 DYN_MACRO_PLAY2 - -// Joystick aliases -#define JS_BUTTON_MIN JS_BUTTON0 -#define JS_BUTTON_MAX JS_BUTTON31 - -// One Shot aliases -#define OS_TOGG ONESHOT_TOGGLE -#define OS_ON ONESHOT_ENABLE -#define OS_OFF ONESHOT_DISABLE - -// Programmable Button aliases -#define PB_1 PROGRAMMABLE_BUTTON_1 -#define PB_2 PROGRAMMABLE_BUTTON_2 -#define PB_3 PROGRAMMABLE_BUTTON_3 -#define PB_4 PROGRAMMABLE_BUTTON_4 -#define PB_5 PROGRAMMABLE_BUTTON_5 -#define PB_6 PROGRAMMABLE_BUTTON_6 -#define PB_7 PROGRAMMABLE_BUTTON_7 -#define PB_8 PROGRAMMABLE_BUTTON_8 -#define PB_9 PROGRAMMABLE_BUTTON_9 -#define PB_10 PROGRAMMABLE_BUTTON_10 -#define PB_11 PROGRAMMABLE_BUTTON_11 -#define PB_12 PROGRAMMABLE_BUTTON_12 -#define PB_13 PROGRAMMABLE_BUTTON_13 -#define PB_14 PROGRAMMABLE_BUTTON_14 -#define PB_15 PROGRAMMABLE_BUTTON_15 -#define PB_16 PROGRAMMABLE_BUTTON_16 -#define PB_17 PROGRAMMABLE_BUTTON_17 -#define PB_18 PROGRAMMABLE_BUTTON_18 -#define PB_19 PROGRAMMABLE_BUTTON_19 -#define PB_20 PROGRAMMABLE_BUTTON_20 -#define PB_21 PROGRAMMABLE_BUTTON_21 -#define PB_22 PROGRAMMABLE_BUTTON_22 -#define PB_23 PROGRAMMABLE_BUTTON_23 -#define PB_24 PROGRAMMABLE_BUTTON_24 -#define PB_25 PROGRAMMABLE_BUTTON_25 -#define PB_26 PROGRAMMABLE_BUTTON_26 -#define PB_27 PROGRAMMABLE_BUTTON_27 -#define PB_28 PROGRAMMABLE_BUTTON_28 -#define PB_29 PROGRAMMABLE_BUTTON_29 -#define PB_30 PROGRAMMABLE_BUTTON_30 -#define PB_31 PROGRAMMABLE_BUTTON_31 -#define PB_32 PROGRAMMABLE_BUTTON_32 -#define PROGRAMMABLE_BUTTON_MIN PROGRAMMABLE_BUTTON_1 -#define PROGRAMMABLE_BUTTON_MAX PROGRAMMABLE_BUTTON_32 -#define CAPSWRD CAPS_WORD +#define MIDI_TONE_MIN QK_MIDI_NOTE_C_0 +#define MIDI_TONE_MAX QK_MIDI_NOTE_B_5 +#define MIDI_OCTAVE_MIN QK_MIDI_OCTAVE_N2 +#define MIDI_OCTAVE_MAX QK_MIDI_OCTAVE_7 +#define MIDI_TRANSPOSE_MIN QK_MIDI_TRANSPOSE_N6 +#define MIDI_TRANSPOSE_MAX QK_MIDI_TRANSPOSE_6 +#define MIDI_VELOCITY_MIN QK_MIDI_VELOCITY_0 +#define MIDI_VELOCITY_MAX QK_MIDI_VELOCITY_10 +#define MIDI_CHANNEL_MIN QK_MIDI_CHANNEL_1 +#define MIDI_CHANNEL_MAX QK_MIDI_CHANNEL_16 + +// TODO: somehow migrate sequencer to DD? +#include "sequencer.h" + +#define SEQUENCER_STEP_MIN (QK_SEQUENCER + 0xF) +#define SEQUENCER_STEP_MAX (SEQUENCER_STEP_MIN + SEQUENCER_STEPS) + +#define SEQUENCER_RESOLUTION_MIN (SEQUENCER_STEP_MAX + 1) +#define SEQUENCER_RESOLUTION_MAX (SEQUENCER_RESOLUTION_MIN + SEQUENCER_RESOLUTIONS) + +#define SEQUENCER_TRACK_MIN (SEQUENCER_RESOLUTION_MAX + 1) +#define SEQUENCER_TRACK_MAX (SEQUENCER_TRACK_MIN + SEQUENCER_TRACKS) + +#define SQ_S(n) (n < SEQUENCER_STEPS ? SEQUENCER_STEP_MIN + n : KC_NO) +#define SQ_R(n) (n < SEQUENCER_RESOLUTIONS ? SEQUENCER_RESOLUTION_MIN + n : KC_NO) +#define SQ_T(n) (n < SEQUENCER_TRACKS ? SEQUENCER_TRACK_MIN + n : KC_NO) #include "quantum_keycodes_legacy.h" |