Add support for encoders on Planck rev 7 in QMK version 0.26 (#807)
This commit is contained in:
parent
fcc070929c
commit
159c088845
2 changed files with 221 additions and 61 deletions
|
@ -147,13 +147,69 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_ADJUST] = LAYOUT_planck_grid(
|
||||
_______, QK_BOOT, DB_TOGG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL ,
|
||||
_______, QK_BOOT, DB_TOGG, UG_TOGG, UG_NEXT, UG_HUEU, UG_HUED, UG_SATU, UG_SATD, UG_SPDU, UG_SPDD, KC_DEL ,
|
||||
_______, EE_CLR, MU_NEXT, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______,
|
||||
_______, AU_PREV, AU_NEXT, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
|
||||
};
|
||||
|
||||
#ifdef ENCODER_MAP_ENABLE
|
||||
/* Rotary Encoders
|
||||
*/
|
||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
|
||||
/* Qwerty
|
||||
* v- (index) Clockwise / Counter Clockwise v- (index) Clockwise / Counter Clockwise
|
||||
* ,---------------------------------------------------------------------------------------.
|
||||
* | (0) Vol- / Vol+ | | | | | | | | | | | (4) Vol- / Vol+ |
|
||||
* |-----------------------+---+---+---+---+---+---+---+---+---+---+-----------------------|
|
||||
* | (1) KC_MNXT / KC_MPRV | | | | | | | | | | | (5) KC_MNXT / KC_MPRV |
|
||||
* |-----------------------+---+---+---+---+---+---+---+---+---+---+-----------------------|
|
||||
* | (2) KC_WBAK / KC_WFWD | | | | | | | | | | | (6) KC_SPC / KC_ENT |
|
||||
* |-----------------------+---+---+---+---+---+---+---+---+---+---+-----------------------|
|
||||
* | (3) KC_LEFT / KC_RGHT | | | | | | | | | | (7) KC_DOWN / KC_UP |
|
||||
* `---------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_QWERTY] = {
|
||||
// LEFT SIDE (index 0 to 3)
|
||||
ENCODER_CCW_CW(KC_VOLU, KC_VOLD),
|
||||
ENCODER_CCW_CW(KC_MNXT, KC_MPRV),
|
||||
ENCODER_CCW_CW(KC_WBAK, KC_WFWD),
|
||||
ENCODER_CCW_CW(KC_LEFT, KC_RGHT),
|
||||
// RIGHT SIDE (index 4 to 7)
|
||||
ENCODER_CCW_CW(KC_VOLU, KC_VOLD),
|
||||
ENCODER_CCW_CW(KC_MNXT, KC_MPRV),
|
||||
ENCODER_CCW_CW(KC_SPC, KC_ENT),
|
||||
ENCODER_CCW_CW(KC_DOWN, KC_UP)
|
||||
},
|
||||
|
||||
/* Adjust (Lower + Raise)
|
||||
* v- (index) Clockwise / Counter Clockwise v- (index) Clockwise / Counter Clockwise
|
||||
* ,---------------------------------------------------------------------------------------.
|
||||
* | (0) _______ / _______ | | | | | | | | | | | (4) _______ / _______ |
|
||||
* |-----------------------+---+---+---+---+---+---+---+---+---+---+-----------------------|
|
||||
* | (1) _______ / _______ | | | | | | | | | | | (5) _______ / _______ |
|
||||
* |-----------------------+---+---+---+---+---+---+---+---+---+---+-----------------------|
|
||||
* | (2) UG_NEXT / UG_PREV | | | | | | | | | | | (6) SAT- / SAT+ |
|
||||
* |-----------------------+---+---+---+---+---+---+---+---+---+---+-----------------------|
|
||||
* | (3) UG_VALD / UG_VALU | | | | | | | | | | (7) HUE- / HUE+ |
|
||||
* `---------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_ADJUST] = {
|
||||
// LEFT SIDE (index 0 to 3)
|
||||
ENCODER_CCW_CW(_______, _______),
|
||||
ENCODER_CCW_CW(_______, _______),
|
||||
ENCODER_CCW_CW(UG_NEXT, UG_PREV),
|
||||
ENCODER_CCW_CW(UG_VALD, UG_VALU),
|
||||
// RIGHT SIDE (index 4 to 7)
|
||||
ENCODER_CCW_CW(_______, _______),
|
||||
ENCODER_CCW_CW(_______, _______),
|
||||
ENCODER_CCW_CW(UG_SATD, UG_SATU),
|
||||
ENCODER_CCW_CW(UG_HUEU, UG_HUED)
|
||||
}
|
||||
};
|
||||
#endif
|
||||
/* clang-format on */
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
|
@ -161,14 +217,22 @@ float plover_song[][2] = SONG(PLOVER_SOUND);
|
|||
float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND);
|
||||
#endif
|
||||
|
||||
bool play_encoder_melody(uint8_t index, bool clockwise);
|
||||
|
||||
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
#ifdef ENCODER_MAP_ENABLE
|
||||
if (IS_ENCODEREVENT(record->event) && record->event.pressed) {
|
||||
play_encoder_melody(record->event.key.col, record->event.type == ENCODER_CCW_EVENT);
|
||||
}
|
||||
#endif
|
||||
switch (keycode) {
|
||||
case QWERTY:
|
||||
if (record->event.pressed) {
|
||||
print("mode just switched to qwerty and this is a huge string\n");
|
||||
set_single_persistent_default_layer(_QWERTY);
|
||||
}
|
||||
return false;
|
||||
|
@ -259,7 +323,7 @@ uint32_t reset_note(uint32_t trigger_time, void *note) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
bool encoder_update_user(uint8_t index, bool clockwise) {
|
||||
bool play_encoder_melody(uint8_t index, bool clockwise) {
|
||||
cancel_deferred_exec(tokens[index]);
|
||||
if (clockwise) {
|
||||
melody[index][1][0] = melody[index][1][0] * ET12_MINOR_SECOND;
|
||||
|
@ -274,6 +338,10 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
|
|||
return false;
|
||||
}
|
||||
|
||||
bool encoder_update_user(uint8_t index, bool clockwise) {
|
||||
return play_encoder_melody(index, clockwise);
|
||||
}
|
||||
|
||||
bool dip_switch_update_user(uint8_t index, bool active) {
|
||||
switch (index) {
|
||||
case 0: {
|
||||
|
|
|
@ -1,12 +1,24 @@
|
|||
{
|
||||
"matrix": {"rows": 8, "cols": 6},
|
||||
"layouts": {
|
||||
"labels": [["Layout", "MIT (1x2u)", "Grid (2x1u)", "2x2u", "3x3u"]],
|
||||
"labels": [["Layout", "MIT (1x2u)", "Grid (2x1u)", "2x2u", "3x3u"], "Encoders"],
|
||||
"keymap": [
|
||||
[
|
||||
{"c": "#aaaaaa"},
|
||||
"0,0\n\n\n1,1\n\n\n\n\n\ne",
|
||||
{
|
||||
"x": -1,
|
||||
"d": true
|
||||
},
|
||||
"0,0\n\n\n1,0",
|
||||
"0,1\n\n\n1,1\n\n\n\n\n\ne",
|
||||
{
|
||||
"x": 1.5,
|
||||
"c": "#aaaaaa"
|
||||
},
|
||||
"0,0",
|
||||
{"c": "#cccccc"},
|
||||
{
|
||||
"c": "#cccccc"
|
||||
},
|
||||
"0,1",
|
||||
"0,2",
|
||||
"0,3",
|
||||
|
@ -17,12 +29,26 @@
|
|||
"4,2",
|
||||
"4,3",
|
||||
"4,4",
|
||||
{"c": "#aaaaaa"},
|
||||
"4,5"
|
||||
{
|
||||
"c": "#aaaaaa"
|
||||
},
|
||||
"4,5",
|
||||
{
|
||||
"x": 1.5
|
||||
},
|
||||
"4,0\n\n\n1,1\n\n\n\n\n\ne",
|
||||
"4,1\n\n\n1,1\n\n\n\n\n\ne"
|
||||
],
|
||||
[
|
||||
"1,0\n\n\n1,1\n\n\n\n\n\ne",
|
||||
"1,1\n\n\n1,1\n\n\n\n\n\ne",
|
||||
{
|
||||
"x": 1.5
|
||||
},
|
||||
"1,0",
|
||||
{"c": "#cccccc"},
|
||||
{
|
||||
"c": "#cccccc"
|
||||
},
|
||||
"1,1",
|
||||
"1,2",
|
||||
"1,3",
|
||||
|
@ -33,12 +59,26 @@
|
|||
"5,2",
|
||||
"5,3",
|
||||
"5,4",
|
||||
{"c": "#aaaaaa"},
|
||||
"5,5"
|
||||
{
|
||||
"c": "#aaaaaa"
|
||||
},
|
||||
"5,5",
|
||||
{
|
||||
"x": 1.5
|
||||
},
|
||||
"5,0\n\n\n1,1\n\n\n\n\n\ne",
|
||||
"5,1\n\n\n1,1\n\n\n\n\n\ne"
|
||||
],
|
||||
[
|
||||
"2,0\n\n\n1,1\n\n\n\n\n\ne",
|
||||
"2,1\n\n\n1,1\n\n\n\n\n\ne",
|
||||
{
|
||||
"x": 1.5
|
||||
},
|
||||
"2,0",
|
||||
{"c": "#cccccc"},
|
||||
{
|
||||
"c": "#cccccc"
|
||||
},
|
||||
"2,1",
|
||||
"2,2",
|
||||
"2,3",
|
||||
|
@ -49,53 +89,105 @@
|
|||
"6,2",
|
||||
"6,3",
|
||||
"6,4",
|
||||
{"c": "#aaaaaa"},
|
||||
"6,5"
|
||||
{
|
||||
"c": "#aaaaaa"
|
||||
},
|
||||
"6,5",
|
||||
{
|
||||
"x": 1.5
|
||||
},
|
||||
"6,0\n\n\n1,1\n\n\n\n\n\ne",
|
||||
"6,1\n\n\n1,1\n\n\n\n\n\ne"
|
||||
],
|
||||
[
|
||||
"3,0\n\n\n1,1\n\n\n\n\n\ne",
|
||||
"3,1\n\n\n1,1\n\n\n\n\n\ne",
|
||||
{
|
||||
"x": 1.5
|
||||
},
|
||||
"3,0",
|
||||
"3,1",
|
||||
"3,2",
|
||||
"7,3\n\n\n0,0",
|
||||
{"c": "#777777"},
|
||||
"7,4\n\n\n0,0",
|
||||
{"c": "#cccccc", "w": 2},
|
||||
"3,3\n\n\n0,0",
|
||||
{
|
||||
"c": "#777777"
|
||||
},
|
||||
"3,4\n\n\n0,0",
|
||||
{
|
||||
"c": "#cccccc",
|
||||
"w": 2
|
||||
},
|
||||
"7,0\n\n\n0,0",
|
||||
{"c": "#777777"},
|
||||
{
|
||||
"c": "#777777"
|
||||
},
|
||||
"7,1\n\n\n0,0",
|
||||
{"c": "#aaaaaa"},
|
||||
{
|
||||
"c": "#aaaaaa"
|
||||
},
|
||||
"7,2\n\n\n0,0",
|
||||
"3,3",
|
||||
"3,4",
|
||||
"3,5"
|
||||
"7,3",
|
||||
"7,4",
|
||||
"7,5",
|
||||
{
|
||||
"x": 1.5
|
||||
},
|
||||
"7,0\n\n\n1,1\n\n\n\n\n\ne",
|
||||
"7,1\n\n\n1,1\n\n\n\n\n\ne"
|
||||
],
|
||||
[
|
||||
{"y": 0.25, "x": 3},
|
||||
"7,3\n\n\n0,1",
|
||||
{"c": "#777777"},
|
||||
"7,4\n\n\n0,1",
|
||||
{"c": "#cccccc"},
|
||||
"7,5\n\n\n0,1",
|
||||
{
|
||||
"y": 0.25,
|
||||
"x": 6.5
|
||||
},
|
||||
"3,3\n\n\n0,1",
|
||||
{
|
||||
"c": "#777777"
|
||||
},
|
||||
"3,4\n\n\n0,1",
|
||||
{
|
||||
"c": "#cccccc"
|
||||
},
|
||||
"3,5\n\n\n0,1",
|
||||
"7,0\n\n\n0,1",
|
||||
{"c": "#777777"},
|
||||
{
|
||||
"c": "#777777"
|
||||
},
|
||||
"7,1\n\n\n0,1",
|
||||
{"c": "#aaaaaa"},
|
||||
{
|
||||
"c": "#aaaaaa"
|
||||
},
|
||||
"7,2\n\n\n0,1"
|
||||
],
|
||||
[
|
||||
{"x": 3},
|
||||
"7,3\n\n\n0,2",
|
||||
{"c": "#777777", "w": 2},
|
||||
"7,5\n\n\n0,2",
|
||||
{"w": 2},
|
||||
{
|
||||
"x": 6.5
|
||||
},
|
||||
"3,3\n\n\n0,2",
|
||||
{
|
||||
"c": "#777777",
|
||||
"w": 2
|
||||
},
|
||||
"3,5\n\n\n0,2",
|
||||
{
|
||||
"w": 2
|
||||
},
|
||||
"7,1\n\n\n0,2",
|
||||
{"c": "#aaaaaa"},
|
||||
{
|
||||
"c": "#aaaaaa"
|
||||
},
|
||||
"7,2\n\n\n0,2"
|
||||
],
|
||||
[
|
||||
{"x": 3, "c": "#777777", "w": 3},
|
||||
"7,4\n\n\n0,3",
|
||||
{"w": 3},
|
||||
{
|
||||
"x": 6.5,
|
||||
"c": "#777777",
|
||||
"w": 3
|
||||
},
|
||||
"3,4\n\n\n0,3",
|
||||
{
|
||||
"w": 3
|
||||
},
|
||||
"7,1\n\n\n0,3"
|
||||
]
|
||||
]
|
||||
|
|
Loading…
Reference in a new issue