#include QMK_KEYBOARD_H
enum layer_names {
_BASE,
_FN
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = LAYOUT(
KC_PGUP, KC_UP, KC_PGDN,
KC_LEFT, KC_DOWN, KC_RIGHT,
MO(_FN), KC_MUTE, BL_TOGG
),
[_FN] = LAYOUT(
KC_HOME, KC_CALC, KC_END,
BL_STEP, KC_ESC, KC_SLEP,
KC_TRNS, KC_MPLY, RESET
)
};
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 _FN:
if (clockwise) {
tap_code(KC_MNXT);
} else {
tap_code(KC_MPRV);
}
}
return true;
}
#ifdef OLED_DRIVER_ENABLE
void oled_task_user(void) {
oled_write_P(PSTR("Layer: "), false);
switch (biton32(layer_state)) {
case _BASE:
oled_write_P(PSTR("Default\n"), false);
break;
case _FN:
oled_write_P(PSTR("FN\n"), false);
break;
default:
oled_write_ln_P(PSTR("Undefined"), false);
}
uint8_t usb_led = host_keyboard_leds();
oled_write_P(IS_LED_ON(usb_led, USB_LED_NUM_LOCK) ? PSTR("NUMLCK ") : PSTR(" "), false);
oled_write_P(IS_LED_ON(usb_led, USB_LED_CAPS_LOCK) ? PSTR("CAPLCK ") : PSTR(" "), false);
oled_write_P(IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK) ? PSTR("SCRLCK ") : PSTR(" "), false);
}
#endif