#include QMK_KEYBOARD_H #ifdef OS_DETECTION_ENABLE #include "os_detection.h" #endif #include "dgvigil.h" #define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__) enum combos { FA_GUI, FS_ALT, FD_CTL, JQUOT_GUI, JL_ALT, JK_CTL }; const uint16_t PROGMEM fa_combo[] = {KC_F, KC_A, COMBO_END}; const uint16_t PROGMEM fs_combo[] = {KC_F, KC_S, COMBO_END}; const uint16_t PROGMEM fd_combo[] = {KC_F, KC_D, COMBO_END}; const uint16_t PROGMEM jquote_combo[] = {KC_J, KC_QUOT, COMBO_END}; const uint16_t PROGMEM jl_combo[] = {KC_J, KC_L, COMBO_END}; const uint16_t PROGMEM jk_combo[] = {KC_J, KC_K, COMBO_END}; combo_t key_combos[] = { [FA_GUI] = COMBO(fa_combo, KC_LGUI), [FS_ALT] = COMBO(fs_combo, KC_LALT), [FD_CTL] = COMBO(fd_combo, KC_LCTL), [JQUOT_GUI] = COMBO(jquote_combo, KC_RGUI), [JL_ALT] = COMBO(jl_combo, KC_RALT), [JK_CTL] = COMBO(jk_combo, KC_RCTL), }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWERTY] = LAYOUT_wrapper( // ┌────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┐ __________________BASE_L1____________________, __________________BASE_R1____________________, // ├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤ __________________BASE_L2____________________, __________________BASE_R2____________________, // ├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤ __________________BASE_L3____________________, __________________BASE_R3____________________, // └────────┴────────┴────────┴────────┼────────┤ ├────────┼────────┴────────┴────────┴────────┘ _______, _______, // ┌────────┬────────┼────────┼ ┼────────┼────────┬────────┐ ___________THUMB_L3________, ___________THUMB_R3________ // └────────┴────────┴────────┘ └────────┴────────┴────────┘ ), [_NAV] = LAYOUT_wrapper( // ┌────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┐ __________________EMPTY_____________________, __________________NAV_R1____________________, // ├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤ __________________NAV_L2____________________, __________________NAV_R2____________________, // ├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤ __________________NAV_L3____________________, __________________NAV_R3____________________, // └────────┴────────┴────────┴────────┼────────┤ ├────────┼────────┴────────┴────────┴────────┘ _______, _______, // ┌────────┬────────┼────────┼ ┼────────┼────────┬────────┐ ___________THUMB_3__BLANK__, ___________THUMB_3__BLANK__ // └────────┴────────┴────────┘ └────────┴────────┴────────┘ ), [_NUM] = LAYOUT_wrapper( // ┌────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┐ __________________NUM_L1____________________, _________________BOOT_R1____________________, // ├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤ __________________NUM_L2____________________, __________________EMPTY_____________________, // ├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤ __________________NUM_L3____________________, __________________EMPTY_____________________, // └────────┴────────┴────────┴────────┼────────┤ ├────────┼────────┴────────┴────────┴────────┘ _______, _______, // ┌────────┬────────┼────────┼ ┼────────┼────────┬────────┐ _________NUM_TH_L3________, ___________THUMB_3__BLANK__ // └────────┴────────┴────────┘ └────────┴────────┴────────┘ ), [_SYM] = LAYOUT_wrapper( // ┌────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┐ __________________SYM_L1____________________, __________________EMPTY_____________________, // ├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤ __________________SYM_L2____________________, __________________EMPTY_____________________, // ├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤ __________________SYM_L3____________________, __________________EMPTY_____________________, // └────────┴────────┴────────┴────────┼────────┤ ├────────┼────────┴────────┴────────┴────────┘ _______, _______, // ┌────────┬────────┼────────┼ ┼────────┼────────┬────────┐ _________SYM_TH_L3________, _______, _______, _______ // └────────┴────────┴────────┘ └────────┴────────┴────────┘ ), [_FUN] = LAYOUT_wrapper( // ┌────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┐ __________________FUN_L1____________________, _________________BOOT_R1____________________, // ├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤ __________________FUN_L2____________________, __________________EMPTY_____________________, // ├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤ __________________FUN_L3____________________, __________________EMPTY_____________________, // └────────┴────────┴────────┴────────┼────────┤ ├────────┼────────┴────────┴────────┴────────┘ _______, _______, // ┌────────┬────────┼────────┼ ┼────────┼────────┬────────┐ ___________THUMB_3__BLANK__, ___________THUMB_3__BLANK__ // └────────┴────────┴────────┘ └────────┴────────┴────────┘ ), [_MUS] = LAYOUT_wrapper( // ┌────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┐ _________________BOOT_L1____________________, __________________EMPTY_____________________, // ├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤ __________________EMPTY_____________________, __________________MUS_R2____________________, // ├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤ __________________EMPTY_____________________, __________________MUS_R3____________________, // └────────┴────────┴────────┴────────┼────────┤ ├────────┼────────┴────────┴────────┴────────┘ _______, _______, // ┌────────┬────────┼────────┼ ┼────────┼────────┬────────┐ ___________THUMB_3__BLANK__, ___________THUMB_3__BLANK__ // └────────┴────────┴────────┘ └────────┴────────┴────────┘ ), [_MOUSE] = LAYOUT_wrapper( // ┌────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┐ __________________EMPTY_____________________, __________________MOU_R1____________________, // ├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤ __________________EMPTY_____________________, __________________MOU_R2____________________, // ├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤ __________________EMPTY_____________________, __________________MOU_R3____________________, // └────────┴────────┴────────┴────────┼────────┤ ├────────┼────────┴────────┴────────┴────────┘ _______, _______, // ┌────────┬────────┼────────┼ ┼────────┼────────┬────────┐ ___________THUMB_3__BLANK__, ___________THUMB_3__BLANK__ // └────────┴────────┴────────┘ └────────┴────────┴────────┘ ) }; #ifdef OLED_ENABLE oled_rotation_t oled_init_user(oled_rotation_t rotation) { if (is_keyboard_master()) { if(is_keyboard_left()){ return OLED_ROTATION_270; } else { return OLED_ROTATION_90; } } else { return OLED_ROTATION_0; } } static void render_logo(void) { static const char PROGMEM drac_logo[] = { // drac_logo, 128x64px 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x0c, 0x18, 0x78, 0xf0, 0xf0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x07, 0x3e, 0xfc, 0xf0, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0x60, 0x30, 0x30, 0x30, 0x00, 0x00, 0xe0, 0xe0, 0x30, 0x30, 0x30, 0x30, 0x30, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0x70, 0x30, 0x30, 0x30, 0x70, 0xe0, 0xc0, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf8, 0xf0, 0x80, 0xc0, 0xe0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf8, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xc0, 0xe0, 0x7c, 0x3f, 0x0f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xf8, 0xcc, 0x8c, 0x84, 0x86, 0x86, 0xc6, 0xff, 0xff, 0x80, 0x80, 0x00, 0x3f, 0x7f, 0xe0, 0xc0, 0x80, 0x80, 0x80, 0xc0, 0xf0, 0x71, 0x00, 0x00, 0x1f, 0xff, 0xff, 0x80, 0x80, 0x80, 0x80, 0xc0, 0xf8, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x03, 0x03, 0x07, 0x0f, 0x0f, 0x0f, 0x1f, 0x7f, 0x7f, 0x3e, 0x3e, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xf8, 0xf8, 0xfc, 0xfc, 0xfe, 0xfe, 0x7e, 0x7c, 0x78, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0x60, 0x60, 0x60, 0x60, 0x60, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xe0, 0x60, 0x60, 0x60, 0xc0, 0xc0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x3e, 0x7c, 0xfc, 0xf8, 0xf8, 0xf8, 0xf8, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf8, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x3f, 0x1f, 0x0f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf1, 0x99, 0x18, 0x08, 0x0c, 0x0c, 0x8c, 0xff, 0xff, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xc1, 0x80, 0x00, 0x00, 0x00, 0x80, 0xc3, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x07, 0x0f, 0x0f, 0x0f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x0f, 0x0f, 0x07, 0x07, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x03, 0x03, 0x03, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; oled_write_raw_P(drac_logo, sizeof(drac_logo)); } static void render_status(void) { oled_write_P(PSTR("~~~~~~~~~\nDarthVigil\n~~~~~~~~~\nDracu\nLad\n~~~~~~~~~\n"), false); oled_write_P(PSTR("\n"), false); #ifdef OS_DETECTION_ENABLE char data; switch (detected_host_os()) { case OS_UNSURE: data = 0x01; // Face mark break; case OS_LINUX: data = 0x99; // Penguin break; case OS_WINDOWS: data = 0x97; // Window break; case OS_MACOS: data = 0x95; // Banana break; case OS_IOS: data = 0x9B; // But Robot Android ! break; default: data = 0x4F; // ? break; } oled_write_char(data, false); #endif oled_write_P(PSTR("\n"), false); led_t led_state = host_keyboard_led_state(); oled_write_P(PSTR("\nCaps: "), false); oled_write_P(led_state.caps_lock ? PSTR("ON ") : PSTR("OFF"), false); oled_write_P(PSTR("\n"), false); oled_write_P(PSTR("\n"), false); switch (get_highest_layer(layer_state)) { case _QWERTY: oled_write_P(PSTR("QWERTY "), false); break; case _NAV: oled_write_P(PSTR("NAV "), false); break; case _NUM: oled_write_P(PSTR("NUM! "), false); break; case _SYM: oled_write_P(PSTR("SYMB@ "), false); break; case _FUN: oled_write_P(PSTR("FUN F1 "), false); break; case _MUS: oled_write_P(PSTR("MUSIC "), false); break; case _MOUSE: oled_write_P(PSTR("MOUSE "), false); break; default: oled_write_P(PSTR("IDK/? "), false); break; } } bool oled_task_user(void) { if (is_keyboard_master()) { render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) } else { render_logo(); } return false; } #endif //OLED_ENABLE uint8_t mod_state; bool process_record_user(uint16_t keycode, keyrecord_t *record) { static bool isLinux = false; mod_state = get_mods(); switch (keycode) { case QWERTY: if (record->event.pressed) { set_single_persistent_default_layer(_QWERTY); } return false; case LINUX: if (record->event.pressed) { isLinux = !isLinux; } return false; case COPY: if (record->event.pressed) { if (isLinux) { tap_code16(LCTL(KC_C)); } else { tap_code16(LGUI(KC_C)); } return false; } case PASTE: if (record->event.pressed) { if (isLinux) { tap_code16(LCTL(KC_V)); } else { tap_code16(LGUI(KC_V)); } return false; } case CUT: if (record->event.pressed) { if (isLinux) { tap_code16(LCTL(KC_X)); } else { tap_code16(LGUI(KC_X)); } return false; } case UNDO: if (record->event.pressed) { if (isLinux) { tap_code16(LCTL(KC_Z)); } else { tap_code16(LGUI(KC_Z)); } return false; } case REDO: if (record->event.pressed) { if (isLinux) { tap_code16(LCTL(KC_Y)); } else { tap_code16(LSG(KC_Z)); } return false; } case SALL: if (record->event.pressed) { if (isLinux) { tap_code16(LCTL(KC_A)); } else { tap_code16(LGUI(KC_A)); } return false; } case M_PASS1: if (record->event.pressed) { SEND_STRING("P0plarLake!2023"); } return false; case M_PASS2: if (record->event.pressed) { SEND_STRING("CindieVerano!2024"); } return false; case M_PASS3: if (record->event.pressed) { SEND_STRING("1290"); } return false; case M_PASS4: if (record->event.pressed) { SEND_STRING("Thel0ve0fchrist!"); } return false; case SPOTLI: if (record->event.pressed) { tap_code16(LGUI(KC_SPACE)); } return false; } return true; } #ifdef ENCODER_ENABLE bool encoder_update_user(uint8_t index, bool clockwise) { if (index == 0) { // Volume control if (clockwise) { tap_code(KC_VOLU); } else { tap_code(KC_VOLD); } } else if (index == 2) { if(clockwise) { tap_code(KC_PGUP); } else{ tap_code(KC_PGDN); } } else if (index == 3 ) { // Page up/Page down if (clockwise) { tap_code(KC_WH_U); } else { tap_code(KC_WH_D); } } return true; } #endif