X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=quantum%2Fkeymap_common.h;h=322fda498ae40ed5b06e1a7ee65298b1ba07fbbf;hb=65645fb8cad05307b9faf9a897eefd5ae8c46dad;hp=2d8b29c777710364027251e4b188ec0559ebebd4;hpb=e0acb8a0ee64e0aba3298cd477a5f65876364b6a;p=qmk_firmware.git diff --git a/quantum/keymap_common.h b/quantum/keymap_common.h index 2d8b29c77..322fda498 100644 --- a/quantum/keymap_common.h +++ b/quantum/keymap_common.h @@ -30,7 +30,6 @@ along with this program. If not, see . // #include "print.h" #include "debug.h" -#ifdef BOOTMAGIC_ENABLE /* NOTE: Not portable. Bit field order depends on implementation */ typedef union { uint16_t raw; @@ -45,8 +44,6 @@ typedef union { bool nkro:1; }; } keymap_config_t; -keymap_config_t keymap_config; -#endif /* translates key to keycode */ @@ -68,6 +65,10 @@ extern const uint16_t fn_actions[]; #define LGUI(kc) kc | 0x0800 #define HYPR(kc) kc | 0x0F00 #define MEH(kc) kc | 0x0700 +#define LCAG(kc) kc | 0x0D00 // Modifier Ctrl Alt and GUI + +#define MOD_HYPR 0xf +#define MOD_MEH 0x7 #define RCTL(kc) kc | 0x1100 #define RSFT(kc) kc | 0x1200 @@ -86,8 +87,11 @@ extern const uint16_t fn_actions[]; #define KC_EXCLAIM KC_EXLM #define KC_AT LSFT(KC_2) // @ + + #define KC_HASH LSFT(KC_3) // # + #define KC_DLR LSFT(KC_4) // $ #define KC_DOLLAR KC_DLR @@ -109,22 +113,43 @@ extern const uint16_t fn_actions[]; #define KC_RPRN LSFT(KC_0) // ) #define KC_RIGHT_PAREN KC_RPRN + #define KC_UNDS LSFT(KC_MINS) // _ #define KC_UNDERSCORE KC_UNDS #define KC_PLUS LSFT(KC_EQL) // + + #define KC_LCBR LSFT(KC_LBRC) // { #define KC_LEFT_CURLY_BRACE KC_LCBR #define KC_RCBR LSFT(KC_RBRC) // } #define KC_RIGHT_CURLY_BRACE KC_RCBR +#define KC_LABK LSFT(KC_COMM) // < +#define KC_LEFT_ANGLE_BRACKET KC_LABK + +#define KC_RABK LSFT(KC_DOT) // > +#define KC_RIGHT_ANGLE_BRACKET KC_RABK + #define KC_COLN LSFT(KC_SCLN) // : #define KC_COLON KC_COLN #define KC_PIPE LSFT(KC_BSLS) // | +#define KC_LT LSFT(KC_COMM) // < + + +#define KC_GT LSFT(KC_DOT) // > + + +#define KC_QUES LSFT(KC_SLSH) // ? +#define KC_QUESTION KC_QUES + + +#define KC_DQT LSFT(KC_QUOT) // " +#define KC_DOUBLE_QUOTE KC_DQT + #define KC_DELT KC_DELETE // Del key (four letter code) // Alias for function layers than expand past FN31 @@ -167,6 +192,30 @@ extern const uint16_t fn_actions[]; #define RESET 0x5000 #define DEBUG 0x5001 +// MAGIC keycodes +#define MAGIC_SWAP_CONTROL_CAPSLOCK 0x5002 +#define MAGIC_UNSWAP_CONTROL_CAPSLOCK 0x5003 +#define MAGIC_CAPSLOCK_TO_CONTROL 0x5004 +#define MAGIC_UNCAPSLOCK_TO_CONTROL 0x5005 +#define MAGIC_SWAP_LALT_LGUI 0x5006 +#define MAGIC_UNSWAP_LALT_LGUI 0x5007 +#define MAGIC_SWAP_RALT_RGUI 0x5008 +#define MAGIC_UNSWAP_RALT_RGUI 0x5009 +#define MAGIC_NO_GUI 0x500a +#define MAGIC_UNNO_GUI 0x500b +#define MAGIC_SWAP_GRAVE_ESC 0x500c +#define MAGIC_UNSWAP_GRAVE_ESC 0x500d +#define MAGIC_SWAP_BACKSLASH_BACKSPACE 0x500e +#define MAGIC_UNSWAP_BACKSLASH_BACKSPACE 0x500f +#define MAGIC_HOST_NKRO 0x5010 +#define MAGIC_UNHOST_NKRO 0x5011 +#define MAGIC_SWAP_ALT_GUI 0x5012 +#define MAGIC_UNSWAP_ALT_GUI 0x5013 + +#define AG_SWAP MAGIC_SWAP_ALT_GUI +#define AG_NORM MAGIC_UNSWAP_ALT_GUI + + // GOTO layer - 16 layers max // when: // ON_PRESS = 1 @@ -183,7 +232,11 @@ extern const uint16_t fn_actions[]; // Toggle to layer - 256 layer max #define TG(layer) (layer | 0x5400) -#define MIDI(n) (n | 0x6000) +// One-shot layer - 256 layer max +#define OSL(layer) (layer | 0x5500) + +// One-shot mod +#define OSM(layer) (layer | 0x5600) // M-od, T-ap - 256 keycode max #define MT(mod, kc) (kc | 0x7000 | ((mod & 0xF) << 8)) @@ -193,6 +246,7 @@ extern const uint16_t fn_actions[]; #define GUI_T(kc) MT(0x8, kc) #define C_S_T(kc) MT(0x3, kc) // Control + Shift e.g. for gnome-terminal #define MEH_T(kc) MT(0x7, kc) // Meh is a less hyper version of the Hyper key -- doesn't include Win or Cmd, so just alt+shift+ctrl +#define LCAG_T(kc) MT(0xD, kc) // Left control alt and gui #define ALL_T(kc) MT(0xF, kc) // see http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/ // Dedicated keycode versions for Hyper and Meh, if you want to use them as standalone keys rather than mod-tap @@ -208,5 +262,10 @@ extern const uint16_t fn_actions[]; #define UNICODE(n) (n | 0x8000) #define UC(n) UNICODE(n) +// For tri-layer +void update_tri_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3); +#define IS_LAYER_ON(layer) (layer_state & (1UL << (layer))) +#define IS_LAYER_OFF(layer) (~layer_state & (1UL << (layer))) + #endif