mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-05-31 21:43:19 +00:00
encoders: use encoder_map instead of custom code
This commit is contained in:
parent
123b5b4ed9
commit
56d3759893
@ -30,6 +30,7 @@ enum layer_number {
|
|||||||
#define RS_HENK LT(2,KC_INT4) // raise
|
#define RS_HENK LT(2,KC_INT4) // raise
|
||||||
#define DEL_ALT ALT_T(KC_DEL)
|
#define DEL_ALT ALT_T(KC_DEL)
|
||||||
|
|
||||||
|
// In the buttom row, KC_MS_BTN3 binds middle-click to the encoder's button press
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
[_BASE] = LAYOUT(
|
[_BASE] = LAYOUT(
|
||||||
//|-------------------------------------------------------| |-------------------------------------------------------|
|
//|-------------------------------------------------------| |-------------------------------------------------------|
|
||||||
@ -40,7 +41,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_MINS,
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_MINS,
|
||||||
//|-------------------------------------------------------| |-------------------------------------------------------|
|
//|-------------------------------------------------------| |-------------------------------------------------------|
|
||||||
KC_LGUI, DEL_ALT, LW_MHEN, KC_SPC, KC_MS_BTN1, KC_MS_BTN2, KC_ENT, RS_HENK, KC_BSPC, KC_ESC,
|
KC_LGUI, DEL_ALT, LW_MHEN, KC_SPC, KC_MS_BTN1, KC_MS_BTN2, KC_ENT, RS_HENK, KC_BSPC, KC_ESC,
|
||||||
KC_PGUP, KC_MS_BTN3, KC_PGDN, XXXXXXX, XXXXXXX, XXXXXXX
|
XXXXXXX, KC_MS_BTN3, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
|
||||||
//`--------------' `--------------'
|
//`--------------' `--------------'
|
||||||
),
|
),
|
||||||
[_LOWER] = LAYOUT(
|
[_LOWER] = LAYOUT(
|
||||||
@ -52,7 +53,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
KC_LSFT, KC_GRV, KC_TILD, KC_NUBS, KC_PIPE, XXXXXXX, KC_EQL, KC_PLUS, KC_LABK, KC_RABK, KC_QUES, KC_UNDS,
|
KC_LSFT, KC_GRV, KC_TILD, KC_NUBS, KC_PIPE, XXXXXXX, KC_EQL, KC_PLUS, KC_LABK, KC_RABK, KC_QUES, KC_UNDS,
|
||||||
//|-------------------------------------------------------| |-------------------------------------------------------|
|
//|-------------------------------------------------------| |-------------------------------------------------------|
|
||||||
KC_LGUI, DEL_ALT, KC_TRNS, KC_SPC, KC_MS_BTN4, KC_MS_BTN5, KC_ENT, TT(3), KC_BSPC, KC_ESC,
|
KC_LGUI, DEL_ALT, KC_TRNS, KC_SPC, KC_MS_BTN4, KC_MS_BTN5, KC_ENT, TT(3), KC_BSPC, KC_ESC,
|
||||||
KC_PGUP, KC_MS_BTN3, KC_PGDN, XXXXXXX, XXXXXXX, XXXXXXX
|
XXXXXXX, KC_MS_BTN3, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
|
||||||
//`--------------' `--------------'
|
//`--------------' `--------------'
|
||||||
),
|
),
|
||||||
[_RAISE] = LAYOUT(
|
[_RAISE] = LAYOUT(
|
||||||
@ -64,7 +65,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
KC_LSFT, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_LEFT, KC_DOWN, KC_RGHT, KC_DOT, KC_SLSH, KC_MINS,
|
KC_LSFT, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_LEFT, KC_DOWN, KC_RGHT, KC_DOT, KC_SLSH, KC_MINS,
|
||||||
//|-------------------------------------------------------| |-------------------------------------------------------|
|
//|-------------------------------------------------------| |-------------------------------------------------------|
|
||||||
KC_LGUI, DEL_ALT, TT(3), KC_SPC, KC_MS_BTN4, KC_MS_BTN5, KC_ENT, KC_TRNS, KC_BSPC, KC_ESC,
|
KC_LGUI, DEL_ALT, TT(3), KC_SPC, KC_MS_BTN4, KC_MS_BTN5, KC_ENT, KC_TRNS, KC_BSPC, KC_ESC,
|
||||||
KC_PGUP, KC_MS_BTN3, KC_PGDN, XXXXXXX, XXXXXXX, XXXXXXX
|
XXXXXXX, KC_MS_BTN3, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
|
||||||
//`--------------' `--------------'
|
//`--------------' `--------------'
|
||||||
),
|
),
|
||||||
[_TRACKBALL] = LAYOUT(
|
[_TRACKBALL] = LAYOUT(
|
||||||
@ -76,55 +77,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
XXXXXXX, XXXXXXX, RGB_VAD, RGB_SAD, RGB_HUD,RGB_RMOD, SCRL_IN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
XXXXXXX, XXXXXXX, RGB_VAD, RGB_SAD, RGB_HUD,RGB_RMOD, SCRL_IN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
//|-------------------------------------------------------| |-------------------------------------------------------|
|
//|-------------------------------------------------------| |-------------------------------------------------------|
|
||||||
KC_LGUI, DEL_ALT, KC_TRNS, KC_SPC, KC_MS_BTN1, KC_MS_BTN2, KC_ENT, RS_HENK, KC_BSPC, KC_ESC,
|
KC_LGUI, DEL_ALT, KC_TRNS, KC_SPC, KC_MS_BTN1, KC_MS_BTN2, KC_ENT, RS_HENK, KC_BSPC, KC_ESC,
|
||||||
KC_PGUP, KC_MS_BTN3, KC_PGDN, XXXXXXX, XXXXXXX, XXXXXXX
|
XXXXXXX, KC_MS_BTN3, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
|
||||||
//`--------------' `--------------'
|
//`--------------' `--------------'
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
keyevent_t encoder1_ccw = {
|
// Same function on all layers for now.
|
||||||
.key = (keypos_t){.row = 4, .col = 2},
|
#if defined(ENCODER_MAP_ENABLE)
|
||||||
.pressed = false
|
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
|
||||||
|
[0] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN) },
|
||||||
|
[1] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN) },
|
||||||
|
[2] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN) },
|
||||||
|
[3] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN) },
|
||||||
};
|
};
|
||||||
|
#endif
|
||||||
keyevent_t encoder1_cw = {
|
|
||||||
.key = (keypos_t){.row = 4, .col = 5},
|
|
||||||
.pressed = false
|
|
||||||
};
|
|
||||||
|
|
||||||
bool encoder_update_user(uint8_t index, bool clockwise) {
|
|
||||||
if (index == 0) { /* First encoder */
|
|
||||||
if (clockwise) {
|
|
||||||
encoder1_cw.pressed = true;
|
|
||||||
encoder1_cw.time = (timer_read() | 1);
|
|
||||||
action_exec(encoder1_cw);
|
|
||||||
} else {
|
|
||||||
encoder1_ccw.pressed = true;
|
|
||||||
encoder1_ccw.time = (timer_read() | 1);
|
|
||||||
action_exec(encoder1_ccw);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void matrix_scan_user(void) {
|
|
||||||
|
|
||||||
if (encoder1_ccw.pressed) {
|
|
||||||
encoder1_ccw.pressed = false;
|
|
||||||
encoder1_ccw.time = (timer_read() | 1);
|
|
||||||
action_exec(encoder1_ccw);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (encoder1_cw.pressed) {
|
|
||||||
encoder1_cw.pressed = false;
|
|
||||||
encoder1_cw.time = (timer_read() | 1);
|
|
||||||
action_exec(encoder1_cw);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
layer_state_t layer_state_set_user(layer_state_t state) {
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
switch (get_highest_layer(state)) {
|
switch (get_highest_layer(state)) {
|
||||||
@ -157,4 +123,3 @@ bool oled_task_user(void) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user