diff --git a/users/kuchosauronad0/config.h b/users/kuchosauronad0/config.h
index b2c63c1e0c..b06c9e2c56 100644
--- a/users/kuchosauronad0/config.h
+++ b/users/kuchosauronad0/config.h
@@ -1,61 +1,62 @@
#pragma once
#ifdef AUDIO_ENABLE
- #define AUDIO_CLICKY
- #define STARTUP_SONG SONG(RICK_ROLL)
- #define GOODBYE_SONG SONG(SONIC_RING)
- #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
- SONG(COLEMAK_SOUND), \
- SONG(DVORAK_SOUND), \
- SONG(OVERWATCH_THEME) \
- }
- #define AUDIO_CLICKY_FREQ_RANDOMNESS 1.5f
- // #ifdef RGBLIGHT_ENABLE
- // #define NO_MUSIC_MODE
- // #endif //RGBLIGHT_ENABLE/
- // #ifndef __arm__
- // #undef NOTE_REST
- // #define NOTE_REST 1.00f
- // #endif // !__arm__
- #define UNICODE_SONG_OSX SONG(RICK_ROLL)
- #define UNICODE_SONG_LNX SONG(RICK_ROLL)
- #define UNICODE_SONG_WIN SONG(RICK_ROLL)
- #define UNICODE_SONG_BSD SONG(RICK_ROLL)
- #define UNICODE_SONG_WINC SONG(RICK_ROLL)
+# define DEFAULT_LAYER_SONGS \
+ { SONG(QWERTY_SOUND), SONG(COLEMAK_SOUND), SONG(DVORAK_SOUND), SONG(PLOVER_SOUND) }
+# define AUDIO_CLICKY
+# define STARTUP_SONG SONG(RICK_ROLL)
+# define GOODBYE_SONG SONG(SONIC_RING)
+# define AUDIO_CLICKY_FREQ_RANDOMNESS 1.5f
+# ifndef __arm__
+# undef NOTE_REST
+# define NOTE_REST 1.00f
+# endif // !__arm__
+# define UNICODE_SONG_OSX SONG(RICK_ROLL)
+# define UNICODE_SONG_LNX SONG(RICK_ROLL)
+# define UNICODE_SONG_WIN SONG(RICK_ROLL)
+# define UNICODE_SONG_BSD SONG(RICK_ROLL)
+# define UNICODE_SONG_WINC SONG(RICK_ROLL)
#endif // !AUDIO_ENABLE
#ifdef RGBLIGHT_ENABLE
- #define RGBLIGHT_SLEEP
- #undef RGBLIGHT_ANIMATIONS
- #define RGBLIGHT_EFFECT_BREATHING
- #define RGBLIGHT_EFFECT_SNAKE
- #define RGBLIGHT_EFFECT_KNIGHT
+# define RGBLIGHT_SLEEP
+# undef RGBLIGHT_ANIMATIONS
+# define RGBLIGHT_HUE_STEP 16
+# define RGBLIGHT_SAT_STEP 16
+# define RGBLIGHT_VAL_STEP 16
+# define RGBLIGHT_LIMIT_VAL 255
+# define RGBLIGHT_EFFECT_BREATHING
+# define RGBLIGHT_EFFECT_STATIC_GRADIENT
+//# define RGBLIGHT_EFFECT_KNIGHT
+//# define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2
+//# define RGBLIGHT_EFFECT_SNAKE
+//# define RGBLIGHT_EFFECT_SNAKE_LENGTH 2
#endif // !RGBLIGHT_ENABLE
#ifndef ONESHOT_TAP_TOGGLE
- #define ONESHOT_TAP_TOGGLE 2
+# define ONESHOT_TAP_TOGGLE 2
#endif // !ONESHOT_TAP_TOGGLE
#ifndef ONESHOT_TIMEOUT
- #define ONESHOT_TIMEOUT 3000
+# define ONESHOT_TIMEOUT 3000
#endif// !ONESHOT_TIMEOUT
#ifndef QMK_KEYS_PER_SCAN
- #define QMK_KEYS_PER_SCAN 4
+# define QMK_KEYS_PER_SCAN 4
#endif // !QMK_KEYS_PER_SCAN
#if defined(LEADER_ENABLE)
- #define LEADER_PER_KEY_TIMING
- #define LEADER_TIMEOUT 250
+# define LEADER_PER_KEY_TIMING
+# define LEADER_TIMEOUT 250
#endif // !LEADER_ENABLE
#if defined(COMBO_ENABLE)
- #define COMBO_COUNT 4
- #define COMBO_TERM 150
+# define COMBO_COUNT 4
+# define COMBO_TERM 150
#endif // !COMBO_ENABLE
#if defined(NKRO_ENABLE)
- #define FORCE_NKRO
+# define FORCE_NKRO
#endif // !NKRO_ENABLE
// this makes it possible to do rolling combos (zx) with keys that
@@ -68,18 +69,18 @@
//#define RETRO_TAPPING
#ifndef TAPPING_TOGGLE
- #define TAPPING_TOGGLE 1
+# define TAPPING_TOGGLE 1
#endif
#ifdef TAPPING_TERM
- #undef TAPPING_TERM
+# undef TAPPING_TERM
#endif // !TAPPING_TERM
#if defined(KEYBOARD_handwired_kuchosauronad0_planckenstein)
- #define TAPPING_TERM 185
+# define TAPPING_TERM 185
#elif defined(KEYBOARD_c39)
- #define TAPPING_TERM 200
+# define TAPPING_TERM 200
#else
- #define TAPPING_TERM 180
+# define TAPPING_TERM 180
#endif
@@ -87,4 +88,3 @@
#define MACRO_TIMER 5
-
diff --git a/users/kuchosauronad0/kuchosauronad0.c b/users/kuchosauronad0/kuchosauronad0.c
index 21e74a0fae..6c38d0f106 100644
--- a/users/kuchosauronad0/kuchosauronad0.c
+++ b/users/kuchosauronad0/kuchosauronad0.c
@@ -19,10 +19,9 @@ along with this program. If not, see .
userspace_config_t userspace_config;
#if (defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE) || defined(UCIS_ENABLE))
- #define KUCHOSAURONAD0_UNICODE_MODE UC_WINC
+# define KUCHOSAURONAD0_UNICODE_MODE UC_WINC
#else
- // set to 2 for UC_WIN, set to 4 for UC_WINC
- #define KUCHOSAURONAD0_UNICODE_MODE 2
+# define KUCHOSAURONAD0_UNICODE_MODE 2 // set to 2 for UC_WIN, set to 4 for UC_WINC
#endif
@@ -70,7 +69,7 @@ void shutdown_user (void) {
#ifdef RGBLIGHT_ENABLE
rgblight_enable_noeeprom();
rgblight_mode_noeeprom(1);
- rgblight_setrgb_red();
+ rgblight_setrgb_teal();
#endif // RGBLIGHT_ENABLE
#ifdef RGB_MATRIX_ENABLE
// uint16_t timer_start = timer_read();
@@ -108,11 +107,11 @@ void matrix_scan_user(void){
#ifdef TAP_DANCE_ENABLE // Run Diablo 3 macro checking code.
// run_diablo_macro_check();
-#endif // TAP_DANCE_ENABLE
+#endif // !TAP_DANCE_ENABLE
#ifdef RGBLIGHT_ENABLE
matrix_scan_rgb();
-#endif // RGBLIGHT_ENABLE
+#endif // !RGBLIGHT_ENABLE
matrix_scan_keymap();
}
@@ -171,6 +170,8 @@ void eeconfig_init_user(void) {
#else
eeprom_update_byte(EECONFIG_UNICODEMODE, KUCHOSAURONAD0_UNICODE_MODE);
#endif
+ eeconfig_init_keymap();
+ keyboard_init();
}
// TMUX stuff
diff --git a/users/kuchosauronad0/kuchosauronad0.h b/users/kuchosauronad0/kuchosauronad0.h
index 9ea2673dab..da996457c6 100644
--- a/users/kuchosauronad0/kuchosauronad0.h
+++ b/users/kuchosauronad0/kuchosauronad0.h
@@ -1,7 +1,4 @@
-#ifndef USERSPACE
-#define USERSPACE
-
-//#pragma once
+#pragma once
#include "quantum.h"
@@ -11,23 +8,25 @@
#include "process_records.h"
#ifdef TAP_DANCE_ENABLE
- #include "tap_dances.h"
- #define KC_TMX TD(TD_TMX) // tap1: 't' tap2: +b
- #define KC_EOL TD(TD_EOL) // tap1: 'e' tap2: +e
- #define KC_BOL TD(TD_BOL) // tap1: 'a' tap2: +a
- #define KC_NW TD(TD_NW) // tap1: 'f' tap2: +f
- #define KC_PW TD(TD_PW) // tap1: 'b' tap2: +b
- #define KC_DW TD(TD_DW) // tap1: 'w' tap2: +w
+# include "tap_dances.h"
+# define KC_TMX TD(TD_TMX) // tap1: 't' tap2: +b
+# define KC_EOL TD(TD_EOL) // tap1: 'e' tap2: +e
+# define KC_BOL TD(TD_BOL) // tap1: 'a' tap2: +a
+# define KC_NW TD(TD_NW) // tap1: 'f' tap2: +f
+# define KC_PW TD(TD_PW) // tap1: 'b' tap2: +b
+# define KC_DW TD(TD_DW) // tap1: 'w' tap2: +w
#endif //!TAP_DANCE_ENABLE
+
#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE)
- #include "rgb_stuff.h"
+# include "rgblight_user.h"
#endif
+
#if defined(UNICODEMAP_ENABLE) || defined(UNICODE_ENABLE)
- #include "unicode.h"
+# include "unicode.h"
#endif //!UNICODE_ENABLE
// Keycode aliases
-#define TM_X LCTL(KC_B) // Tmux control sequence
+#define TM_X LCTL(KC_B) // Tmux leader key
// Unix QoL macros
#define MC_BOL LCTL(KC_A) // jump to beginning of line
#define MC_EOL LCTL(KC_E) // jump to end of line
@@ -42,10 +41,11 @@ enum userspace_layers {
_COLEMAK,
_DVORAK,
_WORKMAN,
- _NORMAN,
+/* _NORMAN,
_MALTRON,
_EUCALYN,
- _CARPLAX,
+ _CARPLAX, */
+ _PLOVER,
_UNICODE,
_MODS, /* layer 8 now 9*/
_GAMEPAD,
@@ -57,18 +57,18 @@ enum userspace_layers {
_ADJUST,
};
-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);
-bool send_game_macro(const char *str, keyrecord_t *record, bool override);
-void matrix_init_keymap(void);
-void shutdown_keymap(void);
-void suspend_power_down_keymap(void);
-void suspend_wakeup_init_keymap(void);
-void matrix_scan_keymap(void);
+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);
+bool send_game_macro(const char *str, keyrecord_t *record, bool override);
+void matrix_init_keymap(void);
+void shutdown_keymap(void);
+void suspend_power_down_keymap(void);
+void suspend_wakeup_init_keymap(void);
+void matrix_scan_keymap(void);
uint32_t layer_state_set_keymap (uint32_t state);
uint32_t default_layer_state_set_keymap (uint32_t state);
-void led_set_keymap(uint8_t usb_led);
-void eeconfig_init_keymap(void);
+void led_set_keymap(uint8_t usb_led);
+void eeconfig_init_keymap(void);
void tmux_prefix(void);
void tmux_pane_zoom(void);
@@ -95,17 +95,15 @@ But since TD() doesn't work when tap dance is disabled
We use custom codes here, so we can substitute the right stuff
*/
#ifdef TAP_DANCE_ENABLE
-#define KC_D3_1 TD(TD_D3_1)
-#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
-#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 // !USERSPACE
+# define KC_D3_1 TD(TD_D3_1)
+# 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
+# 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
/* vi: ft=c:tw=80:sw=2:ts=2:sts=2:et */
diff --git a/users/kuchosauronad0/leader.c b/users/kuchosauronad0/leader.c
index 58935abb3c..22674eef05 100644
--- a/users/kuchosauronad0/leader.c
+++ b/users/kuchosauronad0/leader.c
@@ -1,77 +1,116 @@
#include "leader.h"
+#ifdef RGBLIGHT_ENABLE
+extern rgblight_config_t rgblight_config;
+#endif
+bool leader_succeed;
LEADER_EXTERNS();
-void matrix_scan_user(void){
+void matrix_scan_user(void) {
static bool has_ran_yet;
if (!has_ran_yet) {
has_ran_yet = true;
startup_user();
}
-
#ifdef TAP_DANCE_ENABLE // Run Diablo 3 macro checking code.
// run_diablo_macro_check();
-#endif // TAP_DANCE_ENABLE
-
+#endif
#ifdef RGBLIGHT_ENABLE
matrix_scan_rgb();
-#endif // RGBLIGHT_ENABLE
-
+#endif
LEADER_DICTIONARY() {
- leading = false;
- leader_end();
+ leader_succeed = leading = false;
SEQ_ONE_KEY(KC_W) {
// vim/tmux: Use in command mode in vim: write to file, switch tmux pane in the current session window and repeat the last command
SEND_STRING(":w" SS_TAP(X_ENTER));
tmux_pane_switch_repeat();
- }
-
+ leader_succeed = true;
+ } else
SEQ_ONE_KEY(KC_T) {
// Send the Tmux Prefix
tmux_prefix();
- }
-
+ leader_succeed = true;
+ } else
SEQ_ONE_KEY(KC_A) {
// tmux: Send the prefix and press 'right' arrow
tmux_prefix();
tap_code(KC_RIGHT);
- }
-
+ leader_succeed = true;
+ } else
SEQ_TWO_KEYS(KC_T, KC_T) {
// tmux: Send the prefix to a nested session
tmux_prefix();
tmux_prefix();
- }
+ leader_succeed = true;
+ } else
SEQ_TWO_KEYS(KC_T, KC_R) {
// tmux: Switch pane and repeat last action
tmux_pane_switch_repeat();
- }
-
+ leader_succeed = true;
+ } else
SEQ_TWO_KEYS(KC_V, KC_Z){
// vim: Zoom pane
tap_code16(LCTL(KC_W));
tap_code16(LSFT(KC_BSLS));
- }
-
+ leader_succeed = true;
+ } else
SEQ_TWO_KEYS(KC_V, KC_R) {
// vim: Substitute and place cursor
SEND_STRING(":%s///g" SS_TAP(X_LEFT));
tap_code(KC_LEFT);
tap_code(KC_LEFT);
- }
-
+ leader_succeed = true;
+ } else
SEQ_TWO_KEYS(KC_V, KC_T) {
- // vim: move current pane to new tab
- tap_code16(LCTL(KC_W));
- tap_code16(LSFT(KC_T));
- }
-
+ // vim: move current pane to new tab
+ tap_code16(LCTL(KC_W));
+ tap_code16(LSFT(KC_T));
+ leader_succeed = true;
+ } else
+ SEQ_ONE_KEY(KC_R){
+ // Toggle RGB Layer indicator
+ tap_code16(KC_RGB_T);
+ leader_succeed = true;
+ } else
+ SEQ_ONE_KEY(KC_SPC){
+ // One Shot Unicode layer
+//TODO tap_code16(OS_UNI);
+ leader_succeed = true;
+ } else
+ SEQ_TWO_KEYS(KC_SPC, KC_SPC){
+ // Toggle _MODS
+ tap_code16(TG_MODS);
+ leader_succeed = true;
+ } else
SEQ_THREE_KEYS(KC_BSPC, KC_BSPC, KC_BSPC){
- // Reset the keyboard
- reset_keyboard();
+ // Reset the keyboard
+ reset_keyboard();
+ leader_succeed = true;
}
+ leader_end();
}
-
- matrix_scan_keymap();
+// matrix_scan_keymap();
+}
+
+void leader_start(void) {
+#ifdef RGBLIGHT_ENABLE
+ rgblight_savebase();
+ rgblight_mode_noeeprom(1);
+ rgblight_sethsv_noeeprom_goldenrod();
+#endif
+}
+
+void leader_end(void) {
+// pick color depending of success /fail
+// fade leader_start from 100 to 0
+// fade new color from 0 to 100 to 0
+// fade old color from 0 to 100
+#ifdef RGBLIGHT_ENABLE
+ if (leader_succeed) {
+ fadeflash_leds(HSV_GREEN);
+ } else {
+ fadeflash_leds(HSV_RED);
+ }
+#endif
}
diff --git a/users/kuchosauronad0/process_records.c b/users/kuchosauronad0/process_records.c
index 1eb3043b1c..bec6fa5ad0 100644
--- a/users/kuchosauronad0/process_records.c
+++ b/users/kuchosauronad0/process_records.c
@@ -25,7 +25,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
#endif //KEYLOGGER_ENABLE
switch (keycode) {
- case KC_QWERTY ... KC_UNICODE:
+ case KC_QWERTY ... KC_PLOVER:
if (record->event.pressed) {
set_single_persistent_default_layer(keycode - KC_QWERTY);
}
@@ -168,7 +168,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
case KC_OVERWATCH: // Toggle's if we hit "ENTER" or "BACKSPACE" to input macros
if (record->event.pressed) { userspace_config.is_overwatch ^= 1; eeconfig_update_user(userspace_config.raw); }
#ifdef RGBLIGHT_ENABLE
- userspace_config.is_overwatch ? rgblight_mode_noeeprom(17) : rgblight_mode_noeeprom(18);
+// userspace_config.is_overwatch ? rgblight_mode_noeeprom(17) : rgblight_mode_noeeprom(18);
#endif //RGBLIGHT_ENABLE
break;
case KC_SALT:
diff --git a/users/kuchosauronad0/process_records.h b/users/kuchosauronad0/process_records.h
index 1a66beaa77..d3d4c4fe83 100644
--- a/users/kuchosauronad0/process_records.h
+++ b/users/kuchosauronad0/process_records.h
@@ -2,9 +2,9 @@
#include "kuchosauronad0.h"
#if defined(KEYMAP_SAFE_RANGE)
-#define PLACEHOLDER_SAFE_RANGE KEYMAP_SAFE_RANGE
+# define PLACEHOLDER_SAFE_RANGE KEYMAP_SAFE_RANGE
#else
-#define PLACEHOLDER_SAFE_RANGE SAFE_RANGE
+# define PLACEHOLDER_SAFE_RANGE SAFE_RANGE
#endif
enum userspace_custom_keycodes{
@@ -13,11 +13,7 @@ enum userspace_custom_keycodes{
KC_COLEMAK, // Sets default layer to COLEMAK
KC_DVORAK, // Sets default layer to DVORAK
KC_WORKMAN, // Sets default layer to WORKMAN
- KC_NORMAN, // Sets default layer to NORMAN
- KC_MALTRON, // Sets default layer to MALTRON
- KC_EUCALYN, // Sets default layer to EUCALYN
- KC_CARPLAX, // Sets default layer to CARPLAX
- KC_UNICODE, // Sets default layer to UNICODE
+ KC_PLOVER, // Sets default layer to PLOVER
KC_MAKE, // Run keyboard's customized make command
KC_RGB_T, // Toggles RGB Layer Indication mode
@@ -33,36 +29,37 @@ enum userspace_custom_keycodes{
UC_SHRG, // ¯\_(ツ)_/¯
UC_DISA, // ಠ_ಠ
- MC_QT1, // ""
- MC_QT2, // ''
- MC_QT3, // `'
- MC_PAR, // Parenthesis
- MC_CUR, // Curly bracket
- MC_SQR, // Square bracket
- MC_ABR, // Angle bracket
- MCT_NEW, // New Tmux Session
- MCT_SH, // Tmux horizontal split
- MCT_SV, // Tmux vertical split
- MCT_ZM, // Tmux zoom
- MCT_SCR, // Tmux scroll mode
- MCT_UP, // Tmux up
- MCT_DW, // Tmux down
- MCT_LFT, // Tmux left
- MCT_RGT, // Tmux right
- MCV_B, // Vim begin of line
- MCV_E, // Vim end of line
- MCT_F, // Vim for loop
- MCG_A, // Git add
- MCG_C, // Git commit
- MCG_P, // Git push
- MCG_R, // Git revert
- MCG_L, // Git log
- MCG_S, // Git status
+ MC_QT1, // ""
+ MC_QT2, // ''
+ MC_QT3, // `'
+ MC_PAR, // Parenthesis
+ MC_CUR, // Curly bracket
+ MC_SQR, // Square bracket
+ MC_ABR, // Angle bracket
+ MCT_NEW, // New Tmux Session
+ MCT_SH, // Tmux horizontal split
+ MCT_SV, // Tmux vertical split
+ MCT_ZM, // Tmux zoom
+ MCT_SCR, // Tmux scroll mode
+ MCT_UP, // Tmux up
+ MCT_DW, // Tmux down
+ MCT_LFT, // Tmux left
+ MCT_RGT, // Tmux right
+ MCV_B, // Vim begin of line
+ MCV_E, // Vim end of line
+ MCT_F, // Vim for loop
+ MCG_A, // Git add
+ MCG_C, // Git commit
+ MCG_P, // Git push
+ MCG_R, // Git revert
+ MCG_L, // Git log
+ MCG_S, // Git status
NEW_SAFE_RANGE //use "NEWPLACEHOLDER for keymap specific codes
};
bool process_record_secrets(uint16_t keycode, keyrecord_t *record);
+bool process_record_user_rgb(uint16_t keycode, keyrecord_t *record);
bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
#define LOWER MO(_LOWER)
@@ -74,21 +71,21 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
#define OS_RSE OSL(_RAISE)
#define OS_UNI OSL(_UNICODE)
-#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_SEC6 KC_SECRET_6
+#define SEC1 KC_SECRET_1
+#define SEC2 KC_SECRET_2
+#define SEC3 KC_SECRET_3
+#define SEC4 KC_SECRET_4
+#define SEC5 KC_SECRET_5
+#define SEC6 KC_SECRET_6
-#define QWERTY KC_QWERTY
-#define DVORAK KC_DVORAK
-#define COLEMAK KC_COLEMAK
-#define WORKMAN KC_WORKMAN
-#define UNICODE KC_UNICODE
+#define QWERTY KC_QWERTY
+#define DVORAK KC_DVORAK
+#define COLEMAK KC_COLEMAK
+#define WORKMAN KC_WORKMAN
+#define PLOVER KC_PLOVER
#define KC_RESET RESET
-#define KC_RST KC_RESET
+#define KC_RST KC_RESET
-#define UC_IRNY UC(0x2E2E)
-#define UC_CLUE UC(0x203D)
+#define UC_IRNY UC(0x2E2E)
+#define UC_CLUE UC(0x203D)
diff --git a/users/kuchosauronad0/rgblight_user.c b/users/kuchosauronad0/rgblight_user.c
new file mode 100644
index 0000000000..63e412c557
--- /dev/null
+++ b/users/kuchosauronad0/rgblight_user.c
@@ -0,0 +1,156 @@
+#include "rgblight_user.h"
+extern rgblight_config_t rgblight_config;
+bool has_initialized;
+uint8_t base_hue; // Hue value of base state
+uint8_t base_sat; // Saturation value of base state
+uint8_t base_val; // Brightness value of base state
+uint8_t base_mod; // Animation mode of the base state
+
+void rgblight_savebase(void) { // Save the current settings to ram
+ base_hue = rgblight_config.hue;
+ base_sat = rgblight_config.sat;
+ base_val = rgblight_config.val;
+ base_mod = rgblight_config.mode;
+}
+void rgblight_loadbase(void) { // Load settings from ram to eeprom
+ rgblight_mode( base_mod );
+ rgblight_sethsv_eeprom_helper(base_hue, base_sat, base_val, true);
+}
+
+
+
+bool process_record_user_rgb(uint16_t keycode, keyrecord_t *record) {
+ if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) {
+ keycode = keycode & 0xFF;
+ }
+ switch (keycode) {
+ case KC_RGB_T: // Switch between underglow layer indication and normal qmk behaviour
+#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE)
+ if (record->event.pressed) {
+ userspace_config.rgb_layer_change ^= 1;
+ xprintf("rgblight layer change [EEPROM]: %u\n", userspace_config.rgb_layer_change);
+ eeconfig_update_user(userspace_config.raw);
+ if (userspace_config.rgb_layer_change) {
+ layer_state_set(layer_state); // Immediately set the layer color (looks better)
+ }
+ }
+#endif // RGBLIGHT_ENABLE
+ return false;
+ break;
+#ifdef RGBLIGHT_ENABLE
+ case RGB_MODE_FORWARD ... RGB_MODE_GRADIENT: // quantum_keycodes.h L400 for definitions
+ if (record->event.pressed) { // This disables layer indication, as it's assumed that if you're changing this ... you want that disabled
+ if (userspace_config.rgb_layer_change) {
+ userspace_config.rgb_layer_change = false;
+ xprintf("rgblight layer change [EEPROM]: %u\n", userspace_config.rgb_layer_change);
+ eeconfig_update_user(userspace_config.raw);
+ }
+ }
+ return true;
+ break;
+#endif // RGBLIGHT_ENABLE
+ }
+ return true;
+}
+
+void keyboard_post_init_rgb(void) {
+# if defined(RGBLIGHT_ENABLE) || defined(RGBLIGHT_STARTUP_ANIMATION)
+ bool is_enabled = rgblight_config.enable;
+ if (userspace_config.rgb_layer_change) {
+ rgblight_enable_noeeprom();
+ }
+ if (rgblight_config.enable) {
+ layer_state_set_user(layer_state);
+ uint16_t old_hue = rgblight_config.hue;
+ rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
+ for (uint16_t i = 255; i > 0; i--) {
+ rgblight_sethsv_noeeprom((i + old_hue) % 255, 255, 255);
+ wait_ms(5);
+ }
+ }
+ if (!is_enabled) {
+ rgblight_disable_noeeprom();
+ }
+# endif // !RGBLIGHT_ENABLE || RGBLIGHT_STARTUP_ANIMATION
+ layer_state_set_user(layer_state);
+}
+
+void matrix_scan_rgb(void) {
+# ifdef INDICATOR_LIGHTS
+ matrix_scan_indicator();
+# endif
+}
+
+layer_state_t layer_state_set_rgb(layer_state_t state) {
+# ifdef RGBLIGHT_ENABLE
+ if (userspace_config.rgb_layer_change) {
+ switch (biton32(state)) { // _RAISE, _LOWER and _ADJUST use a custom color and the breathing effect
+ case _RAISE:
+ rgblight_sethsv_noeeprom_green();
+ rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING + 3);
+ break;
+ case _LOWER:
+ rgblight_sethsv_noeeprom_red();
+ rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING + 3);
+ break;
+ case _ADJUST:
+ rgblight_sethsv_noeeprom_white();
+ rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING + 2);
+ break;
+ default: // Use a solid color for normal layers
+ switch (biton32(default_layer_state)) {
+ case _QWERTY:
+ rgblight_sethsv_noeeprom_magenta();
+ break;
+ case _COLEMAK:
+ rgblight_sethsv_noeeprom_green();
+ break;
+ case _DVORAK:
+ rgblight_sethsv_noeeprom_blue();
+ break;
+ case _WORKMAN:
+ rgblight_sethsv_noeeprom_goldenrod();
+ break;
+ case _PLOVER:
+ rgblight_sethsv_noeeprom_pink();
+ break;
+ default:
+ rgblight_sethsv_noeeprom_white();
+ break;
+ }
+ biton32(state) == _MODS ? rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING) : rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); // if _MODS layer is on, then breath to denote it
+ break;
+ }
+ }
+# endif // !RGBLIGHT_ENABLE
+ return state;
+}
+
+#ifdef INDICATOR_LIGHTS
+void matrix_scan_indicator(void) {
+ if (has_initialized) {
+ set_rgb_indicators(get_mods(), host_keyboard_leds(), get_oneshot_mods());
+ }
+}
+#endif // !INDICATOR_LIGHTS
+
+void rgblight_fade_helper(bool direction){
+ // true: increase val = fade in
+ // false: decrease val = fade out
+ for (uint8_t index = 0; index < RGBLIGHT_VAL_STEP ; index++) {
+ direction ? rgblight_increase_val() : rgblight_decrease_val();
+ wait_ms(5);
+ }
+}
+void fadeflash_leds(uint8_t hue, uint8_t sat, uint8_t val){
+ // indicate success / fail of a leader sequence
+ // fade out, set new hue and saturation, fade in, fade out, set old color, fade in
+ // this is used in leader.c
+ // TODO: come up with a better name maybe
+ rgblight_fade_helper(false);
+ rgblight_sethsv_noeeprom(hue, sat, 0);
+ rgblight_fade_helper(true);
+ rgblight_fade_helper(false);
+ rgblight_sethsv_noeeprom(base_hue, base_sat, 0);
+ rgblight_fade_helper(true);
+}
diff --git a/users/kuchosauronad0/rgblight_user.h b/users/kuchosauronad0/rgblight_user.h
new file mode 100644
index 0000000000..eab15b8325
--- /dev/null
+++ b/users/kuchosauronad0/rgblight_user.h
@@ -0,0 +1,23 @@
+#pragma once
+#include "kuchosauronad0.h"
+
+typedef struct {
+ bool enabled;
+ uint8_t hue;
+ uint16_t timer;
+ uint8_t life;
+} rgblight_fadeout;
+const uint8_t RGBLIGHT_FADE_SPEED[6] PROGMEM;
+
+layer_state_t layer_state_set_rgb(layer_state_t state);
+layer_state_t default_layer_state_set_rgb(layer_state_t state);
+
+bool process_record_user_rgb(uint16_t keycode, keyrecord_t *record);
+void scan_rgblight_fadeout(void);
+void keyboard_post_init_rgb(void);
+void matrix_scan_rgb(void);
+void rgblight_sethsv_default_helper(uint8_t index);
+void rgblight_savebase(void);
+void rgblight_loadbase(void);
+void rgblight_fade_helper(bool direction);
+void fadeflash_leds(uint8_t hue, uint8_t sat, uint8_t val);
diff --git a/users/kuchosauronad0/rules.mk b/users/kuchosauronad0/rules.mk
index ad13083732..b844d12c92 100644
--- a/users/kuchosauronad0/rules.mk
+++ b/users/kuchosauronad0/rules.mk
@@ -2,10 +2,11 @@ SRC += kuchosauronad0.c \
process_records.c
LINK_TIME_OPTIMIZATION_ENABLE = yes
+SPACE_CADET_ENABLE = no
-#ifneq ("$(wildcard $(USER_PATH)/secrets.c)","")
-# SRC += secrets.c
-#endif
+ifneq ($(strip $(RGBLIGHT_ENABLE)),yes )
+ SRC += rgblight_user.c
+endif
ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
SRC += tap_dances.c
@@ -14,6 +15,7 @@ endif
ifeq ($(strip $(ENCODER_ENABLE)), yes)
SRC += encoder.c
endif
+
ifeq ($(strip $(COMBO_ENABLE)), yes)
SRC += combo.c
endif
diff --git a/users/kuchosauronad0/wrappers.h b/users/kuchosauronad0/wrappers.h
index 3172c8a6d3..6dc19d935e 100644
--- a/users/kuchosauronad0/wrappers.h
+++ b/users/kuchosauronad0/wrappers.h
@@ -6,7 +6,7 @@ arguments, we need a wrapper in order for these definitions to be
expanded before being used as arguments to the LAYOUT_xxx macro.
*/
#if (!defined(LAYOUT) && defined(KEYMAP))
-#define LAYOUT KEYMAP
+# define LAYOUT KEYMAP
#endif
#define LAYOUT_ergodox_wrapper(...) LAYOUT_ergodox(__VA_ARGS__)
@@ -16,6 +16,8 @@ expanded before being used as arguments to the LAYOUT_xxx macro.
#define LAYOUT_ortho_4x12_wrapper(...) LAYOUT_ortho_4x12(__VA_ARGS__)
#define LAYOUT_ortho_5x12_wrapper(...) LAYOUT_ortho_5x12(__VA_ARGS__)
+#define LAYOUT_collide39_base_wrapper(...) LAYOUT_collide39_base(__VA_ARGS__)
+
/*
Blocks for each of the four major keyboard layouts
Organized so we can quickly adapt and modify all of them
@@ -26,20 +28,30 @@ NOTE: These are all the same length. If you do a search/replace
then you need to add/remove underscores to keep the
lengths consistent.
*/
+
+#define ___________________BLANK___________________ _______, _______, _______, _______, _______
+
#ifdef TAP_DANCE_ENABLE
- #define _________________QWERTY_L1_________________ KC_Q, KC_DW, KC_EOL, KC_R, KC_TMX
- #define _________________QWERTY_L2_________________ KC_BOL, KC_S, KC_D, KC_NW, KC_G
- #define _________________QWERTY_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_PW
+# define _________________QWERTY_L1_________________ KC_Q, KC_DW, KC_EOL, KC_R, KC_TMX
+# define _________________QWERTY_L2_________________ KC_BOL, KC_S, KC_D, KC_NW, KC_G
+# define _________________QWERTY_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_PW
#else
- #define _________________QWERTY_L1_________________ KC_Q, KC_W, KC_E, KC_R, KC_T
- #define _________________QWERTY_L2_________________ KC_A, KC_S, KC_D, KC_F, KC_G
- #define _________________QWERTY_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B
+# define _________________QWERTY_L1_________________ KC_Q, KC_W, KC_E, KC_R, KC_T
+# define _________________QWERTY_L2_________________ KC_A, KC_S, KC_D, KC_F, KC_G
+# define _________________QWERTY_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B
#endif
-#define _________________QWERTY_R1_________________ KC_Y, KC_U, KC_I, KC_O, KC_P
-#define _________________QWERTY_R2_________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN
-#define _________________QWERTY_R3_________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLASH
+#define _________________QWERTY_R1_________________ KC_Y, KC_U, KC_I, KC_O, KC_P
+#define _________________QWERTY_R2_________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN
+#define _________________QWERTY_R3_________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLASH
+#define _________________PLOVER_L1_________________ KC_Q, KC_W, KC_E, KC_R, KC_T
+#define _________________PLOVER_L2_________________ KC_A, KC_S, KC_D, KC_F, KC_G
+#define _________________PLOVER_L3_________________ KC_NO, KC_NO, KC_C, KC_V, KC_NO
+
+#define _________________PLOVER_R1_________________ KC_Y, KC_U, KC_I, KC_O, KC_P
+#define _________________PLOVER_R2_________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN
+#define _________________PLOVER_R3_________________ KC_NO, KC_NO, KC_N, KC_M, KC_NO
#define _________________COLEMAK_L1________________ KC_Q, KC_W, KC_F, KC_P, KC_G
#define _________________COLEMAK_L2________________ KC_A, KC_R, KC_S, KC_T, KC_D
@@ -57,23 +69,21 @@ NOTE: These are all the same length. If you do a search/replace
#define ______________COLEMAK_MOD_DH_R2____________ KC_M, KC_N, KC_E, KC_I, KC_O
#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
+#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
-#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_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
-#define ________________DVORAK_AU_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_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
+#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
@@ -83,7 +93,6 @@ NOTE: These are all the same length. If you do a search/replace
#define _________________WORKMAN_R2________________ KC_Y, KC_N, KC_E, KC_O, KC_I
#define _________________WORKMAN_R3________________ KC_K, KC_L, KC_COMM, KC_DOT, KC_SLASH
-
#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
@@ -92,7 +101,6 @@ NOTE: These are all the same length. If you do a search/replace
#define _________________NORMAN_R2_________________ KC_Y, KC_N, KC_I, KC_O, KC_U
#define _________________NORMAN_R3_________________ KC_P, KC_M, KC_COMM, KC_DOT, KC_SLASH
-
#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
@@ -101,7 +109,6 @@ NOTE: These are all the same length. If you do a search/replace
#define _________________MALTRON_R2________________ KC_D, KC_T, KC_D, KC_O, KC_R
#define _________________MALTRON_R3________________ KC_DOT, KC_W, KC_K, KC_MINS, KC_X
-
#define _________________EUCALYN_L1________________ KC_SLSH, KC_COMM, KC_DOT, KC_F, KC_Q
#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_W
@@ -110,7 +117,6 @@ NOTE: These are all the same length. If you do a search/replace
#define _________________EUCALYN_R2________________ KC_G, KC_T, KC_K, KC_S, KC_N
#define _________________EUCALYN_R3________________ KC_B, KC_H, KC_J, KC_L, KC_SCLN
-
#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
@@ -119,7 +125,6 @@ NOTE: These are all the same length. If you do a search/replace
#define _____________CARPLAX_QFMLWY_R2_____________ KC_I, KC_A, KC_E, KC_H, KC_SCLN
#define _____________CARPLAX_QFMLWY_R3_____________ KC_P, KC_K, KC_COMM, KC_DOT, KC_SLSH
-
#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
@@ -128,7 +133,6 @@ NOTE: These are all the same length. If you do a search/replace
#define _____________CARPLAX_QGMLWB_R2_____________ KC_I, KC_A, KC_E, KC_O, KC_H
#define _____________CARPLAX_QGMLWB_R3_____________ KC_K, KC_P, KC_COMM, KC_DOT, KC_SLSH
-
#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
@@ -138,23 +142,23 @@ NOTE: These are all the same length. If you do a search/replace
#define _____________CARPLAX_QGMLWY_R3_____________ KC_K, KC_P, KC_COMM, KC_DOT, KC_SLSH
#ifdef UNICODE_ENABLE
-#define _______________UNICODE_L1__________________ UC_DISA,UC_DISA, UC_DISA, UC_DISA, UC_DISA
-#define _______________UNICODE_L2__________________ UC_DISA,UC_DISA, UC_DISA, UC_DISA, UC_DISA
-#define _______________UNICODE_L3__________________ UC_DISA,UC_DISA, UC_DISA, UC_DISA, UC_DISA
+# define _______________UNICODE_L1__________________ UC_DISA,UC_DISA, UC_DISA, UC_DISA, UC_DISA
+# define _______________UNICODE_L2__________________ UC_DISA,UC_DISA, UC_DISA, UC_DISA, UC_DISA
+# define _______________UNICODE_L3__________________ UC_DISA,UC_DISA, UC_DISA, UC_DISA, UC_DISA
-#define _______________UNICODE_R1__________________ UC_SHRG, UC_SHRG, UC_SHRG, UC_SHRG, UC_SHRG
-#define _______________UNICODE_R2__________________ UC_SHRG, UC_SHRG, UC_SHRG, UC_SHRG, UC_SHRG
-#define _______________UNICODE_R3__________________ UC_SHRG, UC_SHRG, UC_SHRG, UC_SHRG, UC_SHRG
+# define _______________UNICODE_R1__________________ UC_SHRG, UC_SHRG, UC_SHRG, UC_SHRG, UC_SHRG
+# define _______________UNICODE_R2__________________ UC_SHRG, UC_SHRG, UC_SHRG, UC_SHRG, UC_SHRG
+# define _______________UNICODE_R3__________________ UC_SHRG, UC_SHRG, UC_SHRG, UC_SHRG, UC_SHRG
#endif
#ifdef UNICODEMAP_ENABLE
-#define _______________UNICODE_L1__________________ X(SMRK), X(THINK), X(CLOWN), X(HUNDR), X(BANG)
-#define _______________UNICODE_L2__________________ X(GRIN), X(MONKEY), X(OKOK), X(EGGPL), X(LIT)
-#define _______________UNICODE_L3__________________ X(WEARY), X(UNAMU), X(EFFU), X(MONOCL), X(IRONY)
+# define _______________UNICODE_L1__________________ X(SMRK), X(THINK), X(CLOWN), X(HUNDR), X(BANG)
+# define _______________UNICODE_L2__________________ X(GRIN), X(MONKEY), X(OKOK), X(EGGPL), X(LIT)
+# define _______________UNICODE_L3__________________ X(WEARY), X(UNAMU), X(EFFU), X(MONOCL), X(IRONY)
-#define _______________UNICODE_R1__________________ X(DRUG0), X(THUP), X(INUP), X(DIZZY), X(COOL)
-#define _______________UNICODE_R2__________________ X(FIST0), X(FIST2),X(FIST3),X(FIST1), X(OKOK)
-#define _______________UNICODE_R3__________________ X(MNDBLWN), X(THDN), X(SPOCK),X(HOLE), X(DASH)
+# define _______________UNICODE_R1__________________ X(DRUG0), X(THUP), X(INUP), X(DIZZY), X(COOL)
+# define _______________UNICODE_R2__________________ X(FIST0), X(FIST2), X(FIST3), X(FIST1), X(OKOK)
+# define _______________UNICODE_R3__________________ X(MNDBLWN), X(THDN), X(SPOCK), X(HOLE), X(DASH)
#endif
#define ________________NUMBER_LEFT________________ KC_1, KC_2, KC_3, KC_4, KC_5
@@ -162,45 +166,47 @@ 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 _________________MEDIA_RIGHT_______________ KC_MUTE, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP
+#define _________________MEDIA_LEFT________________ KC_VOLD, KC_VOLD, KC_MUTE, KC_VOLU, KC_VOLU
+#define _________________LOWER_L1__________________ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC
+#define _________________LOWER_L2__________________ ___________________BLANK___________________
+#define _________________LOWER_L3__________________ _______, _______, _______, OS_UNI, TM_X
-#define _________________LOWER_L1__________________ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC
-#define _________________LOWER_L2__________________ ___________________BLANK___________________
-#define _________________LOWER_L3__________________ ___________________BLANK___________________
+#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_LEFT, KC_DOWN, KC_UP, KC_RGHT
-#define _________________LOWER_R1__________________ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN
-#define _________________LOWER_R2__________________ OS_UNI, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR
-#define _________________LOWER_R3__________________ TM_X, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+#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_HOME, KC_PGDN, KC_PGUP, KC_END
+#define _________________ADJUST_L1_________________ QWERTY, COLEMAK, DVORAK, WORKMAN, PLOVER
+#define _________________ADJUST_L2_________________ _________________FUNC_LEFT_________________
+#define _________________ADJUST_L3_________________ _________________MEDIA_LEFT________________
-#define _________________RAISE_L1__________________ ________________NUMBER_LEFT________________
-#define _________________RAISE_L2__________________ ___________________BLANK___________________
-#define _________________RAISE_L3__________________ ___________________BLANK___________________
+#define _________________ADJUST_R1_________________ SEC1, SEC2, SEC3, SEC4, SEC5
+#define _________________ADJUST_R2_________________ _________________FUNC_RIGHT________________
+#define _________________ADJUST_R3_________________ _________________MEDIA_RIGHT_______________
-#define _________________RAISE_R1__________________ ________________NUMBER_RIGHT_______________
-#define _________________RAISE_R2__________________ _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC
-#define _________________RAISE_R3__________________ _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
+#define _________________RGB_UP____________________ RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG
+#define _________________RGB_CENTER________________ MU_TOG , CK_TOGG, AU_ON, AU_OFF, AG_NORM
+#define _________________RGB_DOWN__________________ RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, KC_RGB_T
+#define _________________RGB_R1____________________ RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG
+#define _________________RGB_R2____________________ MU_TOG , CK_TOGG, AU_ON, AU_OFF, AG_NORM
+#define _________________RGB_R3____________________ RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, KC_RGB_T
+#define __________________GAMEPAD_L1_______________ _______, KC_Q, KC_W, KC_E, _______
+#define __________________GAMEPAD_L2_______________ _______, KC_A, KC_S, KC_D, _______
+#define __________________GAMEPAD_L3_______________ KC_1, KC_2, KC_3, KC_4, KC_5
-#define _________________ADJUST_L1_________________ ___________________BLANK___________________
-#define _________________ADJUST_L2_________________ _________________FUNC_LEFT_________________
-#define _________________ADJUST_L3_________________ AG_SWAP, QWERTY, COLEMAK, DVORAK, WORKMAN
+#define __________________GAMEPAD_R1_______________ _______, KC_U, KC_UP, KC_O, _______
+#define __________________GAMEPAD_R2_______________ _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______
+#define __________________GAMEPAD_R3_______________ KC_6, KC_7, KC_8, KC_9, KC_0
+/* vi: ft=c:tw=80:sw=2:ts=2:sts=2:et */
-#define _________________ADJUST_R1_________________ KC_SEC1, KC_SEC2, KC_SEC3, KC_SEC4, KC_SEC5
-#define _________________ADJUST_R2_________________ _________________FUNC_RIGHT________________
-#define _________________ADJUST_R3_________________ KC_MUTE, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT
-
-
-/*
-#define _________________RGB_L1____________________ RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG
-#define _________________RGB_L2____________________ MU_TOG , CK_TOGG, AU_ON, AU_OFF, AG_NORM
-#define _________________RGB_L3____________________ RGB_RMOD,RGB_HUD,RGB_SAD, RGB_VAD, KC_RGB_T
-#define _________________RGB_R1____________________ RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG
-#define _________________RGB_R2____________________ MU_TOG , CK_TOGG, AU_ON, AU_OFF, AG_NORM
-#define _________________RGB_R3____________________ RGB_RMOD,RGB_HUD,RGB_SAD, RGB_VAD, KC_RGB_T
-*/
-/* vi: ft=c:tw=80:sw=2:ts=2:sts=2:et
- */