summaryrefslogtreecommitdiff
path: root/keyboards/sofle/keymaps/keyhive_via
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/sofle/keymaps/keyhive_via')
-rw-r--r--keyboards/sofle/keymaps/keyhive_via/encoder.c48
-rw-r--r--keyboards/sofle/keymaps/keyhive_via/keymap.c65
-rw-r--r--keyboards/sofle/keymaps/keyhive_via/rules.mk1
3 files changed, 27 insertions, 87 deletions
diff --git a/keyboards/sofle/keymaps/keyhive_via/encoder.c b/keyboards/sofle/keymaps/keyhive_via/encoder.c
deleted file mode 100644
index 7775cb7b86..0000000000
--- a/keyboards/sofle/keymaps/keyhive_via/encoder.c
+++ /dev/null
@@ -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
diff --git a/keyboards/sofle/keymaps/keyhive_via/keymap.c b/keyboards/sofle/keymaps/keyhive_via/keymap.c
index 032c834f44..8af870c574 100644
--- a/keyboards/sofle/keymaps/keyhive_via/keymap.c
+++ b/keyboards/sofle/keymaps/keyhive_via/keymap.c
@@ -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][NUM_DIRECTIONS] = {
+ [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
diff --git a/keyboards/sofle/keymaps/keyhive_via/rules.mk b/keyboards/sofle/keymaps/keyhive_via/rules.mk
index 2875254096..c7fce92a4f 100644
--- a/keyboards/sofle/keymaps/keyhive_via/rules.mk
+++ b/keyboards/sofle/keymaps/keyhive_via/rules.mk
@@ -1,2 +1,3 @@
VIA_ENABLE = yes
RGBLIGHT_ENABLE = yes
+ENCODER_MAP_ENABLE = yes