keychron_qmk_firmware/keyboards/psuieee/pluto12/keymaps/wymcg/keymap.c
2022-03-06 23:16:50 -08:00

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;
}