Remove encoder in-matrix workaround code (#20389)
This commit is contained in:
parent
74fbd5a031
commit
c4a67d3f33
241 changed files with 1106 additions and 5235 deletions
|
@ -1,48 +0,0 @@
|
|||
/* Copyright 2020 Josef Adamcik
|
||||
* Modification for VIA support and RGB underglow by Jens Bonk-Wiltfang
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
//Setting up what encoder rotation does. If your encoder can be pressed as a button, that function can be set in Via.
|
||||
|
||||
#ifdef ENCODER_ENABLE
|
||||
static uint8_t encoder_state[2] = {0};
|
||||
//Use these keymap positions to specify the encoder functions on rotate.
|
||||
static keypos_t encoder_ccw[2] = {{6, 3}, {6, 8}};
|
||||
static keypos_t encoder_cw[2] = {{6, 1}, {6, 6}};
|
||||
|
||||
void encoder_action_unregister(void) {
|
||||
for (int index = 0; index < 2; ++index) {
|
||||
if (encoder_state[index]) {
|
||||
keyevent_t encoder_event = (keyevent_t){.key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index], .pressed = false, .time = timer_read(), .type = KEY_EVENT};
|
||||
encoder_state[index] = 0;
|
||||
action_exec(encoder_event);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void encoder_action_register(uint8_t index, bool clockwise) {
|
||||
keyevent_t encoder_event = (keyevent_t){.key = clockwise ? encoder_cw[index] : encoder_ccw[index], .pressed = true, .time = timer_read(), .type = KEY_EVENT};
|
||||
encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
|
||||
action_exec(encoder_event);
|
||||
}
|
||||
|
||||
void matrix_scan_user(void) { encoder_action_unregister(); }
|
||||
|
||||
bool encoder_update_user(uint8_t index, bool clockwise) {
|
||||
encoder_action_register(index, clockwise);
|
||||
return false;
|
||||
};
|
||||
#endif
|
|
@ -18,7 +18,6 @@
|
|||
#include QMK_KEYBOARD_H
|
||||
|
||||
#include "oled.c"
|
||||
#include "encoder.c"
|
||||
|
||||
// Base layer is the number of layers CYCLE selects from.
|
||||
#define BASE_LAYERS 2
|
||||
|
@ -35,27 +34,6 @@ enum custom_layers {
|
|||
_RAISE
|
||||
};
|
||||
|
||||
// Extra keys are added for rotary encoder support in VIA
|
||||
#define LAYOUT_via( \
|
||||
LA1, LA2, LA3, LA4, LA5, LA6, RA6, RA5, RA4, RA3, RA2, RA1, \
|
||||
LB1, LB2, LB3, LB4, LB5, LB6, LB7, RB7, RB6, RB5, RB4, RB3, RB2, RB1, \
|
||||
LC1, LC2, LC3, LC4, LC5, LC6, LE1, RE6, RC6, RC5, RC4, RC3, RC2, RC1, \
|
||||
LD1, LD2, LD3, LD4, LD5, LD6, LD7, RD7, RD6, RD5, RD4, RD3, RD2, RD1, \
|
||||
LE2, LE3, LE4, LE5, LE6, RE5, RE4, RE3, RE2, RE1 \
|
||||
) \
|
||||
{ \
|
||||
{ LA1, LA2, LA3, LA4, LA5, LA6, KC_NO }, \
|
||||
{ LB1, LB2, LB3, LB4, LB5, LB6, LB7 }, \
|
||||
{ LC1, LC2, LC3, LC4, LC5, LC6, KC_NO }, \
|
||||
{ LD1, LD2, LD3, LD4, LD5, LD6, LD7 }, \
|
||||
{ LE1, LE2, LE3, LE4, LE5, LE6, KC_NO }, \
|
||||
{ RA1, RA2, RA3, RA4, RA5, RA6, KC_NO }, \
|
||||
{ RB1, RB2, RB3, RB4, RB5, RB6, RB7 }, \
|
||||
{ RC1, RC2, RC3, RC4, RC5, RC6, KC_NO }, \
|
||||
{ RD1, RD2, RD3, RD4, RD5, RD6, RD7 }, \
|
||||
{ RE1, RE2, RE3, RE4, RE5, RE6, KC_NO } \
|
||||
}
|
||||
|
||||
//Default keymap. This can be changed in Via. Use oled.c to change beavior that Via cannot change.
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/*
|
||||
|
@ -74,11 +52,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
* `-----------------------------------' '------''---------------------------'
|
||||
*/
|
||||
|
||||
[_QWERTY] = LAYOUT_via(
|
||||
[_QWERTY] = LAYOUT(
|
||||
KC_GRV, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_GRV ,
|
||||
KC_ESC, KC_Q , KC_W , KC_E , KC_R , KC_T , KC_VOLU, KC_PGUP, KC_Y , KC_U , KC_I , KC_O , KC_P , KC_BSPC,
|
||||
KC_TAB, KC_A , KC_S , KC_D , KC_F , KC_G , KC_MUTE, KC_NO , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT,
|
||||
KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_VOLD, KC_PGDN, KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT,
|
||||
KC_ESC, KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_BSPC,
|
||||
KC_TAB, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT,
|
||||
KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_MUTE, KC_NO, KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT,
|
||||
KC_LGUI,KC_LALT ,KC_LCTL,MO(_LOWER), KC_ENT , KC_SPC ,MO(_RAISE),KC_RCTL, KC_RALT, KC_RGUI
|
||||
),
|
||||
/*
|
||||
|
@ -97,7 +75,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
* `-----------------------------------' '------''---------------------------'
|
||||
*/
|
||||
/*
|
||||
[_COLEMAK] = LAYOUT_via(
|
||||
[_COLEMAK] = LAYOUT(
|
||||
KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_GRV ,
|
||||
KC_ESC , KC_Q , KC_W , KC_F , KC_P , KC_G , KC_VOLU, KC_PGUP, KC_J , KC_L , KC_U , KC_Y , KC_SCLN, KC_BSPC,
|
||||
KC_TAB , KC_A , KC_R , KC_S , KC_T , KC_D , KC_MUTE, KC_NO , KC_H , KC_N , KC_E , KC_I , KC_O , KC_QUOT,
|
||||
|
@ -121,11 +99,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
* | | | | |/ / \ \ | | | | |
|
||||
* `-----------------------------------' '------''---------------------------'
|
||||
*/
|
||||
[_COLEMAK] = LAYOUT_via(
|
||||
[_COLEMAK] = LAYOUT(
|
||||
KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_GRV ,
|
||||
KC_ESC , KC_Q , KC_W , KC_F , KC_P , KC_B , KC_VOLU, KC_PGUP, KC_J , KC_L , KC_U , KC_Y , KC_SCLN, KC_BSPC,
|
||||
KC_TAB , KC_A , KC_R , KC_S , KC_T , KC_G , KC_MUTE, KC_NO , KC_M , KC_N , KC_E , KC_I , KC_O , KC_QUOT,
|
||||
KC_LSFT, KC_Z , KC_X , KC_C , KC_D , KC_V , KC_VOLD, KC_PGDN, KC_K , KC_H , KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
|
||||
KC_ESC , KC_Q , KC_W , KC_F , KC_P , KC_B , KC_J , KC_L , KC_U , KC_Y , KC_SCLN, KC_BSPC,
|
||||
KC_TAB , KC_A , KC_R , KC_S , KC_T , KC_G , KC_M , KC_N , KC_E , KC_I , KC_O , KC_QUOT,
|
||||
KC_LSFT, KC_Z , KC_X , KC_C , KC_D , KC_V , _______, _______, KC_K , KC_H , KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
|
||||
KC_LGUI, KC_LALT,KC_LCTL,MO(_LOWER), KC_ENT , KC_SPC ,MO(_RAISE),KC_RCTL, KC_RALT, KC_RGUI
|
||||
),
|
||||
|
||||
|
@ -143,11 +121,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
* | | | | |/ / \ \ | | | | |
|
||||
* `-----------------------------------' '------''---------------------------'
|
||||
*/
|
||||
[_LOWER] = LAYOUT_via(
|
||||
[_LOWER] = LAYOUT(
|
||||
_______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 ,
|
||||
KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , _______, _______, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_F12 ,
|
||||
_______, KC_EXLM, KC_AT , KC_HASH, KC_DLR , KC_PERC, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE,
|
||||
_______, KC_EQL , KC_MINS, KC_PLUS, KC_LCBR, KC_RCBR, _______, _______, KC_LBRC, KC_RBRC, KC_SCLN, KC_COLN, KC_BSLS, _______,
|
||||
KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_F12 ,
|
||||
_______, KC_EXLM, KC_AT , KC_HASH, KC_DLR , KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE,
|
||||
_______, KC_EQL , KC_MINS, KC_PLUS, KC_LCBR, KC_RCBR, _______, _______, KC_LBRC, KC_RBRC, KC_SCLN, KC_COLN, KC_BSLS, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
/* RAISE
|
||||
|
@ -164,11 +142,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
* | | | | |/ / \ \ | | | | |
|
||||
* `----------------------------------' '------''---------------------------'
|
||||
*/
|
||||
[_RAISE] = LAYOUT_via(
|
||||
[_RAISE] = LAYOUT(
|
||||
CYCLE, _______, _______, _______, _______ , _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, KC_INS , KC_PSCR, KC_APP , XXXXXXX , XXXXXXX, _______, _______, KC_PGUP, _______, KC_UP , _______, _______, KC_BSPC,
|
||||
_______, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX , KC_CAPS, _______, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL , KC_BSPC,
|
||||
_______, KC_UNDO, KC_CUT , KC_COPY, KC_PASTE, XXXXXXX, _______, _______, XXXXXXX, _______, XXXXXXX, _______, XXXXXXX, _______,
|
||||
_______, KC_INS , KC_PSCR, KC_APP , XXXXXXX , XXXXXXX, KC_PGUP, _______, KC_UP , _______, _______, KC_BSPC,
|
||||
_______, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX , KC_CAPS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL , KC_BSPC,
|
||||
_______, KC_UNDO, KC_CUT , KC_COPY, KC_PASTE, XXXXXXX, _______, _______, XXXXXXX, _______, XXXXXXX, _______, XXXXXXX, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
};
|
||||
|
@ -189,3 +167,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|||
// this uses less memory than returning in each case.
|
||||
return keycode < SAFE_RANGE;
|
||||
};
|
||||
|
||||
#ifdef ENCODER_MAP_ENABLE
|
||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
|
||||
[0] = { ENCODER_CCW_CW(KC_BSPC, KC_DEL), ENCODER_CCW_CW(KC_PGDN, KC_PGUP) },
|
||||
[1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
|
||||
[2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
|
||||
[3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }
|
||||
};
|
||||
#endif
|
||||
|
|
|
@ -1,2 +1,3 @@
|
|||
VIA_ENABLE = yes
|
||||
RGBLIGHT_ENABLE = yes
|
||||
ENCODER_MAP_ENABLE = yes
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue