1
0
Fork 0

[Keymap] Drashna's Defaults cleanup (#13722)

This commit is contained in:
Drashna Jael're 2021-07-26 17:59:49 -07:00 committed by GitHub
parent 368efb5d2b
commit eb46c954dc
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
50 changed files with 986 additions and 1389 deletions

View file

@ -57,26 +57,35 @@
# define UNICODE_SONG_BSD SONG(WORKMAN_SOUND)
# define UNICODE_SONG_WINC SONG(PLOVER_GOODBYE_SOUND)
# endif
#endif // !AUDIO_ENABLE
#endif // !AUDIO_ENABLE
#define UNICODE_SELECTED_MODES UC_WIN, UC_MAC
#ifdef RGBLIGHT_ENABLE
# define RGBLIGHT_SLEEP
# undef RGBLIGHT_ANIMATIONS
# if defined(__AVR__) && !defined(__AVR_AT90USB1286__)
# undef RGBLIGHT_ANIMATIONS
# define RGBLIGHT_EFFECT_BREATHING
# define RGBLIGHT_EFFECT_SNAKE
# define RGBLIGHT_EFFECT_KNIGHT
# else
# define RGBLIGHT_ANIMATIONS
# define RGBLIGHT_EFFECT_BREATHING
# define RGBLIGHT_EFFECT_RAINBOW_MOOD
# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
# define RGBLIGHT_EFFECT_SNAKE
# define RGBLIGHT_EFFECT_KNIGHT
// # define RGBLIGHT_EFFECT_CHRISTMAS
// # define RGBLIGHT_EFFECT_STATIC_GRADIENT
// # define RGBLIGHT_EFFECT_RGB_TEST
// # define RGBLIGHT_EFFECT_ALTERNATING
# define RGBLIGHT_EFFECT_TWINKLE
# endif
# define RGBLIGHT_EFFECT_TWINKLE_LIFE 250
# define RGBLIGHT_EFFECT_TWINKLE_PROBABILITY 1 / 24
#endif // RGBLIGHT_ENABLE
#endif // RGBLIGHT_ENABLE
#ifdef RGB_MATRIX_ENABLE
# define RGB_MATRIX_KEYPRESSES // reacts to keypresses (will slow down matrix scan by a lot)
# define RGB_MATRIX_KEYPRESSES // reacts to keypresses (will slow down matrix scan by a lot)
// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (not recommened)
# define RGB_MATRIX_FRAMEBUFFER_EFFECTS
// # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
@ -120,8 +129,8 @@
# define DISABLE_RGB_MATRIX_MULTISPLASH
# define DISABLE_RGB_MATRIX_SOLID_SPLASH
# define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH
# endif // AVR
#endif // RGB_MATRIX_ENABLE
# endif // AVR
#endif // RGB_MATRIX_ENABLE
#ifdef OLED_DRIVER_ENABLE
# ifdef SPLIT_KEYBOARD
@ -148,16 +157,16 @@
#ifndef ONESHOT_TAP_TOGGLE
# define ONESHOT_TAP_TOGGLE 2
#endif // !ONESHOT_TAP_TOGGLE
#endif // !ONESHOT_TAP_TOGGLE
#ifndef ONESHOT_TIMEOUT
# define ONESHOT_TIMEOUT 3000
#endif // !ONESHOT_TIMEOUT
#endif // !ONESHOT_TIMEOUT
#ifdef QMK_KEYS_PER_SCAN
# undef QMK_KEYS_PER_SCAN
# define QMK_KEYS_PER_SCAN 2
#endif // !QMK_KEYS_PER_SCAN
#endif // !QMK_KEYS_PER_SCAN
// this makes it possible to do rolling combos (zx) with keys that
// convert to other keys on hold (z becomes ctrl when you hold it,
@ -167,7 +176,7 @@
#undef PERMISSIVE_HOLD
//#define TAPPING_FORCE_HOLD_PER_KEY
//#define RETRO_TAPPING_PER_KEY
#ifndef KEYBOARD_kyria_rev1
#if !defined(KEYBOARD_kyria) && !defined(KEYBOARD_splitkb_kyria)
# define TAPPING_TERM_PER_KEY
#endif
@ -179,7 +188,7 @@
#ifdef TAPPING_TERM
# undef TAPPING_TERM
#endif // TAPPING_TERM
#endif // TAPPING_TERM
#if defined(KEYBOARD_ergodox_ez)
# define TAPPING_TERM 185
#elif defined(KEYBOARD_crkbd)
@ -293,4 +302,4 @@
# ifndef MOUSEKEY_WHEEL_DECELERATED_MOVEMENTS
# define MOUSEKEY_WHEEL_DECELERATED_MOVEMENTS 8
# endif
#endif // MOUSEKEY_ENABLE
#endif // MOUSEKEY_ENABLE

View file

