1
0
Fork 0

Keyboards/RGBKB/Mün (#13239)

This commit is contained in:
XScorpion2 2021-06-26 00:00:21 -05:00 committed by GitHub
parent f8c01a8e5a
commit 8b059088ba
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
27 changed files with 2049 additions and 0 deletions

View file

@ -0,0 +1,32 @@
/*
* ----------------------------------------------------------------------------
* "THE BEER-WARE LICENSE" (Revision 42):
* <https://github.com/Legonut> wrote this file. As long as you retain this
* notice you can do whatever you want with this stuff. If we meet some day, and
* you think this stuff is worth it, you can buy me a beer in return. David Rauseo
* ----------------------------------------------------------------------------
*/
#pragma once
// No need for the single versions when multi performance isn't a problem =D
#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
#define DISABLE_RGB_MATRIX_SPLASH
#define DISABLE_RGB_MATRIX_SOLID_SPLASH
// 20m timeout (20m * 60s * 1000mil)
// #define RGB_DISABLE_TIMEOUT 1200000
#define RGB_DISABLE_WHEN_USB_SUSPENDED true
#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2
// 224B per layer right now
#define DYNAMIC_KEYMAP_LAYER_COUNT 8
#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 2047
#define VIA_QMK_RGBLIGHT_ENABLE
#define STM32_ONBOARD_EEPROM_SIZE 2048

View file

@ -0,0 +1,252 @@
/*
* ----------------------------------------------------------------------------
* "THE BEER-WARE LICENSE" (Revision 42):
* <https://github.com/Legonut> wrote this file. As long as you retain this
* notice you can do whatever you want with this stuff. If we meet some day, and
* you think this stuff is worth it, you can buy me a beer in return. David Rauseo
* ----------------------------------------------------------------------------
*/
#include QMK_KEYBOARD_H
#include "common_oled.h"
enum keymap_layers {
_QWERTY,
_COLEMAK,
_GAME,
_FN,
_ADJUST,
_VIA1,
_VIA2,
_VIA3
};
enum keymap_keycodes {
// Disables touch processing
TCH_TOG = SAFE_RANGE,
MENU_BTN,
MENU_UP,
MENU_DN
};
// Default Layers
#define QWERTY DF(_QWERTY)
#define COLEMAK DF(_COLEMAK)
#define GAME DF(_GAME)
// Momentary Layers
#define FN MO(_FN)
#define ADJUST MO(_ADJUST)
#define FN_CAPS LT(_FN, KC_CAPS)
#define FN_ESC LT(_FN, KC_ESC)
/* This keyboard is enabled with an RGB Menu Control system.
This functionality is enabled, but still requires a little configuration based on your exact setup.
The RGB Menu will appear on the Right Half's OLED and can be controlled by the MENU keycodes:
MENU_BTN - Triggers a button action for the menu
MENU_UP - Triggers an increase action for the menu
MENU_DN - Triggers a decrease action for the menu
To finish configuration for your board, you will want to change the default keycodes for an encoder on the right half.
Encoder press keycode should be set to MENU_BTN, Clockwise should be MENU_UP, and Counter Clockwise should be MENU_DN.
Depending on where you add an encoder to the right half will determin in the default keymap where you should put those keycodes.
*/
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* QWERTY
* .--------------------------------------------------------------. .--------------------------------------------------------------.
* | `~/ESC | 1 | 2 | 3 | 4 | 5 | - | | = | 6 | 7 | 8 | 9 | 0 | Bckspc |
* |--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
* | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \ |
* |--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
* | FN/Caps| A | S | D | F | G | ( | | ) | H | J | K | L | : | ' |
* |--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
* | Shift | Z | X | C | V | B | { | | } | N | M | , | . | / |Shft/Ent|
* |--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
* | Ctrl | Win | Alt | RGBTOG | Adjust | Space | Bksp | | Enter | Space | Left | Down | Up | Right | Ctrl |
* '--------+--------+--------+--------+--------+--------+--------' '--------+--------+--------+--------+--------+--------+--------'
* Encoder 1 Encoder 2 Encoder 3 Encoder 4
* .-----------------------------------. .-----------------------------------.
* | VolUp | VolDn | VolUp | VolDn | | PgUp | PgDn | PgUp | PgDn |
* |--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------|
* | VolDn | VolUp | Next | Play | Prev | Touch Encoder Touch Encoder | RgbHuI | RgbHuD | RgbMdD | RgbTog | RgbMdI |
* '--------+--------+--------+--------+--------' '--------+--------+--------+--------+--------'
*/
[_QWERTY] = LAYOUT(
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLASH,
FN_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LPRN, KC_RPRN, 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_LCBR, KC_RCBR, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_SFTENT,
KC_LCTL, KC_LGUI, KC_LALT, RGB_TOG, ADJUST, KC_SPC, KC_DEL, KC_ENT, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT,KC_RCTL,
KC_VOLU, KC_VOLD, KC_VOLU, KC_VOLD, KC_PGDN, KC_PGUP, KC_PGDN, KC_PGUP,
KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_MPRV, RGB_HUI, RGB_HUD, RGB_RMOD,RGB_TOG, RGB_MOD
),
[_COLEMAK] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, KC_Q, KC_W, KC_F, KC_P, KC_G, _______, _______, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, _______,
_______, KC_A, KC_R, KC_S, KC_T, KC_D, _______, _______, KC_H, KC_N, KC_E, KC_I, KC_O, _______,
_______, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, _______, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
[_GAME] = LAYOUT(
_______, _______, _______, _______, _______, _______, KC_F1, KC_F5, _______, _______, _______, _______, _______, _______,
_______, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_F2, KC_F6, KC_Y, KC_U, KC_I, KC_O, KC_P, _______,
_______, KC_A, KC_S, KC_D, KC_F, KC_G, KC_F3, KC_F7, KC_H, KC_J, KC_K, KC_L, KC_SCLN, _______,
_______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_F4, KC_F8, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______,
_______, KC_NO, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
[_FN] = LAYOUT(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______,
_______, KC_HOME, KC_UP, KC_END, _______, _______, _______, _______, _______, KC_HOME, KC_UP, KC_END, KC_PSCR, KC_PGUP,
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, KC_PGDN,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, TCH_TOG, _______, _______, _______, _______, _______, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU,
_______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
[_ADJUST] = LAYOUT(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______,
_______, RGB_SAD, RGB_VAI, RGB_SAI, RESET, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______,
_______, RGB_HUD, RGB_VAD, RGB_HUI, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______,
_______, RGB_SPD, _______, RGB_SPI, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, GAME,
_______, RGB_RMOD,_______, RGB_MOD, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_NLCK, QWERTY, COLEMAK,
_______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
[_VIA1] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
[_VIA2] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
[_VIA3] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode)
{
case MENU_BTN:
if (record->event.pressed) {
rgb_menu_selection();
}
return false;
case MENU_UP:
if (record->event.pressed) {
rgb_menu_action(true);
}
return false;
case MENU_DN:
if (record->event.pressed) {
rgb_menu_action(false);
}
return false;
case TCH_TOG:
if (record->event.pressed) {
touch_encoder_toggle();
}
return false; // Skip all further processing of this key
default:
return true;
}
}
static void render_layer(void) {
// Host Keyboard Layer Status
oled_write_P(PSTR("Layer"), false);
switch (get_highest_layer(layer_state)) {
case _QWERTY:
oled_write_ln_P(PSTR("QWRTY"), false);
break;
case _COLEMAK:
oled_write_ln_P(PSTR("Colemk"), false);
break;
case _GAME:
oled_write_ln_P(PSTR("Game "), false);
break;
case _FN:
oled_write_ln_P(PSTR("FN "), false);
break;
case _ADJUST:
oled_write_ln_P(PSTR("Adjst"), false);
break;
default:
oled_write_ln_P(PSTR("Undef"), false);
}
}
static void render_leds(void)
{
// Host Keyboard LED Status
led_t led_state = host_keyboard_led_state();
oled_write_P(led_state.num_lock ? PSTR("NUMLK") : PSTR(" "), false);
oled_write_P(led_state.caps_lock ? PSTR("CAPLK") : PSTR(" "), false);
oled_write_P(led_state.scroll_lock ? PSTR("SCRLK") : PSTR(" "), false);
}
static void render_touch(void)
{
// Host Touch LED Status
oled_write_P(!touch_encoder_toggled() ? PSTR("TOUCH") : PSTR(" "), false);
oled_write_P(touch_encoder_calibrating() ? PSTR("CLBRT") : PSTR(" "), false);
}
void oled_task_user(void) {
if (is_keyboard_left()) {
render_icon();
oled_write_P(PSTR(" "), false);
render_layer();
oled_write_P(PSTR(" "), false);
render_leds();
oled_write_P(PSTR(" "), false);
render_touch();
}
else {
render_icon();
oled_write_P(PSTR(" "), false);
render_rgb_menu();
}
}
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
return OLED_ROTATION_270;
}

View file

@ -0,0 +1 @@
VIA_ENABLE = yes

View file

@ -0,0 +1,42 @@
/*
* ----------------------------------------------------------------------------
* "THE BEER-WARE LICENSE" (Revision 42):
* <https://github.com/Legonut> wrote this file. As long as you retain this
* notice you can do whatever you want with this stuff. If we meet some day, and
* you think this stuff is worth it, you can buy me a beer in return. David Rauseo
* ----------------------------------------------------------------------------
*/
#pragma once
// Xulkal custom stuff
#undef TAPPING_FORCE_HOLD
#undef TAPPING_TERM
#define TAPPING_TERM 175
#define SPACE_CADET_MODIFIER_CARRYOVER
#define LSPO_KEYS KC_LSFT, KC_TRNS, KC_LBRC
#define RSPC_KEYS KC_RSFT, KC_TRNS, KC_RBRC
#define LCPO_KEYS KC_LCTL, KC_TRNS, KC_MINS
#define RCPC_KEYS KC_RCTL, KC_TRNS, KC_EQL
// No need for the single versions when multi performance isn't a problem =D
#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
#define DISABLE_RGB_MATRIX_SPLASH
#define DISABLE_RGB_MATRIX_SOLID_SPLASH
// 20m timeout (20m * 60s * 1000mil)
// #define RGB_DISABLE_TIMEOUT 1200000
#define RGB_DISABLE_WHEN_USB_SUSPENDED true
#define OLED_SCROLL_TIMEOUT 20000
#define ONESHOT_TAP_TOGGLE 2
#define RGB_MATRIX_HUE_STEP 8
#define RGB_MATRIX_SAT_STEP 8
#define RGB_MATRIX_VAL_STEP 8
#define RGB_MATRIX_SPD_STEP 8
#define ENCODER_RESOLUTION 2

View file

@ -0,0 +1,246 @@
/*
* ----------------------------------------------------------------------------
* "THE BEER-WARE LICENSE" (Revision 42):
* <https://github.com/Legonut> wrote this file. As long as you retain this
* notice you can do whatever you want with this stuff. If we meet some day, and
* you think this stuff is worth it, you can buy me a beer in return. David Rauseo
* ----------------------------------------------------------------------------
*/
#include QMK_KEYBOARD_H
#include "common_oled.h"
enum keymap_layers {
_QWERTY,
_FUNCTION,
_ADJUST
};
enum keymap_keycodes {
// Disables touch processing
TCH_TOG = SAFE_RANGE,
MENU_BTN,
MENU_UP,
MENU_DN,
RGB_RST
};
// Default Layers
#define QWERTY DF(_QWERTY)
// Momentary Layers
#define FN OSL(_FUNCTION)
#define ADJ OSL(_ADJUST)
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* QWERTY
* .--------------------------------------------------------------. .--------------------------------------------------------------.
* | `~/ESC | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | Bckspc |
* |--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
* | Tab | Q | W | E | R | T | | | | Y | U | I | O | P | \ |
* |--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
* | Caps | A | S | D | F | G | Play | | MN BTN | H | J | K | L | : | Enter |
* |--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
* | Shft[ | Z | X | C | V | B | { | | } | N | M | , | . | / | Shft] |
* |--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
* | Ctrl- | Win | Alt | Del | Space | | ADJ | | FN | | Space | '" | Alt | App | Ctrl= |
* '--------+--------+--------+--------|--------+--------+--------' '--------+--------+--------+--------+--------+--------+--------'
* Encoder 1 Encoder 2 Encoder 3 Encoder 4
* .-----------------------------------. .-----------------------------------.
* | VolUp | VolDn | VolUp | VolDn | | PgUp | PgDn | PgUp | PgDn |
* |--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------|
* | VolDn | VolUp | Next | Play | Prev | Touch Encoder Touch Encoder | RgbHuI | RgbHuD | RgbMdD | RgbTog | RgbMdI |
* '--------+--------+--------+--------+--------' '--------+--------+--------+--------+--------'
*/
[_QWERTY] = LAYOUT(
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_NO, KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NO, KC_NO, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_MPLY, MENU_BTN,KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LCBR, KC_RCBR, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC,
KC_LCPO, KC_LGUI, KC_LALT, KC_DEL, KC_SPC, KC_NO, ADJ, FN, KC_NO, KC_SPC, KC_QUOTE,KC_RALT, KC_APP, KC_RCPC,
KC_VOLU, KC_VOLD, KC_VOLU, KC_VOLD, MENU_DN, MENU_UP, MENU_DN, MENU_UP,
KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_MPRV, RGB_HUI, RGB_HUD, RGB_RMOD,RGB_TOG, RGB_MOD
),
/* Function
* .--------------------------------------------------------------. .--------------------------------------------------------------.
* | F12 | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
* |--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
* | | SPDI | SAI | VAI | HUI | RGBMD | | | | | | PrtScr | ScrLck | PseBrk | |
* |--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
* | | SPDD | SAD | VAD | HUD | RGBRMD | | | | | | Ins | Home | PgUp | |
* |--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
* | | RGBRST | | | | RGBTOG | | | | | | Del | End | PgDn | |
* |--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
* | | | | | | | | | | | Play | Prev | Next | VolUp | VolDn |
* '--------+--------+--------+--------+--------+--------+--------' '--------+--------+--------+--------+--------+--------+--------'
* Encoder 1 Encoder 2 Encoder 3 Encoder 4
* .-----------------------------------. .-----------------------------------.
* | | | | | | | | | |
* |--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------|
* | | | | | | Touch Encoder Touch Encoder | | | | | |
* '--------+--------+--------+--------+--------' '--------+--------+--------+--------+--------'
*/
[_FUNCTION] = LAYOUT(
KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
_______, RGB_SPI, RGB_SAI, RGB_VAI, RGB_HUI, RGB_MOD, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______,
_______, RGB_SPD, RGB_SAD, RGB_VAD, RGB_HUD, RGB_RMOD,_______, _______, _______, _______, KC_INS, KC_HOME, KC_PGUP, _______,
_______, RGB_RST, _______, _______, _______, RGB_TOG, _______, _______, _______, _______, KC_DEL, KC_END, KC_PGDN, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MPRV, KC_MNXT, KC_VOLU, KC_VOLD,
_______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
/* Adjust
* .--------------------------------------------------------------. .--------------------------------------------------------------.
* | | | | | | | | | | | NumLck | / | * | - | Del |
* |--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
* | | Home | Up | End | Reset | T_TOG | | | | | 7 | 8 | 9 | + | |
* |--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
* | | Left | Down | Right | | | | | | | 4 | 5 | 6 | + | |
* |--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
* | | | | | | EepRst | | | | | 1 | 2 | 3 | Enter | |
* |--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
* | | | | | | | | | | | | 0 | . | Enter | |
* '--------+--------+--------+--------+--------+--------+--------' '--------+--------+--------+--------+--------+--------+--------'
* Encoder 1 Encoder 2 Encoder 3 Encoder 4
* .-----------------------------------. .-----------------------------------.
* | | | | | | | | | |
* |--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------|
* | | | | | | Touch Encoder Touch Encoder | | | | | |
* '--------+--------+--------+--------+--------' '--------+--------+--------+--------+--------'
*/
[_ADJUST] = LAYOUT(
KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, KC_DEL,
_______, KC_HOME, KC_UP, KC_END, RESET, TCH_TOG, _______, _______, _______, KC_KP_7, KC_KP_8, KC_KP_9, KC_PPLS, _______,
_______, KC_LEFT, KC_DOWN, KC_RIGHT,_______, _______, _______, _______, _______, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, _______,
_______, _______, _______, _______, _______, EEP_RST, _______, _______, _______, KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_KP_0, KC_PDOT, KC_PENT, _______,
_______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};
// clang-format on
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode)
{
case MENU_BTN:
if (record->event.pressed) {
rgb_menu_selection();
}
return false;
case MENU_UP:
if (record->event.pressed) {
rgb_menu_action(true);
}
return false;
case MENU_DN:
if (record->event.pressed) {
rgb_menu_action(false);
}
return false;
case RGB_RST:
if (record->event.pressed) {
eeconfig_update_rgb_matrix_default();
}
return false;
case TCH_TOG:
if (record->event.pressed) {
touch_encoder_toggle();
}
return false; // Skip all further processing of this key
default:
return true;
}
}
static void render_layer(void) {
// Host Keyboard Layer Status
oled_write_P(PSTR("Layer"), false);
switch (get_highest_layer(layer_state)) {
case _QWERTY:
oled_write_ln_P(PSTR("BASE "), false);
break;
case _FUNCTION:
oled_write_ln_P(PSTR("FUNC "), false);
break;
case _ADJUST:
oled_write_ln_P(PSTR("ADJS "), false);
break;
}
}
static void render_leds(void)
{
// Host Keyboard LED Status
led_t led_state = host_keyboard_led_state();
oled_write_P(led_state.num_lock ? PSTR("NUMLK") : PSTR(" "), false);
oled_write_P(led_state.caps_lock ? PSTR("CAPLK") : PSTR(" "), false);
oled_write_P(led_state.scroll_lock ? PSTR("SCRLK") : PSTR(" "), false);
}
static void render_touch(void)
{
// Host Touch LED Status
oled_write_P(!touch_encoder_toggled() ? PSTR("TOUCH") : PSTR(" "), false);
oled_write_P(touch_encoder_calibrating() ? PSTR("CLBRT") : PSTR(" "), false);
}
/*static uint32_t scan_counter = 0;
static uint32_t scan_value = 0;
static uint16_t scan_timer = 1000;
void do_counters(void) {
scan_counter++;
uint16_t now = sync_timer_read();
if (timer_expired(now, scan_timer))
{
scan_timer += 1000;
scan_value = (scan_value + scan_counter) / 2;
scan_counter = 0;
}
}
void matrix_scan_user(void) {
do_counters();
}
void matrix_slave_scan_user(void) {
do_counters();
}
void render_debug_scan(void) {
static char buffer[6] = {0};
snprintf(buffer, sizeof(buffer), "%5d", scan_value);
oled_write_ln_P(buffer, false);
}*/
void oled_task_user(void) {
if (is_keyboard_left()) {
render_layer();
oled_write_P(PSTR(" "), false);
render_leds();
oled_write_P(PSTR(" "), false);
render_touch();
//oled_write_P(PSTR(" "), false);
//render_debug_scan();
oled_set_cursor(0, 12);
render_icon();
}
else {
render_rgb_menu();
//oled_write_P(PSTR(" "), false);
//render_debug_scan();
oled_set_cursor(0, 12);
render_icon();
}
}
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
return OLED_ROTATION_270;
}

View file

@ -0,0 +1,4 @@
MOUSEKEY_ENABLE = yes # using for mouse wheel up and down, more granular than page up/down
OPT_DEFS += -DRGB_UNLIMITED_POWER
DEBOUNCE_TYPE = sym_eager_pk