forked from mirrors/qmk_firmware
57 lines
1.4 KiB
C
57 lines
1.4 KiB
C
|
// Copyright 2021-22 Will McGLoughlin (wymcg)
|
||
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||
|
|
||
|
#include QMK_KEYBOARD_H
|
||
|
|
||
|
// Defines names for use in layer keycodes and the keymap
|
||
|
enum layer_names {
|
||
|
_BASE,
|
||
|
_NAV,
|
||
|
_PROD
|
||
|
};
|
||
|
|
||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||
|
[_BASE] = LAYOUT(
|
||
|
KC_MUTE, KC_MPRV, KC_MPLY, KC_MNXT,
|
||
|
TO(_NAV), G(KC_1), G(KC_2), G(KC_3),
|
||
|
TO(_PROD), G(KC_4), G(KC_5), G(KC_6)
|
||
|
),
|
||
|
[_NAV] = LAYOUT(
|
||
|
TO(_BASE), KC_HOME, KC_UP, KC_END,
|
||
|
A(KC_TAB), KC_LEFT, KC_DOWN, KC_RIGHT,
|
||
|
G(KC_TAB), KC_PGDN, KC_PGUP, MO(_BASE)
|
||
|
),
|
||
|
[_PROD] = LAYOUT(
|
||
|
TO(_BASE), KC_NO, KC_NO, KC_NO,
|
||
|
C(KC_Z), C(KC_X), C(KC_C), C(KC_V),
|
||
|
C(KC_A), C(KC_LEFT), C(KC_RIGHT),MO(_BASE)
|
||
|
)
|
||
|
};
|
||
|
|
||
|
bool encoder_update_user(uint8_t index, bool clockwise) {
|
||
|
switch (biton32(layer_state)) {
|
||
|
case _BASE:
|
||
|
if (clockwise) {
|
||
|
tap_code(KC_VOLU);
|
||
|
} else {
|
||
|
tap_code(KC_VOLD);
|
||
|
}
|
||
|
break;
|
||
|
case _NAV:
|
||
|
if (clockwise) {
|
||
|
tap_code16(C(G(KC_RIGHT)));
|
||
|
} else {
|
||
|
tap_code16(C(G(KC_LEFT)));
|
||
|
}
|
||
|
break;
|
||
|
case _PROD:
|
||
|
if (clockwise) {
|
||
|
tap_code16(C(KC_Y));
|
||
|
} else {
|
||
|
tap_code16(C(KC_Z));
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
return false;
|
||
|
}
|