diff options
| author | Jack Humbert <jack.humb@gmail.com> | 2015-10-26 20:02:25 -0400 | 
|---|---|---|
| committer | Jack Humbert <jack.humb@gmail.com> | 2015-10-26 20:02:25 -0400 | 
| commit | cc1c32671eb1eb43a87e55ac4ffa60b15115e48d (patch) | |
| tree | 4f57c95c9c22d858b1eac8bcd3d489c0d6214719 /quantum | |
| parent | 402122744c26704f378cda828d30bf11e8d6dabf (diff) | |
fixed makefile, added MO DF shortcuts
Diffstat (limited to 'quantum')
| -rw-r--r-- | quantum/keymap_common.c | 30 | ||||
| -rw-r--r-- | quantum/keymap_common.h | 40 | 
2 files changed, 63 insertions, 7 deletions
| diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c index c9e1494fd9..5c00c0afa2 100644 --- a/quantum/keymap_common.c +++ b/quantum/keymap_common.c @@ -78,12 +78,30 @@ action_t action_for_key(uint8_t layer, keypos_t key)          print("\nDEBUG: enabled.\n");          debug_enable = true;          return; -    } else if (keycode >= 0x5000 && keycode < 0x6000) { -        int when = (keycode >> 0x9) & 0x3; -        int layer = keycode & 0xFF; -        action_t action; -        action.code = ACTION_LAYER_SET(layer, when); -        return action; +    } else if (keycode >= 0x5000 && keycode < 0x6000) {  +        // Layer movement shortcuts +        // See .h to see constraints/usage +        int type = (keycode >> 0x8) & 0xF; +        if (type == 0x1) { +            // Layer set "GOTO" +            int when = (keycode >> 0x4) & 0x3; +            int layer = keycode & 0xF; +            action_t action; +            action.code = ACTION_LAYER_SET(layer, when); +            return action; +        } else if (type == 0x2) { +            // Momentary layer +            int layer = keycode & 0xFF; +            action_t action; +            action.code = ACTION_LAYER_MOMENTARY(layer); +            return action; +        } else if (type == 0x3) { +            // Set default layer +            int layer = keycode & 0xFF; +            action_t action; +            action.code = ACTION_DEFAULT_LAYER_SET(layer); +            return action; +        }  #ifdef MIDI_ENABLE      } else if (keycode >= 0x6000 && keycode < 0x7000) {          action_t action; diff --git a/quantum/keymap_common.h b/quantum/keymap_common.h index 091f7d8f3e..30ef9365ad 100644 --- a/quantum/keymap_common.h +++ b/quantum/keymap_common.h @@ -71,6 +71,36 @@ extern const uint16_t fn_actions[];  #define RALT(kc) kc | 0x1400  #define RGUI(kc) kc | 0x1800 +// Aliases for shifted symbols +#define KC_TILD LSFT(KC_GRV)    // ~ +#define KC_TILDE    KC_TILD +#define KC_EXLM LSFT(KC_1)      // ! +#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 +#define KC_PERC LSFT(KC_5)      // % +#define KC_PERCENT  KC_PERC +#define KC_CIRC LSFT(KC_6)      // ^ +#define KC_CIRCUMFLEX   KC_CIRC +#define KC_AMPR LSFT(KC_7)      // & +#define KC_AMPERSAND    KC_AMPR +#define KC_ASTR LSFT(KC_8)      // * +#define KC_ASTERISK KC_ASTR +#define KC_LPRN LSFT(KC_9)      // ( +#define KC_LEFT_PAREN   KC_LPRN +#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_PIPE LSFT(KC_SLSH)   // | +  // Alias for function layers than expand past FN31  #define FUNC(kc) kc | 0x2000 @@ -108,10 +138,18 @@ extern const uint16_t fn_actions[];  #define RESET 0x5000  #define DEBUG 0x5001 +// GOTO layer - 16 layers max +// when:  // ON_PRESS    = 1  // ON_RELEASE  = 2  // ON_BOTH     = 3 -#define TO(layer, when) (layer | 0x5100 | (when << 0x9)) +#define TO(layer, when) (layer | 0x5100 | (when << 0x4)) + +// Momentary switch layer - 256 layer max +#define MO(layer) (layer | 0x5200) + +// Set default layer - 256 layer max +#define DF(layer) (layer | 0x5300)  #define MIDI(n) (n | 0x6000) | 
