|
|
|
@ -5,22 +5,28 @@
|
|
|
|
|
|
|
|
|
|
extern keymap_config_t keymap_config;
|
|
|
|
|
|
|
|
|
|
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
|
|
|
|
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
|
|
|
|
|
// Layer names don't all need to be of the same length, obviously, and you can also skip them
|
|
|
|
|
// entirely and just use numbers.
|
|
|
|
|
#define _QWERTY 0
|
|
|
|
|
#define _LOWER 1
|
|
|
|
|
#define _RAISE 2
|
|
|
|
|
#define _FUNC 3
|
|
|
|
|
#define _ADJUST 16
|
|
|
|
|
#define _DYN 6
|
|
|
|
|
|
|
|
|
|
enum planck_keycodes {
|
|
|
|
|
enum jj40_layers {
|
|
|
|
|
_QWERTY,
|
|
|
|
|
_MAC,
|
|
|
|
|
_LOWER,
|
|
|
|
|
_MLWR,
|
|
|
|
|
_RAISE,
|
|
|
|
|
_MRSE,
|
|
|
|
|
_FUNC,
|
|
|
|
|
_MFNC,
|
|
|
|
|
_ADJUST,
|
|
|
|
|
_DYN
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
enum jj40_keycodes {
|
|
|
|
|
QWERTY = SAFE_RANGE,
|
|
|
|
|
MAC,
|
|
|
|
|
FUNC,
|
|
|
|
|
MFNC,
|
|
|
|
|
LOWER,
|
|
|
|
|
MLWR,
|
|
|
|
|
RAISE,
|
|
|
|
|
MRSE,
|
|
|
|
|
DYNAMIC_MACRO_RANGE
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
@ -117,10 +123,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|
|
|
|
* `-----------------------------------------------------------------------------------'
|
|
|
|
|
*/
|
|
|
|
|
[_ADJUST] = KEYMAP(\
|
|
|
|
|
M(0), RESET, QWERTY, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL ,\
|
|
|
|
|
KC_CAPS, _______, _______, _______, _______, _______, _______, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, KC_MEDIA_PLAY_PAUSE, _______, _______ ,\
|
|
|
|
|
_______, _______, _______, _______, _______, _______, _______, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK, _______, _______ ,\
|
|
|
|
|
_______, _______, _______, _______, _______, _______, _______, _______, MO(_DYN), _______, _______, _______ \
|
|
|
|
|
M(0), RESET, QWERTY, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL ,\
|
|
|
|
|
KC_CAPS, _______, _______, _______, _______, _______, _______, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, KC_MEDIA_PLAY_PAUSE, _______, _______ ,\
|
|
|
|
|
TG(_MAC), _______, _______, _______, _______, _______, _______, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK, _______, _______ ,\
|
|
|
|
|
_______, _______, _______, _______, _______, _______, _______, _______, MO(_DYN), _______, _______, _______ \
|
|
|
|
|
),
|
|
|
|
|
|
|
|
|
|
/* DYN: Macro Recording and Playback
|
|
|
|
@ -139,11 +145,38 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|
|
|
|
_______, _______, _______, _______, _______, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, _______, _______, _______, _______, _______,\
|
|
|
|
|
_______, _______, _______, _______, _______, DYN_REC_STOP, DYN_REC_STOP, _______, _______, _______, _______, _______,\
|
|
|
|
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______\
|
|
|
|
|
),
|
|
|
|
|
|
|
|
|
|
[_MAC]= KEYMAP(\
|
|
|
|
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\
|
|
|
|
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\
|
|
|
|
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\
|
|
|
|
|
_______, _______, _______, _______, MLWR, _______, _______, MRSE, _______, _______, _______, _______\
|
|
|
|
|
),
|
|
|
|
|
|
|
|
|
|
[_MLWR] = KEYMAP(\
|
|
|
|
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\
|
|
|
|
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\
|
|
|
|
|
_______, KC_GRAVE, KC_NONUS_BSLASH, _______, _______, _______, _______, _______, _______, _______, _______, _______,\
|
|
|
|
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______\
|
|
|
|
|
),
|
|
|
|
|
|
|
|
|
|
[_MRSE] = KEYMAP(\
|
|
|
|
|
_______, _______, M(2), _______, _______, _______, _______, _______, _______, _______, _______, _______ ,\
|
|
|
|
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, LGUI(KC_EQL) ,\
|
|
|
|
|
_______, _______, _______, _______, _______, _______, LALT(KC_LEFT), _______, _______, _______, LALT(KC_RIGHT), LGUI(KC_MINS) ,\
|
|
|
|
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
|
|
|
|
|
),
|
|
|
|
|
|
|
|
|
|
[_MFNC]= KEYMAP(\
|
|
|
|
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,\
|
|
|
|
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, LGUI(KC_PENT) ,\
|
|
|
|
|
_______, KC_GRAVE, KC_NONUS_BSLASH, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,\
|
|
|
|
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void persistant_default_layer_set(uint16_t default_layer) {
|
|
|
|
|
eeconfig_update_default_layer(default_layer);
|
|
|
|
|
default_layer_set(default_layer);
|
|
|
|
@ -179,10 +212,42 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|
|
|
|
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
case MLWR:
|
|
|
|
|
if (record->event.pressed) {
|
|
|
|
|
layer_on(_LOWER);
|
|
|
|
|
layer_on(_MLWR);
|
|
|
|
|
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
|
|
|
|
} else {
|
|
|
|
|
layer_off(_LOWER);
|
|
|
|
|
layer_off(_MLWR);
|
|
|
|
|
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
case MRSE:
|
|
|
|
|
if (record->event.pressed) {
|
|
|
|
|
layer_on(_RAISE);
|
|
|
|
|
layer_on(_MRSE);
|
|
|
|
|
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
|
|
|
|
} else {
|
|
|
|
|
layer_off(_RAISE);
|
|
|
|
|
layer_off(_MRSE);
|
|
|
|
|
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
case MFNC:
|
|
|
|
|
if (record->event.pressed) {
|
|
|
|
|
layer_on(_FUNC);
|
|
|
|
|
layer_on(_MFNC);
|
|
|
|
|
} else {
|
|
|
|
|
layer_off(_FUNC);
|
|
|
|
|
layer_off(_MFNC);
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
|
|
|
|
|
switch(id) {
|
|
|
|
|
// These would trigger when you hit a key mapped as M(0)
|
|
|
|
@ -201,6 +266,13 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
|
|
|
|
|
END
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
case 2: // Word Select - MAC
|
|
|
|
|
if (record->event.pressed) {
|
|
|
|
|
return MACRO(
|
|
|
|
|
DOWN(KC_LALT), DOWN(KC_RIGHT), UP(KC_RIGHT), DOWN(KC_LSFT), DOWN(KC_LEFT), UP(KC_LEFT), UP(KC_LSFT), UP(KC_LALT),
|
|
|
|
|
END
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return MACRO_NONE;
|
|
|
|
|
};
|
|
|
|
|