@ -103,12 +103,12 @@ void shutdown_user(void) {
rgblight_enable_noeeprom();
rgblight_mode_noeeprom(1);
rgblight_setrgb_red();
#endif // RGBLIGHT_ENABLE
#endif // RGBLIGHT_ENABLE
#ifdef RGB_MATRIX_ENABLE
rgb_matrix_set_color_all(0xFF, 0x00, 0x00);
rgb_matrix_update_pwm_buffers();
#endif // RGB_MATRIX_ENABLE
#endif // RGB_MATRIX_ENABLE
shutdown_keymap();
}
@ -124,8 +124,12 @@ void suspend_power_down_user(void) {
__attribute__((weak)) void suspend_wakeup_init_keymap(void) {}
void suspend_wakeup_init_user(void) {
if (layer_state_is(_GAMEPAD)) { layer_off(_GAMEPAD); }
if (layer_state_is(_DIABLO)) { layer_off(_DIABLO); }
if (layer_state_is(_GAMEPAD)) {
layer_off(_GAMEPAD);
}
if (layer_state_is(_DIABLO)) {
layer_off(_DIABLO);
}
suspend_wakeup_init_keymap();
}
@ -142,13 +146,13 @@ void matrix_scan_user(void) {
startup_user();
}
#ifdef TAP_DANCE_ENABLE // Run Diablo 3 macro checking code.
#ifdef TAP_DANCE_ENABLE // Run Diablo 3 macro checking code.
run_diablo_macro_check();
#endif // TAP_DANCE_ENABLE
#endif // TAP_DANCE_ENABLE
#if defined(RGBLIGHT_ENABLE)
matrix_scan_rgb_light();
#endif // RGBLIGHT_ENABLE
#endif // RGBLIGHT_ENABLE
#if defined(RGB_MATRIX_ENABLE)
matrix_scan_rgb_matrix();
#endif
@ -167,13 +171,15 @@ __attribute__((weak)) layer_state_t layer_state_set_keymap(layer_state_t state)
// on layer change, no matter where the change was initiated
// Then runs keymap's layer change check
layer_state_t layer_state_set_user(layer_state_t state) {
if (!is_keyboard_master()) { return state; }
if (!is_keyboard_master()) {
return state;
}
state = layer_state_set_keymap(state);
state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST);
#if defined(RGBLIGHT_ENABLE)
state = layer_state_set_rgb_light(state);
#endif // RGBLIGHT_ENABLE
#endif // RGBLIGHT_ENABLE
#if defined(AUDIO_ENABLE) && !defined(__arm__)
static bool is_gamepad_on = false;
if (layer_state_cmp(state, _GAMEPAD) != is_gamepad_on) {
@ -192,13 +198,15 @@ __attribute__((weak)) layer_state_t default_layer_state_set_keymap(layer_state_t
// Runs state check and changes underglow color and animation
layer_state_t default_layer_state_set_user(layer_state_t state) {
if (!is_keyboard_master()) { return state; }
if (!is_keyboard_master()) {
return state;
}
state = default_layer_state_set_keymap(state);
#if 0
# if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE)
state = default_layer_state_set_rgb(state);
# endif // RGBLIGHT_ENABLE
# endif // RGBLIGHT_ENABLE
#endif
return state;
}

View file

@ -22,7 +22,7 @@
#include "process_records.h"
#ifdef TAP_DANCE_ENABLE
# include "tap_dances.h"
#endif // TAP_DANCE_ENABLE
#endif // TAP_DANCE_ENABLE
#if defined(RGBLIGHT_ENABLE)
# include "rgb_stuff.h"
#endif
@ -41,25 +41,44 @@
/* Define layer names */
enum userspace_layers {
_QWERTY = 0,
_NUMLOCK = 0,
_QWERTY = 0,
_NUMLOCK = 0,
FIRST_DEFAULT_LAYER = 0,
_COLEMAK_DH,
_COLEMAK,
_DVORAK,
_WORKMAN,
_NORMAN,
_MALTRON,
_EUCALYN,
_CARPLAX,
LAST_DEFAULT_LAYER = _DVORAK,
_GAMEPAD,
_DIABLO,
_MACROS,
_MOUSE,
_MEDIA,
_LOWER,
_RAISE,
_ADJUST,
};
#define _MOUSE _MACROS
#define _MACROS _MOUSE
#define _DEFAULT_LAYER_1 FIRST_DEFAULT_LAYER
#define _DEFAULT_LAYER_2 (FIRST_DEFAULT_LAYER + 1)
#define _DEFAULT_LAYER_3 (FIRST_DEFAULT_LAYER + 2)
#define _DEFAULT_LAYER_4 (FIRST_DEFAULT_LAYER + 3)
#if LAST_DEFAULT_LAYER > (FIRST_DEFAULT_LAYER + 3)
# define _DEFAULT_LAYER_2 (FIRST_DEFAULT_LAYER + 4)
# define _DEFAULT_LAYER_3 (FIRST_DEFAULT_LAYER + 5)
# define _DEFAULT_LAYER_4 (FIRST_DEFAULT_LAYER + 6)
# define _DEFAULT_LAYER_2 (FIRST_DEFAULT_LAYER + 7)
# if LAST_DEFAULT_LAYER > (FIRST_DEFAULT_LAYER + 7)
# define _DEFAULT_LAYER_2 (FIRST_DEFAULT_LAYER + 8)
# define _DEFAULT_LAYER_3 (FIRST_DEFAULT_LAYER + 9)
# define _DEFAULT_LAYER_4 (FIRST_DEFAULT_LAYER + 10)
# define _DEFAULT_LAYER_4 (FIRST_DEFAULT_LAYER + 11)
# endif
#endif
#define DEFAULT_LAYER_1_HSV HSV_CYAN
#define DEFAULT_LAYER_2_HSV HSV_SPRINGGREEN
#define DEFAULT_LAYER_3_HSV HSV_MAGENTA
#define DEFAULT_LAYER_4_HSV HSV_GOLDENROD
bool mod_key_press_timer(uint16_t code, uint16_t mod_code, bool pressed);
bool mod_key_press(uint16_t code, uint16_t mod_code, bool pressed, uint16_t this_timer);
@ -101,12 +120,12 @@ We use custom codes here, so we can substitute the right stuff
# define KC_D3_2 TD(TD_D3_2)
# define KC_D3_3 TD(TD_D3_3)
# define KC_D3_4 TD(TD_D3_4)
#else // TAP_DANCE_ENABLE
#else // TAP_DANCE_ENABLE
# define KC_D3_1 KC_1
# define KC_D3_2 KC_2
# define KC_D3_3 KC_3
# define KC_D3_4 KC_4
#endif // TAP_DANCE_ENABLE
#endif // TAP_DANCE_ENABLE
#if defined(DRASHNA_CUSTOM_TRANSPORT) && defined(POINTING_DEVICE_ENABLE)
void master_mouse_send(int8_t x, int8_t y);

View file

@ -3,7 +3,10 @@
// additional fonts from
// https://github.com/datacute/TinyOLED-Fonts
#include "progmem.h"
#if __has_include("../../../../Documents/qmk/oled_font.h")
# include "../../../../Documents/qmk/oled_font.h"
#else
# include "progmem.h"
// clang-format off
static const unsigned char font[] PROGMEM = {
@ -39,7 +42,7 @@ static const unsigned char font[] PROGMEM = {
0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, // 0x1D 29 ↭
0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, // 0x1E 30
0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, // 0x1F 31
#if defined(OLED_FONT_5X5)
# if defined(OLED_FONT_5X5)
0x00,0x00,0x00,0x00,0x00,0x00, // 0x20 32
0x5c,0x00,0x00,0x00,0x00,0x00, // 0x21 33 !
0x06,0x00,0x06,0x00,0x00,0x00, // 0x22 34 "
@ -136,7 +139,7 @@ static const unsigned char font[] PROGMEM = {
0x44,0x7c,0x10,0x00,0x00,0x00, // 0x7D 125 }
0x02,0x01,0x02,0x01,0x00,0x00, // 0x7E 126 ~
0x00,0x00,0x00,0x00,0x00,0x00, // 0x7F 127
#elif defined(OLED_FONT_AZTECH)
# lif defined(OLED_FONT_AZTECH)
0x00,0x00,0x00,0x00,0x00,0x00, // 0x20 32
0x00,0x2e,0x00,0x00,0x00,0x00, // 0x21 33 !
0x00,0x02,0x00,0x02,0x00,0x00, // 0x22 34 "
@ -233,7 +236,7 @@ static const unsigned char font[] PROGMEM = {
0x22,0x3e,0x08,0x00,0x00,0x00, // 0x7D 125 }
0x00,0x00,0x00,0x00,0x00,0x00, // 0x7E 126 ~
0x00,0x00,0x00,0x00,0x00,0x00, // 0x7F 127
#elif defined(OLED_FONT_BMPLAIN)
# elif defined(OLED_FONT_BMPLAIN)
0x00,0x00,0x00,0x00,0x00,0x00, // 0x20 32
0x2e,0x00,0x00,0x00,0x00,0x00, // 0x21 33 !
0x03,0x00,0x03,0x00,0x00,0x00, // 0x22 34 "
@ -330,7 +333,7 @@ static const unsigned char font[] PROGMEM = {
0x22,0x3e,0x08,0x00,0x00,0x00, // 0x7D 125 }
0x01,0x01,0x01,0x00,0x00,0x00, // 0x7E 126 ~
0x00,0x00,0x00,0x00,0x00,0x00, // 0x7F 127
#elif defined(OLED_FONT_SUPER_DIGG)
# elif defined(OLED_FONT_SUPER_DIGG)
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x20 32
0x58, 0x5C, 0x00, 0x00, 0x00, 0x00, // 0x21 33 !
0x00, 0x01, 0x00, 0x00, 0x01, 0x00, // 0x22 34 "
@ -427,7 +430,7 @@ static const unsigned char font[] PROGMEM = {
0xC2, 0xFE, 0x10, 0x00, 0x00, 0x00, // 0x7D 125 }
0x02, 0x01, 0x03, 0x04, 0x06, 0x02, // 0x7E 126 ~
0x3C, 0x22, 0x21, 0x22, 0x3C, 0x00, // 0x7F 127
#else // default font
# else // default font
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x20 32
0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, // 0x21 33 !
0x00, 0x07, 0x00, 0x07, 0x00, 0x00, // 0x22 34 "
@ -524,9 +527,9 @@ static const unsigned char font[] PROGMEM = {
0x00, 0x41, 0x36, 0x08, 0x00, 0x00, // 0x7D 125 }
0x02, 0x01, 0x02, 0x04, 0x02, 0x00, // 0x7E 126 ~
0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, // 0x7F 127
#endif
# endif
#if defined(OLED_LOGO_GMK_BAD)
# if defined(OLED_LOGO_GMK_BAD)
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x80
0x80, 0xC0, 0xE0, 0xF0, 0xF0, 0x70, // 0x81
0x38, 0x38, 0x38, 0x78, 0x70, 0xF0, // 0x82
@ -655,7 +658,7 @@ static const unsigned char font[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
#elif defined(OLED_LOGO_HUE_MANITEE)
# elif defined(OLED_LOGO_HUE_MANITEE)
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x80
0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0,
0x90, 0x70, 0xE8, 0xA8, 0xE4, 0xC4,
@ -784,7 +787,7 @@ static const unsigned char font[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
#elif defined(OLED_LOGO_CORNE)
# elif defined(OLED_LOGO_CORNE)
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x80
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0,
@ -914,7 +917,7 @@ static const unsigned char font[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
#elif defined(OLED_LOGO_GOTHAM) // see /keyboards/crkbd/keymaps/gotham/oled.c
# elif defined(OLED_LOGO_GOTHAM) // see /keyboards/crkbd/keymaps/gotham/oled.c
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x80
0x00, 0x00, 0xC0, 0x60, 0x30, 0x18,
0xF8, 0x18, 0x00, 0xC0, 0x70, 0x1C,
@ -1043,137 +1046,7 @@ static const unsigned char font[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
#elif defined(OLED_LOGO_SCIFI)
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
0x80, 0x80, 0xC0, 0xC0, 0xE0, 0x60,
0x70, 0x30, 0x38, 0x18, 0x0C, 0x0C,
0x1E, 0x0C, 0x80, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
0xC0, 0xE0, 0xF0, 0x38, 0x1C, 0x0E,
0x07, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
0x80, 0x80, 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,
0x00, 0x00, 0x80, 0x40, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x80, 0x80, 0x80, 0x00,
0x00, 0x00, 0x00, 0x80, 0x80, 0xC0,
0xC0, 0x60, 0x60, 0x30, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC,
0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00,
0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E,
0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00,
0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B,
0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00,
0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE,
0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
0x30, 0x30, 0x70, 0x78, 0x78, 0x7C,
0x7C, 0x7E, 0x3E, 0x3F, 0x3F, 0x3B,
0x3B, 0x39, 0x39, 0x38, 0x38, 0x38,
0x38, 0x38, 0x38, 0x38, 0x3C, 0x38,
0x18, 0x8F, 0xDF, 0xF8, 0x7C, 0xBE,
0xDF, 0xF7, 0xFB, 0xFD, 0xFE, 0xEF,
0x73, 0x3B, 0x1B, 0x1F, 0xEF, 0xF7,
0xFF, 0x7E, 0x6F, 0x6F, 0x6F, 0x6F,
0x6D, 0xBD, 0xE1, 0xF9, 0x3F, 0x3F,
0x39, 0x79, 0x79, 0x7D, 0xED, 0xED,
0xCD, 0xC7, 0xC7, 0x87, 0xC7, 0xE3,
0xE0, 0xF8, 0x7E, 0x3F, 0x37, 0x33,
0x3B, 0x1B, 0x19, 0x19, 0x0D, 0xED,
0xFF, 0xBF, 0xC7, 0xE7, 0xE3, 0xF0,
0x7C, 0xDE, 0xE7, 0xFB, 0x3E, 0x3F,
0xFC, 0xE0, 0xF8, 0x3E, 0xCF, 0xF3,
0xFC, 0x3F, 0x1F, 0x1F, 0x3C, 0x7E,
0x76, 0xF3, 0xE3, 0x81, 0x01, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F,
0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00,
0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F,
0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00,
0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20,
0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00,
0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F,
0x0F, 0x7F, 0x0F, 0x00, 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, 0x20, 0x30, 0x18, 0x1E,
0x0F, 0x03, 0x01, 0x00, 0x00, 0x00,
0x01, 0x03, 0x03, 0x01, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x03, 0x07, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x01, 0xE1, 0x79, 0x3E, 0x1F,
0x07, 0x01, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
0x01, 0x00, 0x00, 0x01, 0x01, 0x01,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x01, 0x01, 0x03,
0x02, 0x06, 0x04, 0x08, 0x18, 0x10,
0x30, 0x20, 0x60, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x1C, 0x1C, 0x3E, 0x7F, 0x7F,
0x00, 0x14, 0x08, 0x14, 0x00, 0x00,
0x00, 0x1C, 0x1C, 0x3E, 0x7F, 0x7F,
0x00, 0x22, 0x1C, 0x41, 0x3E, 0x00,
0x00, 0x00, 0x00, 0x30, 0x18, 0x0C,
0x06, 0x0C, 0x18, 0x30, 0x00, 0x00,
0x00, 0x00, 0x06, 0x06, 0x06, 0x0C,
0x18, 0x30, 0x66, 0x66, 0x66, 0x00,
0x00, 0x00, 0x00, 0x08, 0x0C, 0x7E,
0x7F, 0x7E, 0x0C, 0x08, 0x00, 0x00,
0x00, 0x00, 0x77, 0x77, 0x77, 0x00,
0x77, 0x77, 0x77, 0x00, 0x00, 0x00,
0x00, 0x00, 0xE7, 0xA5, 0xFF, 0x24,
0x24, 0xFF, 0xA5, 0xE7, 0x00, 0x00,
0x00, 0x00, 0x1C, 0x22, 0xC9, 0xD1,
0xC9, 0x22, 0x1C, 0x00, 0x00, 0x00,
0x00, 0x10, 0x02, 0x38, 0xFC, 0xED,
0xFC, 0x38, 0x02, 0x10, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3E, 0x4A, 0x4F,
0x4A, 0x3E, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x40, 0x60, 0x6A, 0x64,
0x6A, 0x60, 0x40, 0x00, 0x00, 0x00,
0x00, 0x04, 0x42, 0x69, 0x65, 0x65,
0x65, 0x69, 0x42, 0x04, 0x00, 0x00,
0x00, 0x00, 0x1C, 0x14, 0x1C, 0x08,
0x18, 0x08, 0x18, 0x00, 0x00, 0x00,
0x00, 0x70, 0xC8, 0xEE, 0xF9, 0x70,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00
#else
# else
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x80
0x40, 0x40, 0x40, 0xF0, 0xF8, 0xF8,
0xFF, 0x38, 0xFF, 0xF8, 0xF8, 0x3F,
@ -1303,7 +1176,7 @@ static const unsigned char font[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
#endif
# endif
};
// clang-format on
#endif

View file

@ -25,7 +25,7 @@
#endif
uint32_t oled_timer = 0;
static char keylog_str[KEYLOGGER_LENGTH + 1] = { 0 };
static char keylog_str[KEYLOGGER_LENGTH + 1] = {0};
static uint16_t log_timer = 0;
// clang-format off
@ -58,7 +58,7 @@ void add_keylog(uint16_t keycode) {
}
for (uint8_t i = 1; i < KEYLOGGER_LENGTH; i++) {
keylog_str[i-1] = keylog_str[i];
keylog_str[i - 1] = keylog_str[i];
}
if (keycode < (sizeof(code_to_name) / sizeof(char))) {
@ -92,14 +92,18 @@ void render_keylogger_status(void) {
void render_default_layer_state(void) {
oled_write_P(PSTR(OLED_RENDER_LAYOUT_NAME), false);
switch (get_highest_layer(default_layer_state)) {
case _QWERTY: oled_write_P(PSTR(OLED_RENDER_LAYOUT_QWERTY), false); break;
case _COLEMAK: oled_write_P(PSTR(OLED_RENDER_LAYOUT_COLEMAK), false); break;
case _DVORAK: oled_write_P(PSTR(OLED_RENDER_LAYOUT_DVORAK), false); break;
case _WORKMAN: oled_write_P(PSTR(OLED_RENDER_LAYOUT_WORKMAN), false); break;
case _NORMAN: oled_write_P(PSTR(OLED_RENDER_LAYOUT_NORMAN), false); break;
case _MALTRON: oled_write_P(PSTR(OLED_RENDER_LAYOUT_MALTRON), false); break;
case _EUCALYN: oled_write_P(PSTR(OLED_RENDER_LAYOUT_EUCALYN), false); break;
case _CARPLAX: oled_write_P(PSTR(OLED_RENDER_LAYOUT_CARPLAX), false); break;
case _QWERTY:
oled_write_P(PSTR(OLED_RENDER_LAYOUT_QWERTY), false);
break;
case _COLEMAK_DH:
oled_write_P(PSTR(OLED_RENDER_LAYOUT_COLEMAK_DH), false);
break;
case _COLEMAK:
oled_write_P(PSTR(OLED_RENDER_LAYOUT_COLEMAK), false);
break;
case _DVORAK:
oled_write_P(PSTR(OLED_RENDER_LAYOUT_DVORAK), false);
break;
}
#ifdef OLED_DISPLAY_128X64
oled_advance_page(true);
@ -336,8 +340,8 @@ void render_status_secondary(void) {
render_default_layer_state();
render_layer_state();
render_mod_status(get_mods() | get_oneshot_mods());
// render_keylogger_status();
render_keylock_status(host_keyboard_leds());
// render_keylock_status(host_keyboard_leds());
}
void render_status_main(void) {
@ -360,7 +364,7 @@ void render_status_main(void) {
render_bootmagic_status();
render_user_status();
render_keylogger_status();
// render_keylogger_status();
}
__attribute__((weak)) oled_rotation_t oled_init_keymap(oled_rotation_t rotation) { return rotation; }
@ -382,8 +386,15 @@ void oled_task_user(void) {
} else {
oled_on();
}
render_status_main(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
}
if (is_keyboard_left()) {
render_status_main(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
} else {
render_status_secondary();
}
if (is_keyboard_master()) {
render_keylogger_status();
} else {
render_keylock_status(host_keyboard_leds());
}
}

View file

@ -29,6 +29,7 @@ extern uint32_t oled_timer;
# define OLED_RENDER_LAYOUT_NAME "Layout: "
# define OLED_RENDER_LAYOUT_QWERTY "Qwerty"
# define OLED_RENDER_LAYOUT_COLEMAK_DH "Colemak-DH"
# define OLED_RENDER_LAYOUT_COLEMAK "Colemak"
# define OLED_RENDER_LAYOUT_DVORAK "Dvorak"
# define OLED_RENDER_LAYOUT_WORKMAN "Workman"
@ -73,6 +74,7 @@ extern uint32_t oled_timer;
# define OLED_RENDER_LAYOUT_NAME "Lyout"
# define OLED_RENDER_LAYOUT_QWERTY " QRTY"
# define OLED_RENDER_LAYOUT_COLEMAK_DH " cmDH"
# define OLED_RENDER_LAYOUT_COLEMAK " COLE"
# define OLED_RENDER_LAYOUT_DVORAK " DVRK"
# define OLED_RENDER_LAYOUT_WORKMAN " WKMN"

View file

@ -29,10 +29,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
// If console is enabled, it will print the matrix position and status of each key pressed
#ifdef KEYLOGGER_ENABLE
uprintf("KL: kc: 0x%04X, col: %2u, row: %2u, pressed: %b, time: %5u, int: %b, count: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed, record->event.time, record->tap.interrupted, record->tap.count);
#endif // KEYLOGGER_ENABLE
#endif // KEYLOGGER_ENABLE
#ifdef OLED_DRIVER_ENABLE
process_record_user_oled(keycode, record);
#endif // OLED
#endif // OLED
if (!(process_record_keymap(keycode, record) && process_record_secrets(keycode, record)
#ifdef RGB_MATRIX_ENABLE
@ -46,20 +46,25 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
switch (keycode) {
case KC_QWERTY ... KC_WORKMAN:
case FIRST_DEFAULT_LAYER_KEYCODE ... LAST_DEFAULT_LAYER_KEYCODE:
if (record->event.pressed) {
uint8_t mods = mod_config(get_mods() | get_oneshot_mods());
if (!mods) {
set_single_persistent_default_layer(keycode - KC_QWERTY);
set_single_persistent_default_layer(keycode - FIRST_DEFAULT_LAYER_KEYCODE);
#if LAST_DEFAULT_LAYER_KEYCODE > (FIRST_DEFAULT_LAYER_KEYCODE + 3)
} else if (mods & MOD_MASK_SHIFT) {
set_single_persistent_default_layer(keycode - KC_QWERTY + 4);
set_single_persistent_default_layer(keycode - FIRST_DEFAULT_LAYER_KEYCODE + 4);
# if LAST_DEFAULT_LAYER_KEYCODE > (FIRST_DEFAULT_LAYER_KEYCODE + 7)
} else if (mods & MOD_MASK_CTRL) {
set_single_persistent_default_layer(keycode - KC_QWERTY + 8);
set_single_persistent_default_layer(keycode - FIRST_DEFAULT_LAYER_KEYCODE + 8);
# endif
#endif
}
}
break;
case KC_MAKE: // Compiles the firmware, and adds the flash command based on keyboard bootloader
case KC_MAKE: // Compiles the firmware, and adds the flash command based on keyboard bootloader
if (!record->event.pressed) {
#ifndef MAKE_BOOTLOADER
uint8_t temp_mod = mod_config(get_mods());
@ -79,55 +84,63 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
#endif
}
send_string_with_delay_P(PSTR("-kb " QMK_KEYBOARD " -km " QMK_KEYMAP), TAP_CODE_DELAY);
#ifdef RGB_MATRIX_SPLIT_RIGHT
send_string_with_delay_P(PSTR(" RGB_MATRIX_SPLIT_RIGHT=yes"), TAP_CODE_DELAY);
# ifndef OLED_DRIVER_ENABLE
send_string_with_delay_P(PSTR(" OLED_DRIVER_ENABLE=no"), TAP_CODE_DELAY);
# endif
#ifdef CONVERT_TO_PROTON_C
send_string_with_delay_P(PSTR(" -e CTPC=yes"), TAP_CODE_DELAY);
#endif
send_string_with_delay_P(PSTR(SS_TAP(X_ENTER)), TAP_CODE_DELAY);
}
break;
case VRSN: // Prints firmware version
if (record->event.pressed) { send_string_with_delay_P(PSTR(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION ", Built on: " QMK_BUILDDATE), TAP_CODE_DELAY); }
case VRSN: // Prints firmware version
if (record->event.pressed) {
send_string_with_delay_P(PSTR(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION ", Built on: " QMK_BUILDDATE), TAP_CODE_DELAY);
}
break;
case KC_DIABLO_CLEAR: // reset all Diablo timers, disabling them
case KC_DIABLO_CLEAR: // reset all Diablo timers, disabling them
#ifdef TAP_DANCE_ENABLE
if (record->event.pressed) {
for (uint8_t index = 0; index < 4; index++) { diablo_timer[index].key_interval = 0; }
for (uint8_t index = 0; index < 4; index++) {
diablo_timer[index].key_interval = 0;
}
}
#endif // TAP_DANCE_ENABLE
#endif // TAP_DANCE_ENABLE
break;
case KC_CCCV: // One key copy/paste
case KC_CCCV: // One key copy/paste
if (record->event.pressed) {
copy_paste_timer = timer_read();
} else {
if (timer_elapsed(copy_paste_timer) > TAPPING_TERM) { // Hold, copy
if (timer_elapsed(copy_paste_timer) > TAPPING_TERM) { // Hold, copy
tap_code16(LCTL(KC_C));
} else { // Tap, paste
} else { // Tap, paste
tap_code16(LCTL(KC_V));
}
}
break;
#ifdef UNICODE_ENABLE
case UC_FLIP: // (ノಠ痊ಠ)ノ彡┻━┻
if (record->event.pressed) { send_unicode_string("(ノಠ痊ಠ)ノ彡┻━┻"); }
case UC_FLIP: // (ノಠ痊ಠ)ノ彡┻━┻
if (record->event.pressed) {
send_unicode_string("(ノಠ痊ಠ)ノ彡┻━┻");
}
break;
case UC_TABL: // ┬─┬ノ( º _ ºノ)
if (record->event.pressed) { send_unicode_string("┬─┬ノ( º _ ºノ)"); }
case UC_TABL: // ┬─┬ノ( º _ ºノ)
if (record->event.pressed) {
send_unicode_string("┬─┬ノ( º _ ºノ)");
}
break;
case UC_SHRG: // ¯\_(ツ)_/¯
if (record->event.pressed) { send_unicode_string("¯\\_(ツ)_/¯"); }
case UC_SHRG: // ¯\_(ツ)_/¯
if (record->event.pressed) {
send_unicode_string("¯\\_(ツ)_/¯");
}
break;
case UC_DISA: // ಠ_ಠ
if (record->event.pressed) { send_unicode_string("ಠ_ಠ"); }
case UC_DISA: // ಠ_ಠ
if (record->event.pressed) {
send_unicode_string("ಠ_ಠ");
}
break;
#endif
case KC_RGB_T: // This allows me to use underglow as layer indication, or as normal
case KC_RGB_T: // This allows me to use underglow as layer indication, or as normal
#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE)
if (record->event.pressed) {
userspace_config.rgb_layer_change ^= 1;
@ -137,14 +150,14 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
# if defined(RGBLIGHT_ENABLE) && defined(RGB_MATRIX_ENABLE)
rgblight_enable_noeeprom();
# endif
layer_state_set(layer_state); // This is needed to immediately set the layer color (looks better)
layer_state_set(layer_state); // This is needed to immediately set the layer color (looks better)
# if defined(RGBLIGHT_ENABLE) && defined(RGB_MATRIX_ENABLE)
} else {
rgblight_disable_noeeprom();
# endif
}
}
#endif // RGBLIGHT_ENABLE
#endif // RGBLIGHT_ENABLE
break;
#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE)
@ -164,7 +177,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
return false;
break;
case RGB_MODE_FORWARD ... RGB_MODE_GRADIENT: // quantum_keycodes.h L400 for definitions
case RGB_MODE_FORWARD ... RGB_MODE_GRADIENT: // quantum_keycodes.h L400 for definitions
if (record->event.pressed) {
bool is_eeprom_updated;
# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES)
@ -182,7 +195,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
is_eeprom_updated = true;
}
# endif
if (is_eeprom_updated) { eeconfig_update_user(userspace_config.raw); }
if (is_eeprom_updated) {
eeconfig_update_user(userspace_config.raw);
}
}
#endif
}

View file

@ -24,51 +24,70 @@
#endif
enum userspace_custom_keycodes {
VRSN = PLACEHOLDER_SAFE_RANGE, // Prints QMK Firmware and board info
KC_QWERTY, // Sets default layer to QWERTY
KC_COLEMAK, // Sets default layer to COLEMAK
KC_DVORAK, // Sets default layer to DVORAK
KC_WORKMAN, // Sets default layer to WORKMAN
KC_DIABLO_CLEAR, // Clears all Diablo Timers
KC_MAKE, // Run keyboard's customized make command
KC_RGB_T, // Toggles RGB Layer Indication mode
RGB_IDL, // RGB Idling animations
KC_SECRET_1, // test1
KC_SECRET_2, // test2
KC_SECRET_3, // test3
KC_SECRET_4, // test4
KC_SECRET_5, // test5
KC_CCCV, // Hold to copy, tap to paste
KC_NUKE, // NUCLEAR LAUNCH DETECTED!!!
UC_FLIP, // (ಠ痊ಠ)┻━┻
UC_TABL, // ┬─┬ノ( º _ ºノ)
UC_SHRG, // ¯\_(ツ)_/¯
UC_DISA, // ಠ_ಠ
NEW_SAFE_RANGE // use "NEWPLACEHOLDER for keymap specific codes
VRSN = PLACEHOLDER_SAFE_RANGE, // Prints QMK Firmware and board info
KC_QWERTY, // Sets default layer to QWERTY
FIRST_DEFAULT_LAYER_KEYCODE = KC_QWERTY, // Sets default layer to QWERTY
KC_COLEMAK_DH, // Sets default layer to COLEMAK
KC_COLEMAK, // Sets default layer to COLEMAK
KC_DVORAK, // Sets default layer to DVORAK
LAST_DEFAULT_LAYER_KEYCODE = KC_DVORAK, // Sets default layer to WORKMAN
KC_DIABLO_CLEAR, // Clears all Diablo Timers
KC_MAKE, // Run keyboard's customized make command
KC_RGB_T, // Toggles RGB Layer Indication mode
RGB_IDL, // RGB Idling animations
KC_SECRET_1, // test1
KC_SECRET_2, // test2
KC_SECRET_3, // test3
KC_SECRET_4, // test4
KC_SECRET_5, // test5
KC_CCCV, // Hold to copy, tap to paste
KC_NUKE, // NUCLEAR LAUNCH DETECTED!!!
UC_FLIP, // (ಠ痊ಠ)┻━┻
UC_TABL, // ┬─┬ノ( º _ ºノ)
UC_SHRG, // ¯\_(ツ)_/¯
UC_DISA, // ಠ_ಠ
NEW_SAFE_RANGE // use "NEWPLACEHOLDER for keymap specific codes
};
bool process_record_secrets(uint16_t keycode, keyrecord_t *record);
bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
#define LOWER MO(_LOWER)
#define RAISE MO(_RAISE)
#define ADJUST MO(_ADJUST)
#define TG_MODS OS_TOGG
#define TG_GAME TG(_GAMEPAD)
#define TG_DBLO TG(_DIABLO)
#define OS_LWR OSL(_LOWER)
#define OS_RSE OSL(_RAISE)
#define LOWER MO(_LOWER)
#define RAISE MO(_RAISE)
#define ADJUST MO(_ADJUST)
#define TG_MODS OS_TOGG
#define TG_GAME TG(_GAMEPAD)
#define TG_DBLO TG(_DIABLO)
#define OS_LWR OSL(_LOWER)
#define OS_RSE OSL(_RAISE)
#define KC_SEC1 KC_SECRET_1
#define KC_SEC2 KC_SECRET_2
#define KC_SEC3 KC_SECRET_3
#define KC_SEC4 KC_SECRET_4
#define KC_SEC5 KC_SECRET_5
#define KC_SEC1 KC_SECRET_1
#define KC_SEC2 KC_SECRET_2
#define KC_SEC3 KC_SECRET_3
#define KC_SEC4 KC_SECRET_4
#define KC_SEC5 KC_SECRET_5
#define QWERTY KC_QWERTY
#define DVORAK KC_DVORAK
#define COLEMAK KC_COLEMAK
#define WORKMAN KC_WORKMAN
#define QWERTY KC_QWERTY
#define DVORAK KC_DVORAK
#define COLEMAK KC_COLEMAK
#define COLEMAKDH KC_COLEMAK_DH
#define DEFLYR1 FIRST_DEFAULT_LAYER_KEYCODE
#define DEFLYR2 (FIRST_DEFAULT_LAYER_KEYCODE + 1)
#define DEFLYR3 (FIRST_DEFAULT_LAYER_KEYCODE + 2)
#define DEFLYR4 (FIRST_DEFAULT_LAYER_KEYCODE + 3)
#if LAST_DEFAULT_LAYER_KEYCODE > (FIRST_DEFAULT_LAYER_KEYCODE + 3)
# define DEFLYR5 (FIRST_DEFAULT_LAYER_KEYCODE + 4)
# define DEFLYR6 (FIRST_DEFAULT_LAYER_KEYCODE + 5)
# define DEFLYR7 (FIRST_DEFAULT_LAYER_KEYCODE + 6)
# define DEFLYR8 (FIRST_DEFAULT_LAYER_KEYCODE + 7)
# if LAST_DEFAULT_LAYER_KEYCODE > (FIRST_DEFAULT_LAYER_KEYCODE + 7)
# define DEFLYR9 (FIRST_DEFAULT_LAYER_KEYCODE + 8)
# define DEFLYR10 (FIRST_DEFAULT_LAYER_KEYCODE + 9)
# define DEFLYR11 (FIRST_DEFAULT_LAYER_KEYCODE + 10)
# define DEFLYR12 (FIRST_DEFAULT_LAYER_KEYCODE + 11)
# endif
#endif
#define KC_RESET RESET
#define KC_RST KC_RESET
@ -77,9 +96,9 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
# define KC_C1R3 SH_T(KC_TAB)
#elif defined(DRASHNA_LP)
# define KC_C1R3 TG(_GAMEPAD)
#else // SWAP_HANDS_ENABLE
#else // SWAP_HANDS_ENABLE
# define KC_C1R3 KC_TAB
#endif // SWAP_HANDS_ENABLE
#endif // SWAP_HANDS_ENABLE
#define BK_LWER LT(_LOWER, KC_BSPC)
#define SP_LWER LT(_LOWER, KC_SPC)

View file

@ -28,24 +28,30 @@ static uint32_t hypno_timer;
void rgb_matrix_layer_helper(uint8_t hue, uint8_t sat, uint8_t val, uint8_t mode, uint8_t speed, uint8_t led_type, uint8_t led_min, uint8_t led_max) {
HSV hsv = {hue, sat, val};
if (hsv.v > rgb_matrix_get_val()) { hsv.v = rgb_matrix_get_val(); }
if (hsv.v > rgb_matrix_get_val()) {
hsv.v = rgb_matrix_get_val();
}
switch (mode) {
case 1: // breathing
case 1: // breathing
{
uint16_t time = scale16by8(g_rgb_timer, speed / 8);
hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v);
RGB rgb = hsv_to_rgb(hsv);
for (uint8_t i = 0; i < DRIVER_LED_TOTAL; i++) {
if (HAS_FLAGS(g_led_config.flags[i], led_type)) { RGB_MATRIX_INDICATOR_SET_COLOR(i, rgb.r, rgb.g, rgb.b); }
if (HAS_FLAGS(g_led_config.flags[i], led_type)) {
RGB_MATRIX_INDICATOR_SET_COLOR(i, rgb.r, rgb.g, rgb.b);
}
}
break;
}
default: // Solid Color
default: // Solid Color
{
RGB rgb = hsv_to_rgb(hsv);
for (uint8_t i = 0; i < DRIVER_LED_TOTAL; i++) {
if (HAS_FLAGS(g_led_config.flags[i], led_type)) { RGB_MATRIX_INDICATOR_SET_COLOR(i, rgb.r, rgb.g, rgb.b); }
if (HAS_FLAGS(g_led_config.flags[i], led_type)) {
RGB_MATRIX_INDICATOR_SET_COLOR(i, rgb.r, rgb.g, rgb.b);
}
}
break;
}
@ -56,30 +62,38 @@ __attribute__((weak)) void rgb_matrix_indicator_keymap(void) {}
void matrix_scan_rgb_matrix(void) {
#if defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS)
if (userspace_config.rgb_matrix_idle_anim && rgb_matrix_get_mode() == RGB_MATRIX_TYPING_HEATMAP && sync_timer_elapsed32(hypno_timer) > 15000) { rgb_matrix_mode_noeeprom(RGB_MATRIX_REST_MODE); }
if (userspace_config.rgb_matrix_idle_anim && rgb_matrix_get_mode() == RGB_MATRIX_TYPING_HEATMAP && sync_timer_elapsed32(hypno_timer) > 15000) {
rgb_matrix_mode_noeeprom(RGB_MATRIX_REST_MODE);
}
#endif
rgb_matrix_indicator_keymap();
}
void keyboard_post_init_rgb_matrix(void) {
#if defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS)
if (userspace_config.rgb_matrix_idle_anim) { rgb_matrix_mode_noeeprom(RGB_MATRIX_REST_MODE); }
if (userspace_config.rgb_matrix_idle_anim) {
rgb_matrix_mode_noeeprom(RGB_MATRIX_REST_MODE);
}
#endif
}
bool process_record_user_rgb_matrix(uint16_t keycode, keyrecord_t *record) {
#if defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS)
hypno_timer = sync_timer_read32();
if (userspace_config.rgb_matrix_idle_anim && rgb_matrix_get_mode() == RGB_MATRIX_REST_MODE) { rgb_matrix_mode_noeeprom(RGB_MATRIX_TYPING_HEATMAP); }
if (userspace_config.rgb_matrix_idle_anim && rgb_matrix_get_mode() == RGB_MATRIX_REST_MODE) {
rgb_matrix_mode_noeeprom(RGB_MATRIX_TYPING_HEATMAP);
}
#endif
switch (keycode) {
case RGB_IDL: // This allows me to use underglow as layer indication, or as normal
case RGB_IDL: // This allows me to use underglow as layer indication, or as normal
#if defined(RGB_MATRIX_ENABLE) && defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS)
if (record->event.pressed) {
userspace_config.rgb_matrix_idle_anim ^= 1;
dprintf("RGB Matrix Idle Animation [EEPROM]: %u\n", userspace_config.rgb_matrix_idle_anim);
eeconfig_update_user(userspace_config.raw);
if (userspace_config.rgb_matrix_idle_anim) { rgb_matrix_mode_noeeprom(RGB_MATRIX_TYPING_HEATMAP); }
if (userspace_config.rgb_matrix_idle_anim) {
rgb_matrix_mode_noeeprom(RGB_MATRIX_TYPING_HEATMAP);
}
}
#endif
break;

View file

@ -28,7 +28,7 @@ void rgblight_sethsv_default_helper(uint8_t index) { rgblight_sethsv_at(rgblight
static rgblight_fadeout lights[RGBLED_NUM];
/* Handler for fading/twinkling effect */
void scan_rgblight_fadeout(void) { // Don't effing change this function .... rgblight_sethsv is supppppper intensive
void scan_rgblight_fadeout(void) { // Don't effing change this function .... rgblight_sethsv is supppppper intensive
bool litup = false;
for (uint8_t light_index = 0; light_index < RGBLED_NUM; ++light_index) {
@ -38,15 +38,21 @@ void scan_rgblight_fadeout(void) { // Don't effing change this function .... rgb
if (light->life) {
light->life -= 1;
if (get_highest_layer(layer_state) == 0) { sethsv(light->hue + rand() % 0xF, 255, light->life, (LED_TYPE *)&led[light_index]); }
if (get_highest_layer(layer_state) == 0) {
sethsv(light->hue + rand() % 0xF, 255, light->life, (LED_TYPE *)&led[light_index]);
}
light->timer = sync_timer_read();
} else {
if (light->enabled && get_highest_layer(layer_state) == 0) { rgblight_sethsv_default_helper(light_index); }
if (light->enabled && get_highest_layer(layer_state) == 0) {
rgblight_sethsv_default_helper(light_index);
}
litup = light->enabled = false;
}
}
}
if (litup && get_highest_layer(layer_state) == 0) { rgblight_set(); }
if (litup && get_highest_layer(layer_state) == 0) {
rgblight_set();
}
}
/* Triggers a LED to fade/twinkle.
@ -92,7 +98,9 @@ void start_rgb_light(void) {
bool process_record_user_rgb_light(uint16_t keycode, keyrecord_t *record) {
uint16_t temp_keycode = keycode;
// Filter out the actual keycode from MT and LT keys.
if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) { temp_keycode &= 0xFF; }
if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) {
temp_keycode &= 0xFF;
}
switch (temp_keycode) {
# ifdef RGBLIGHT_TWINKLE
@ -102,9 +110,11 @@ bool process_record_user_rgb_light(uint16_t keycode, keyrecord_t *record) {
case KC_KP_SLASH ... KC_KP_DOT:
case KC_F13 ... KC_F24:
case KC_AUDIO_MUTE ... KC_MEDIA_REWIND:
if (record->event.pressed) { start_rgb_light(); }
if (record->event.pressed) {
start_rgb_light();
}
break;
# endif // RGBLIGHT_TWINKLE
# endif // RGBLIGHT_TWINKLE
}
return true;
}
@ -119,7 +129,9 @@ static uint16_t rgblight_startup_loop_timer;
void keyboard_post_init_rgb_light(void) {
# if defined(RGBLIGHT_STARTUP_ANIMATION)
is_enabled = rgblight_is_enabled();
if (userspace_config.rgb_layer_change) { rgblight_enable_noeeprom(); }
if (userspace_config.rgb_layer_change) {
rgblight_enable_noeeprom();
}
if (rgblight_is_enabled()) {
layer_state_set_rgb_light(layer_state);
old_hue = rgblight_get_hue();
@ -133,7 +145,7 @@ void keyboard_post_init_rgb_light(void) {
void matrix_scan_rgb_light(void) {
# ifdef RGBLIGHT_TWINKLE
scan_rgblight_fadeout();
# endif // RGBLIGHT_ENABLE
# endif // RGBLIGHT_ENABLE
# if defined(RGBLIGHT_STARTUP_ANIMATION)
if (is_rgblight_startup && is_keyboard_master()) {
@ -144,8 +156,12 @@ void matrix_scan_rgb_light(void) {
rgblight_startup_loop_timer = sync_timer_read();
if (counter == 255) {
is_rgblight_startup = false;
if (!is_enabled) { rgblight_disable_noeeprom(); }
if (userspace_config.rgb_layer_change) { layer_state_set_rgb_light(layer_state); }
if (!is_enabled) {
rgblight_disable_noeeprom();
}
if (userspace_config.rgb_layer_change) {
layer_state_set_rgb_light(layer_state);
}
}
}
}
@ -162,26 +178,48 @@ layer_state_t layer_state_set_rgb_light(layer_state_t state) {
# ifdef RGBLIGHT_ENABLE
if (userspace_config.rgb_layer_change) {
switch (get_highest_layer(state | default_layer_state)) {
case _MACROS: // mouse
if (!layer_state_cmp(state, _GAMEPAD) && !layer_state_cmp(state, _DIABLO)) { rgblight_set_hsv_and_mode(HSV_CHARTREUSE, RGBLIGHT_MODE_BREATHING + 3); }
case _MOUSE: // mouse
if (!layer_state_cmp(state, _GAMEPAD) && !layer_state_cmp(state, _DIABLO)) {
# if defined(RGBLIGHT_EFFECT_TWINKLE)
rgblight_set_hsv_and_mode(HSV_CHARTREUSE, RGBLIGHT_MODE_TWINKLE + 5);
# else
rgblight_set_hsv_and_mode(HSV_CHARTREUSE, RGBLIGHT_MODE_BREATHING + 3);
# endif
}
break;
case _MEDIA:
rgblight_set_hsv_and_mode(HSV_CHARTREUSE, RGBLIGHT_MODE_KNIGHT + 1);
break;
case _GAMEPAD:
rgblight_set_hsv_and_mode(HSV_ORANGE, RGBLIGHT_MODE_SNAKE + 2);
break;
case _DIABLO:
rgblight_set_hsv_and_mode(HSV_RED, RGBLIGHT_MODE_BREATHING + 3);
break;
case _RAISE:
rgblight_set_hsv_and_mode(HSV_YELLOW, RGBLIGHT_MODE_BREATHING + 3);
break;
case _LOWER:
rgblight_set_hsv_and_mode(HSV_GREEN, RGBLIGHT_MODE_BREATHING + 3);
break;
case _ADJUST:
rgblight_set_hsv_and_mode(HSV_RED, RGBLIGHT_MODE_KNIGHT + 2);
break;
case _DEFAULT_LAYER_1:
rgblight_set_hsv_and_mode(DEFAULT_LAYER_1_HSV, RGBLIGHT_MODE_STATIC_LIGHT);
break;
case _DEFAULT_LAYER_2:
rgblight_set_hsv_and_mode(DEFAULT_LAYER_2_HSV, RGBLIGHT_MODE_STATIC_LIGHT);
break;
case _DEFAULT_LAYER_3:
rgblight_set_hsv_and_mode(DEFAULT_LAYER_3_HSV, RGBLIGHT_MODE_STATIC_LIGHT);
break;
case _DEFAULT_LAYER_4:
rgblight_set_hsv_and_mode(DEFAULT_LAYER_4_HSV, RGBLIGHT_MODE_STATIC_LIGHT);
break;
case _MEDIA: rgblight_set_hsv_and_mode(HSV_CHARTREUSE, RGBLIGHT_MODE_KNIGHT + 1); break;
case _GAMEPAD: rgblight_set_hsv_and_mode(HSV_ORANGE, RGBLIGHT_MODE_SNAKE + 2); break;
case _DIABLO: rgblight_set_hsv_and_mode(HSV_RED, RGBLIGHT_MODE_BREATHING + 3); break;
case _RAISE: rgblight_set_hsv_and_mode(HSV_YELLOW, RGBLIGHT_MODE_BREATHING + 3); break;
case _LOWER: rgblight_set_hsv_and_mode(HSV_GREEN, RGBLIGHT_MODE_BREATHING + 3); break;
case _ADJUST: rgblight_set_hsv_and_mode(HSV_RED, RGBLIGHT_MODE_KNIGHT + 2); break;
case _COLEMAK: rgblight_set_hsv_and_mode(HSV_MAGENTA, RGBLIGHT_MODE_STATIC_LIGHT); break;
case _DVORAK: rgblight_set_hsv_and_mode(HSV_SPRINGGREEN, RGBLIGHT_MODE_STATIC_LIGHT); break;
case _WORKMAN: rgblight_set_hsv_and_mode(HSV_GOLDENROD, RGBLIGHT_MODE_STATIC_LIGHT); break;
case _NORMAN: rgblight_set_hsv_and_mode(HSV_CORAL, RGBLIGHT_MODE_STATIC_LIGHT); break;
case _MALTRON: rgblight_set_hsv_and_mode(HSV_YELLOW, RGBLIGHT_MODE_STATIC_LIGHT); break;
case _EUCALYN: rgblight_set_hsv_and_mode(HSV_PINK, RGBLIGHT_MODE_STATIC_LIGHT); break;
case _CARPLAX: rgblight_set_hsv_and_mode(HSV_BLUE, RGBLIGHT_MODE_STATIC_LIGHT); break;
default: rgblight_set_hsv_and_mode(HSV_CYAN, RGBLIGHT_MODE_STATIC_LIGHT); break;
}
}
# endif // RGBLIGHT_ENABLE
# endif // RGBLIGHT_ENABLE
return state;
}

View file

@ -68,6 +68,7 @@ CUSTOM_OLED_DRIVER ?= yes
ifeq ($(strip $(OLED_DRIVER_ENABLE)), yes)
ifeq ($(strip $(CUSTOM_OLED_DRIVER)), yes)
SRC += oled_stuff.c
OPT_DEFS += -DCUSTOM_OLED_DRIVER_CODE
endif
endif
@ -78,31 +79,8 @@ ifeq ($(strip $(PIMORONI_TRACKBALL_ENABLE)), yes)
QUANTUM_LIB_SRC += i2c_master.c
endif
CUSTOM_SPLIT_TRANSPORT ?= yes
ifeq ($(strip $(SPLIT_KEYBOARD)), yes)
QUANTUM_LIB_SRC += transport_sync.c
# ifneq ($(strip $(SPLIT_TRANSPORT)), custom)
# ifeq ($(strip $(CUSTOM_SPLIT_TRANSPORT)), yes)
# SPLIT_TRANSPORT = custom
# QUANTUM_LIB_SRC += drashna_transport.c
# OPT_DEFS += -DDRASHNA_CUSTOM_TRANSPORT
# # Unused functions are pruned away, which is why we can add multiple drivers here without bloat.
# ifeq ($(PLATFORM),AVR)
# ifneq ($(NO_I2C),yes)
# QUANTUM_LIB_SRC += i2c_master.c \
# i2c_slave.c
# endif
# endif
# SERIAL_DRIVER ?= bitbang
# OPT_DEFS += -DSERIAL_DRIVER_$(strip $(shell echo $(SERIAL_DRIVER) | tr '[:lower:]' '[:upper:]'))
# ifeq ($(strip $(SERIAL_DRIVER)), bitbang)
# QUANTUM_LIB_SRC += serial.c
# else
# QUANTUM_LIB_SRC += serial_$(strip $(SERIAL_DRIVER)).c
# endif
# endif
# endif
endif
# DEBUG_MATRIX_SCAN_RATE_ENABLE = api

View file

@ -26,7 +26,7 @@ uint8_t diablo_times[] = {0, 1, 3, 5, 10, 30};
// Cycle through the times for the macro, starting at 0, for disabled.
void diablo_tapdance_master(qk_tap_dance_state_t *state, void *user_data) {
diable_keys_t *diablo_keys = (diable_keys_t *)user_data;
diable_keys_t *diablo_keys = (diable_keys_t *)user_data;
// Sets the keycode based on the index
diablo_timer[diablo_keys->index].keycode = diablo_keys->keycode;
@ -34,7 +34,7 @@ void diablo_tapdance_master(qk_tap_dance_state_t *state, void *user_data) {
if (state->count >= (sizeof(diablo_times) / sizeof(uint8_t))) {
diablo_timer[diablo_keys->index].key_interval = 0;
reset_tap_dance(state);
} else { // else set the interval (tapdance count starts at 1, array starts at 0, so offset by one)
} else { // else set the interval (tapdance count starts at 1, array starts at 0, so offset by one)
diablo_timer[diablo_keys->index].key_interval = diablo_times[state->count - 1];
}
}
@ -64,7 +64,9 @@ void run_diablo_macro_check(void) {
// reset the timer, since enough time has passed
diablo_timer[index].timer = timer_read();
// send keycode ONLY if we're on the diablo layer.
if (IS_LAYER_ON(_DIABLO)) { tap_code(diablo_timer[index].keycode); }
if (IS_LAYER_ON(_DIABLO)) {
tap_code(diablo_timer[index].keycode);
}
}
}
}

View file

@ -35,12 +35,10 @@ extern diablo_timer_t diablo_timer[];
void run_diablo_macro_check(void);
#ifdef TAP_DANCE_ENABLE
// clang-format off
enum {
TD_D3_1 = 0,
TD_D3_2,
TD_D3_3,
TD_D3_4
TD_D3_4,
};
// clang-format on
#endif // TAP_DANCE_ENABLE
#endif // TAP_DANCE_ENABLE

View file

@ -54,7 +54,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
break;
case VRSN:
if (record->event.pressed) { SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); }
if (record->event.pressed) {
SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
}
return false;
break;
}
@ -87,7 +89,7 @@ __attribute__((weak)) void startup_keymap(void) {}
void startup_user(void) {
#ifdef RGBLIGHT_ENABLE
matrix_init_rgb();
#endif // RGBLIGHT_ENABLE
#endif // RGBLIGHT_ENABLE
startup_keymap();
}

View file

@ -24,8 +24,8 @@
#define BASE 0
enum custom_keycodes {
VRSN = SAFE_RANGE, // can always be here
VRSN = SAFE_RANGE, // can always be here
KC_MAKE,
KC_RESET,
NEWPLACEHOLDER // use "NEWPLACEHOLDER for keymap specific codes
NEWPLACEHOLDER // use "NEWPLACEHOLDER for keymap specific codes
};

View file

@ -1,10 +1,10 @@
#ifdef SPLIT_TRANSACTION_IDS_USER
#include "transport_sync.h"
#include "transactions.h"
#include <string.h>
# include "transport_sync.h"
# include "transactions.h"
# include <string.h>
typedef struct {
bool oled_on;
bool oled_on;
uint16_t keymap_config;
} user_runtime_config_t;
@ -23,20 +23,19 @@ void keyboard_post_init_transport_sync(void) {
void user_state_update(void) {
if (is_keyboard_master()) {
#ifdef OLED_DRIVER_ENABLE
# ifdef OLED_DRIVER_ENABLE
user_state.oled_on = is_oled_on();
#endif
# endif
user_state.keymap_config = keymap_config.raw;
} else {
#ifdef OLED_DRIVER_ENABLE
# ifdef OLED_DRIVER_ENABLE
if (user_state.oled_on) {
oled_on();
} else {
oled_off();
}
#endif
# endif
if (keymap_config.raw != user_state.keymap_config) {
keymap_config.raw = user_state.keymap_config;
}

View file

@ -60,120 +60,120 @@ NOTE: These are all the same length. If you do a search/replace
#define ______________COLEMAK_MOD_DH_R3____________ KC_K, KC_H, KC_COMM, KC_DOT, KC_SLASH
#define _________________DVORAK_L1_________________ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y
#define _________________DVORAK_L2_________________ KC_A, KC_O, KC_E, KC_U, KC_I
#define _________________DVORAK_L3_________________ KC_SCLN, KC_Q, KC_J, KC_K, KC_X
#define _________________DVORAK_L1_________________ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y
#define _________________DVORAK_L2_________________ KC_A, KC_O, KC_E, KC_U, KC_I
#define _________________DVORAK_L3_________________ KC_SCLN, KC_Q, KC_J, KC_K, KC_X
#define _________________DVORAK_R1_________________ KC_F, KC_G, KC_C, KC_R, KC_L
#define _________________DVORAK_R2_________________ KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH
#define _________________DVORAK_R3_________________ KC_B, KC_M, KC_W, KC_V, KC_Z
#define _________________DVORAK_R1_________________ KC_F, KC_G, KC_C, KC_R, KC_L
#define _________________DVORAK_R2_________________ KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH
#define _________________DVORAK_R3_________________ KC_B, KC_M, KC_W, KC_V, KC_Z
#define ________________DVORAK_AU_L1_______________ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y
#define ________________DVORAK_AU_L2_______________ KC_O, KC_A, KC_E, KC_I, KC_U
#define ________________DVORAK_AU_L3_______________ KC_SCLN, KC_Q, KC_J, KC_K, KC_X
#define ________________DVORAK_AU_L1_______________ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y
#define ________________DVORAK_AU_L2_______________ KC_O, KC_A, KC_E, KC_I, KC_U
#define ________________DVORAK_AU_L3_______________ KC_SCLN, KC_Q, KC_J, KC_K, KC_X
#define ________________DVORAK_AU_R1_______________ KC_F, KC_G, KC_C, KC_R, KC_L
#define ________________DVORAK_AU_R2_______________ KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH
#define ________________DVORAK_AU_R3_______________ KC_B, KC_M, KC_W, KC_V, KC_Z
#define ________________DVORAK_AU_R1_______________ KC_F, KC_G, KC_C, KC_R, KC_L
#define ________________DVORAK_AU_R2_______________ KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH
#define ________________DVORAK_AU_R3_______________ KC_B, KC_M, KC_W, KC_V, KC_Z
#define _________________WORKMAN_L1________________ KC_Q, KC_D, KC_R, KC_W, KC_B
#define _________________WORKMAN_L2________________ KC_A, KC_S, KC_H, KC_T, KC_G
#define _________________WORKMAN_L3________________ KC_Z, KC_X, KC_M, KC_C, KC_V
#define _________________WORKMAN_L1________________ KC_Q, KC_D, KC_R, KC_W, KC_B
#define _________________WORKMAN_L2________________ KC_A, KC_S, KC_H, KC_T, KC_G
#define _________________WORKMAN_L3________________ KC_Z, KC_X, KC_M, KC_C, KC_V
#define _________________WORKMAN_R1________________ KC_J, KC_F, KC_U, KC_P, KC_SCLN
#define _________________WORKMAN_R2________________ KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT
#define _________________WORKMAN_R3________________ KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH
#define _________________WORKMAN_R1________________ KC_J, KC_F, KC_U, KC_P, KC_SCLN
#define _________________WORKMAN_R2________________ KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT
#define _________________WORKMAN_R3________________ KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH
#define _________________NORMAN_L1_________________ KC_Q, KC_W, KC_D, KC_F, KC_K
#define _________________NORMAN_L2_________________ KC_A, KC_S, KC_E, KC_T, KC_G
#define _________________NORMAN_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B
#define _________________NORMAN_L1_________________ KC_Q, KC_W, KC_D, KC_F, KC_K
#define _________________NORMAN_L2_________________ KC_A, KC_S, KC_E, KC_T, KC_G
#define _________________NORMAN_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B
#define _________________NORMAN_R1_________________ KC_J, KC_U, KC_R, KC_L, KC_SCLN
#define _________________NORMAN_R2_________________ KC_Y, KC_N, KC_I, KC_O, KC_U, KC_QUOT
#define _________________NORMAN_R3_________________ KC_P, KC_M, KC_COMM, KC_DOT, KC_SLSH
#define _________________NORMAN_R1_________________ KC_J, KC_U, KC_R, KC_L, KC_SCLN
#define _________________NORMAN_R2_________________ KC_Y, KC_N, KC_I, KC_O, KC_U, KC_QUOT
#define _________________NORMAN_R3_________________ KC_P, KC_M, KC_COMM, KC_DOT, KC_SLSH
#define _________________MALTRON_L1________________ KC_Q, KC_P, KC_Y, KC_C, KC_B
#define _________________MALTRON_L2________________ KC_A, KC_N, KC_I, KC_S, KC_F
#define _________________MALTRON_L3________________ KC_SCLN, KC_SLSH, KC_J, KC_G, KC_COMM
#define _________________MALTRON_L1________________ KC_Q, KC_P, KC_Y, KC_C, KC_B
#define _________________MALTRON_L2________________ KC_A, KC_N, KC_I, KC_S, KC_F
#define _________________MALTRON_L3________________ KC_SCLN, KC_SLSH, KC_J, KC_G, KC_COMM
#define _________________MALTRON_R1________________ KC_V, KC_M, KC_U, KC_Z, KC_L
#define _________________MALTRON_R2________________ KC_D, KC_T, KC_D, KC_O, KC_R, KC_QUOT
#define _________________MALTRON_R3________________ KC_DOT, KC_W, KC_K, KC_MINS, KC_X
#define _________________MALTRON_R1________________ KC_V, KC_M, KC_U, KC_Z, KC_L
#define _________________MALTRON_R2________________ KC_D, KC_T, KC_D, KC_O, KC_R, KC_QUOT
#define _________________MALTRON_R3________________ KC_DOT, KC_W, KC_K, KC_MINS, KC_X
#define _________________EUCALYN_L1________________ KC_Q, KC_W, KC_COMM, KC_DOT, KC_SCLN
#define _________________EUCALYN_L2________________ KC_A, KC_O, KC_E, KC_I, KC_U
#define _________________EUCALYN_L3________________ KC_Z, KC_X, KC_C, KC_V, KC_F
#define _________________EUCALYN_L1________________ KC_Q, KC_W, KC_COMM, KC_DOT, KC_SCLN
#define _________________EUCALYN_L2________________ KC_A, KC_O, KC_E, KC_I, KC_U
#define _________________EUCALYN_L3________________ KC_Z, KC_X, KC_C, KC_V, KC_F
#define _________________EUCALYN_R1________________ KC_M, KC_R, KC_D, KC_Y, KC_P
#define _________________EUCALYN_R2________________ KC_G, KC_T, KC_K, KC_S, KC_N, KC_QUOT
#define _________________EUCALYN_R3________________ KC_B, KC_H, KC_J, KC_L, KC_SLSH
#define _________________EUCALYN_R1________________ KC_M, KC_R, KC_D, KC_Y, KC_P
#define _________________EUCALYN_R2________________ KC_G, KC_T, KC_K, KC_S, KC_N, KC_QUOT
#define _________________EUCALYN_R3________________ KC_B, KC_H, KC_J, KC_L, KC_SLSH
// Qwerty-like
#define _____________CARPLAX_QFMLWY_L1_____________ KC_Q, KC_F, KC_M, KC_L, KC_W
#define _____________CARPLAX_QFMLWY_L2_____________ KC_D, KC_S, KC_T, KC_N, KC_R
#define _____________CARPLAX_QFMLWY_L3_____________ KC_Z, KC_V, KC_G, KC_C, KC_X
#define _____________CARPLAX_QFMLWY_L1_____________ KC_Q, KC_F, KC_M, KC_L, KC_W
#define _____________CARPLAX_QFMLWY_L2_____________ KC_D, KC_S, KC_T, KC_N, KC_R
#define _____________CARPLAX_QFMLWY_L3_____________ KC_Z, KC_V, KC_G, KC_C, KC_X
#define _____________CARPLAX_QFMLWY_R1_____________ KC_Y, KC_U, KC_O, KC_B, KC_J
#define _____________CARPLAX_QFMLWY_R2_____________ KC_I, KC_A, KC_E, KC_H, KC_SCLN, KC_QUOT
#define _____________CARPLAX_QFMLWY_R3_____________ KC_P, KC_K, KC_COMM, KC_DOT, KC_SLSH
#define _____________CARPLAX_QFMLWY_R1_____________ KC_Y, KC_U, KC_O, KC_B, KC_J
#define _____________CARPLAX_QFMLWY_R2_____________ KC_I, KC_A, KC_E, KC_H, KC_SCLN, KC_QUOT
#define _____________CARPLAX_QFMLWY_R3_____________ KC_P, KC_K, KC_COMM, KC_DOT, KC_SLSH
// Colemak like
#define _____________CARPLAX_QGMLWB_L1_____________ KC_Q, KC_G, KC_M, KC_L, KC_W
#define _____________CARPLAX_QGMLWB_L2_____________ KC_D, KC_S, KC_T, KC_N, KC_R
#define _____________CARPLAX_QGMLWB_L3_____________ KC_Z, KC_X, KC_C, KC_F, KC_J
#define _____________CARPLAX_QGMLWB_L1_____________ KC_Q, KC_G, KC_M, KC_L, KC_W
#define _____________CARPLAX_QGMLWB_L2_____________ KC_D, KC_S, KC_T, KC_N, KC_R
#define _____________CARPLAX_QGMLWB_L3_____________ KC_Z, KC_X, KC_C, KC_F, KC_J
#define _____________CARPLAX_QGMLWB_R1_____________ KC_B, KC_Y, KC_U, KC_V, KC_SCLN
#define _____________CARPLAX_QGMLWB_R2_____________ KC_I, KC_A, KC_E, KC_O, KC_H, KC_QUOT
#define _____________CARPLAX_QGMLWB_R3_____________ KC_K, KC_P, KC_COMM, KC_DOT, KC_SLSH
#define _____________CARPLAX_QGMLWB_R1_____________ KC_B, KC_Y, KC_U, KC_V, KC_SCLN
#define _____________CARPLAX_QGMLWB_R2_____________ KC_I, KC_A, KC_E, KC_O, KC_H, KC_QUOT
#define _____________CARPLAX_QGMLWB_R3_____________ KC_K, KC_P, KC_COMM, KC_DOT, KC_SLSH
// colemak like, zxcv fixed
#define _____________CARPLAX_QGMLWY_L1_____________ KC_Q, KC_G, KC_M, KC_L, KC_W
#define _____________CARPLAX_QGMLWY_L2_____________ KC_D, KC_S, KC_T, KC_N, KC_R
#define _____________CARPLAX_QGMLWY_L3_____________ KC_Z, KC_X, KC_C, KC_V, KC_J
#define _____________CARPLAX_QGMLWY_L1_____________ KC_Q, KC_G, KC_M, KC_L, KC_W
#define _____________CARPLAX_QGMLWY_L2_____________ KC_D, KC_S, KC_T, KC_N, KC_R
#define _____________CARPLAX_QGMLWY_L3_____________ KC_Z, KC_X, KC_C, KC_V, KC_J
#define _____________CARPLAX_QGMLWY_R1_____________ KC_Y, KC_F, KC_U, KC_B, KC_SCLN
#define _____________CARPLAX_QGMLWY_R2_____________ KC_I, KC_A, KC_E, KC_O, KC_H, KC_QUOT
#define _____________CARPLAX_QGMLWY_R3_____________ KC_K, KC_P, KC_COMM, KC_DOT, KC_SLSH
#define _____________CARPLAX_QGMLWY_R1_____________ KC_Y, KC_F, KC_U, KC_B, KC_SCLN
#define _____________CARPLAX_QGMLWY_R2_____________ KC_I, KC_A, KC_E, KC_O, KC_H, KC_QUOT
#define _____________CARPLAX_QGMLWY_R3_____________ KC_K, KC_P, KC_COMM, KC_DOT, KC_SLSH
// teeheehee
#define _____________CARPLAX_TNWCLR_L1_____________ KC_T, KC_N, KC_W, KC_C, KC_L
#define _____________CARPLAX_TNWCLR_L2_____________ KC_S, KC_K, KC_J, KC_X, KC_G
#define _____________CARPLAX_TNWCLR_L3_____________ KC_E, KC_O, KC_D, KC_I, KC_A
#define _____________CARPLAX_TNWCLR_L1_____________ KC_T, KC_N, KC_W, KC_C, KC_L
#define _____________CARPLAX_TNWCLR_L2_____________ KC_S, KC_K, KC_J, KC_X, KC_G
#define _____________CARPLAX_TNWCLR_L3_____________ KC_E, KC_O, KC_D, KC_I, KC_A
#define _____________CARPLAX_TNWCLR_R1_____________ KC_R, KC_B, KC_F, KC_M, KC_H
#define _____________CARPLAX_TNWCLR_R2_____________ KC_P, KC_Q, KC_Z, KC_V, KC_SCLN, KC_QUOT
#define _____________CARPLAX_TNWCLR_R3_____________ KC_U, KC_Y, KC_COMM, KC_DOT, KC_SLSH
#define _____________CARPLAX_TNWCLR_R1_____________ KC_R, KC_B, KC_F, KC_M, KC_H
#define _____________CARPLAX_TNWCLR_R2_____________ KC_P, KC_Q, KC_Z, KC_V, KC_SCLN, KC_QUOT
#define _____________CARPLAX_TNWCLR_R3_____________ KC_U, KC_Y, KC_COMM, KC_DOT, KC_SLSH
#define _________________WHITE_R1__________________ KC_V, KC_Y, KC_D, KC_COMM, KC_QUOT
#define _________________WHITE_R2__________________ KC_A, KC_T, KC_H, KC_E, KC_B
#define _________________WHITE_R3__________________ KC_P, KC_K, KC_G, KC_W, KC_Q
#define _________________WHITE_R1__________________ KC_V, KC_Y, KC_D, KC_COMM, KC_QUOT
#define _________________WHITE_R2__________________ KC_A, KC_T, KC_H, KC_E, KC_B
#define _________________WHITE_R3__________________ KC_P, KC_K, KC_G, KC_W, KC_Q
#define _________________WHITE_L1__________________ KC_INT1, KC_J, KC_M, KC_L, KC_U
#define _________________WHITE_L2__________________ KC_MINS, KC_C, KC_S, KC_N, KC_O, KC_I
#define _________________WHITE_L3__________________ KC_X, KC_R, KC_F, KC_DOT, KC_Z
#define _________________WHITE_L1__________________ KC_INT1, KC_J, KC_M, KC_L, KC_U
#define _________________WHITE_L2__________________ KC_MINS, KC_C, KC_S, KC_N, KC_O, KC_I
#define _________________WHITE_L3__________________ KC_X, KC_R, KC_F, KC_DOT, KC_Z
#define _________________HALMAK_L1_________________ KC_W, KC_L, KC_R, KC_B, KC_Z
#define _________________HALMAK_L2_________________ KC_S, KC_H, KC_N, KC_T, KC_COMM
#define _________________HALMAK_L3_________________ KC_F, KC_M, KC_V, KC_V, KC_SLASH
#define _________________HALMAK_L1_________________ KC_W, KC_L, KC_R, KC_B, KC_Z
#define _________________HALMAK_L2_________________ KC_S, KC_H, KC_N, KC_T, KC_COMM
#define _________________HALMAK_L3_________________ KC_F, KC_M, KC_V, KC_V, KC_SLASH
#define _________________HALMAK_R1_________________ KC_SCLN, KC_Q, KC_U, KC_D, KC_J
#define _________________HALMAK_R2_________________ KC_DOT, KC_A, KC_E, KC_O, KC_I, KC_QUOTE
#define _________________HALMAK_R3_________________ KC_G, KC_P, KC_X, KC_K, KC_Y
#define _________________HALMAK_R1_________________ KC_SCLN, KC_Q, KC_U, KC_D, KC_J
#define _________________HALMAK_R2_________________ KC_DOT, KC_A, KC_E, KC_O, KC_I, KC_QUOTE
#define _________________HALMAK_R3_________________ KC_G, KC_P, KC_X, KC_K, KC_Y
#define _________________HALMAK_L1_________________ KC_W, KC_L, KC_R, KC_B, KC_Z
#define _________________HALMAK_L2_________________ KC_S, KC_H, KC_N, KC_T, KC_COMM
#define _________________HALMAK_L3_________________ KC_F, KC_M, KC_V, KC_V, KC_SLASH
#define _________________HALMAK_L1_________________ KC_W, KC_L, KC_R, KC_B, KC_Z
#define _________________HALMAK_L2_________________ KC_S, KC_H, KC_N, KC_T, KC_COMM
#define _________________HALMAK_L3_________________ KC_F, KC_M, KC_V, KC_V, KC_SLASH
#define _________________HALMAK_R1_________________ KC_SCLN, KC_Q, KC_U, KC_D, KC_J
#define _________________HALMAK_R2_________________ KC_DOT, KC_A, KC_E, KC_O, KC_I, KC_QUOTE
#define _________________HALMAK_R3_________________ KC_G, KC_P, KC_X, KC_K, KC_Y
#define _________________HALMAK_R1_________________ KC_SCLN, KC_Q, KC_U, KC_D, KC_J
#define _________________HALMAK_R2_________________ KC_DOT, KC_A, KC_E, KC_O, KC_I, KC_QUOTE
#define _________________HALMAK_R3_________________ KC_G, KC_P, KC_X, KC_K, KC_Y
#define ________________NUMBER_LEFT________________ KC_1, KC_2, KC_3, KC_4, KC_5
@ -181,35 +181,35 @@ NOTE: These are all the same length. If you do a search/replace
#define _________________FUNC_LEFT_________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
#define _________________FUNC_RIGHT________________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
#define ___________________BLANK___________________ _______, _______, _______, _______, _______
#define ___________________BLANK___________________ _______, _______, _______, _______, _______
#define _________________LOWER_L1__________________ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC
#define _________________LOWER_L2__________________ _________________FUNC_LEFT_________________
#define _________________LOWER_L3__________________ _________________FUNC_RIGHT________________
#define _________________LOWER_L1__________________ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC
#define _________________LOWER_L2__________________ _________________FUNC_LEFT_________________
#define _________________LOWER_L3__________________ _________________FUNC_RIGHT________________
#define _________________LOWER_R1__________________ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN
#define _________________LOWER_R2__________________ _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR
#define _________________LOWER_R3__________________ _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
#define _________________LOWER_R1__________________ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN
#define _________________LOWER_R2__________________ _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR
#define _________________LOWER_R3__________________ _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
#define _________________RAISE_L1__________________ ________________NUMBER_LEFT________________
#define _________________RAISE_L2__________________ ___________________BLANK___________________
#define _________________RAISE_L3__________________ ___________________BLANK___________________
#define _________________RAISE_L1__________________ ________________NUMBER_LEFT________________
#define _________________RAISE_L2__________________ ___________________BLANK___________________
#define _________________RAISE_L3__________________ ___________________BLANK___________________
#define _________________RAISE_R1__________________ ________________NUMBER_RIGHT_______________
#define _________________RAISE_R2__________________ _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC
#define _________________RAISE_R3__________________ _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
#define _________________RAISE_R1__________________ ________________NUMBER_RIGHT_______________
#define _________________RAISE_R2__________________ _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC
#define _________________RAISE_R3__________________ _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
#define _________________ADJUST_L1_________________ RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG
#define _________________ADJUST_L2_________________ MU_TOG , CK_TOGG, AU_ON, AU_OFF, CG_NORM
#define _________________ADJUST_L3_________________ RGB_RMOD,RGB_HUD,RGB_SAD, RGB_VAD, KC_RGB_T
#define _________________ADJUST_L1_________________ RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG
#define _________________ADJUST_L2_________________ MU_TOG , CK_TOGG, AU_ON, AU_OFF, CG_NORM
#define _________________ADJUST_L3_________________ RGB_RMOD,RGB_HUD,RGB_SAD, RGB_VAD, KC_RGB_T
#define _________________ADJUST_R1_________________ KC_SEC1, KC_SEC2, KC_SEC3, KC_SEC4, KC_SEC5
#define _________________ADJUST_R2_________________ CG_SWAP, QWERTY, COLEMAK, DVORAK, WORKMAN
#define _________________ADJUST_R3_________________ MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT
#define _________________ADJUST_R1_________________ KC_SEC1, KC_SEC2, KC_SEC3, KC_SEC4, KC_SEC5
#define _________________ADJUST_R2_________________ CG_SWAP, DEFLYR1, DEFLYR2, DEFLYR3, DEFLYR4
#define _________________ADJUST_R3_________________ MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT
// clang-format on