[Keymap] Update to Userspace kuchosauronad0 (#6899)

* Add Plover layer, remove unused layers

* Add rgb indicator for success/failed sequences

* Add RGB effects

* Add RGB

* Add effects for start and end of a leader sequence

* Add PLOVER layer

* Add RGB

* Add RBG

* Minor clean up

* Minor clean up

* Minor clean up

* Minor clean up

* Rename rgb_light to rgblight_user and fix all references to it

* Remove unnecessary guards

Remove unnecessary matrix_scan in rgb post_init function

* remove trailing newline
This commit is contained in:
kuchosauronad0 2019-10-29 22:52:24 -07:00 committed by Drashna Jaelre
parent b1c2bf071b
commit 674fcc474c
10 changed files with 460 additions and 238 deletions

View File

@ -1,61 +1,62 @@
#pragma once #pragma once
#ifdef AUDIO_ENABLE #ifdef AUDIO_ENABLE
#define AUDIO_CLICKY # define DEFAULT_LAYER_SONGS \
#define STARTUP_SONG SONG(RICK_ROLL) { SONG(QWERTY_SOUND), SONG(COLEMAK_SOUND), SONG(DVORAK_SOUND), SONG(PLOVER_SOUND) }
#define GOODBYE_SONG SONG(SONIC_RING) # define AUDIO_CLICKY
#define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \ # define STARTUP_SONG SONG(RICK_ROLL)
SONG(COLEMAK_SOUND), \ # define GOODBYE_SONG SONG(SONIC_RING)
SONG(DVORAK_SOUND), \ # define AUDIO_CLICKY_FREQ_RANDOMNESS 1.5f
SONG(OVERWATCH_THEME) \ # ifndef __arm__
} # undef NOTE_REST
#define AUDIO_CLICKY_FREQ_RANDOMNESS 1.5f # define NOTE_REST 1.00f
// #ifdef RGBLIGHT_ENABLE # endif // !__arm__
// #define NO_MUSIC_MODE # define UNICODE_SONG_OSX SONG(RICK_ROLL)
// #endif //RGBLIGHT_ENABLE/ # define UNICODE_SONG_LNX SONG(RICK_ROLL)
// #ifndef __arm__ # define UNICODE_SONG_WIN SONG(RICK_ROLL)
// #undef NOTE_REST # define UNICODE_SONG_BSD SONG(RICK_ROLL)
// #define NOTE_REST 1.00f # define UNICODE_SONG_WINC SONG(RICK_ROLL)
// #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 #endif // !AUDIO_ENABLE
#ifdef RGBLIGHT_ENABLE #ifdef RGBLIGHT_ENABLE
#define RGBLIGHT_SLEEP # define RGBLIGHT_SLEEP
#undef RGBLIGHT_ANIMATIONS # undef RGBLIGHT_ANIMATIONS
#define RGBLIGHT_EFFECT_BREATHING # define RGBLIGHT_HUE_STEP 16
#define RGBLIGHT_EFFECT_SNAKE # define RGBLIGHT_SAT_STEP 16
#define RGBLIGHT_EFFECT_KNIGHT # 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 #endif // !RGBLIGHT_ENABLE
#ifndef ONESHOT_TAP_TOGGLE #ifndef ONESHOT_TAP_TOGGLE
#define ONESHOT_TAP_TOGGLE 2 # define ONESHOT_TAP_TOGGLE 2
#endif // !ONESHOT_TAP_TOGGLE #endif // !ONESHOT_TAP_TOGGLE
#ifndef ONESHOT_TIMEOUT #ifndef ONESHOT_TIMEOUT
#define ONESHOT_TIMEOUT 3000 # define ONESHOT_TIMEOUT 3000
#endif// !ONESHOT_TIMEOUT #endif// !ONESHOT_TIMEOUT
#ifndef QMK_KEYS_PER_SCAN #ifndef QMK_KEYS_PER_SCAN
#define QMK_KEYS_PER_SCAN 4 # define QMK_KEYS_PER_SCAN 4
#endif // !QMK_KEYS_PER_SCAN #endif // !QMK_KEYS_PER_SCAN
#if defined(LEADER_ENABLE) #if defined(LEADER_ENABLE)
#define LEADER_PER_KEY_TIMING # define LEADER_PER_KEY_TIMING
#define LEADER_TIMEOUT 250 # define LEADER_TIMEOUT 250
#endif // !LEADER_ENABLE #endif // !LEADER_ENABLE
#if defined(COMBO_ENABLE) #if defined(COMBO_ENABLE)
#define COMBO_COUNT 4 # define COMBO_COUNT 4
#define COMBO_TERM 150 # define COMBO_TERM 150
#endif // !COMBO_ENABLE #endif // !COMBO_ENABLE
#if defined(NKRO_ENABLE) #if defined(NKRO_ENABLE)
#define FORCE_NKRO # define FORCE_NKRO
#endif // !NKRO_ENABLE #endif // !NKRO_ENABLE
// this makes it possible to do rolling combos (zx) with keys that // this makes it possible to do rolling combos (zx) with keys that
@ -68,18 +69,18 @@
//#define RETRO_TAPPING //#define RETRO_TAPPING
#ifndef TAPPING_TOGGLE #ifndef TAPPING_TOGGLE
#define TAPPING_TOGGLE 1 # define TAPPING_TOGGLE 1
#endif #endif
#ifdef TAPPING_TERM #ifdef TAPPING_TERM
#undef TAPPING_TERM # undef TAPPING_TERM
#endif // !TAPPING_TERM #endif // !TAPPING_TERM
#if defined(KEYBOARD_handwired_kuchosauronad0_planckenstein) #if defined(KEYBOARD_handwired_kuchosauronad0_planckenstein)
#define TAPPING_TERM 185 # define TAPPING_TERM 185
#elif defined(KEYBOARD_c39) #elif defined(KEYBOARD_c39)
#define TAPPING_TERM 200 # define TAPPING_TERM 200
#else #else
#define TAPPING_TERM 180 # define TAPPING_TERM 180
#endif #endif
@ -87,4 +88,3 @@
#define MACRO_TIMER 5 #define MACRO_TIMER 5

View File

@ -19,10 +19,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
userspace_config_t userspace_config; userspace_config_t userspace_config;
#if (defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE) || defined(UCIS_ENABLE)) #if (defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE) || defined(UCIS_ENABLE))
#define KUCHOSAURONAD0_UNICODE_MODE UC_WINC # define KUCHOSAURONAD0_UNICODE_MODE UC_WINC
#else #else
// set to 2 for UC_WIN, set to 4 for UC_WINC # define KUCHOSAURONAD0_UNICODE_MODE 2 // set to 2 for UC_WIN, set to 4 for UC_WINC
#define KUCHOSAURONAD0_UNICODE_MODE 2
#endif #endif
@ -70,7 +69,7 @@ void shutdown_user (void) {
#ifdef RGBLIGHT_ENABLE #ifdef RGBLIGHT_ENABLE
rgblight_enable_noeeprom(); rgblight_enable_noeeprom();
rgblight_mode_noeeprom(1); rgblight_mode_noeeprom(1);
rgblight_setrgb_red(); rgblight_setrgb_teal();
#endif // RGBLIGHT_ENABLE #endif // RGBLIGHT_ENABLE
#ifdef RGB_MATRIX_ENABLE #ifdef RGB_MATRIX_ENABLE
// uint16_t timer_start = timer_read(); // 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. #ifdef TAP_DANCE_ENABLE // Run Diablo 3 macro checking code.
// run_diablo_macro_check(); // run_diablo_macro_check();
#endif // TAP_DANCE_ENABLE #endif // !TAP_DANCE_ENABLE
#ifdef RGBLIGHT_ENABLE #ifdef RGBLIGHT_ENABLE
matrix_scan_rgb(); matrix_scan_rgb();
#endif // RGBLIGHT_ENABLE #endif // !RGBLIGHT_ENABLE
matrix_scan_keymap(); matrix_scan_keymap();
} }
@ -171,6 +170,8 @@ void eeconfig_init_user(void) {
#else #else
eeprom_update_byte(EECONFIG_UNICODEMODE, KUCHOSAURONAD0_UNICODE_MODE); eeprom_update_byte(EECONFIG_UNICODEMODE, KUCHOSAURONAD0_UNICODE_MODE);
#endif #endif
eeconfig_init_keymap();
keyboard_init();
} }
// TMUX stuff // TMUX stuff

View File

@ -1,7 +1,4 @@
#ifndef USERSPACE #pragma once
#define USERSPACE
//#pragma once
#include "quantum.h" #include "quantum.h"
@ -11,23 +8,25 @@
#include "process_records.h" #include "process_records.h"
#ifdef TAP_DANCE_ENABLE #ifdef TAP_DANCE_ENABLE
#include "tap_dances.h" # include "tap_dances.h"
#define KC_TMX TD(TD_TMX) // tap1: 't' tap2: <CTL>+b # define KC_TMX TD(TD_TMX) // tap1: 't' tap2: <CTL>+b
#define KC_EOL TD(TD_EOL) // tap1: 'e' tap2: <CTL>+e # define KC_EOL TD(TD_EOL) // tap1: 'e' tap2: <CTL>+e
#define KC_BOL TD(TD_BOL) // tap1: 'a' tap2: <CTL>+a # define KC_BOL TD(TD_BOL) // tap1: 'a' tap2: <CTL>+a
#define KC_NW TD(TD_NW) // tap1: 'f' tap2: <ALT>+f # define KC_NW TD(TD_NW) // tap1: 'f' tap2: <ALT>+f
#define KC_PW TD(TD_PW) // tap1: 'b' tap2: <ALT>+b # define KC_PW TD(TD_PW) // tap1: 'b' tap2: <ALT>+b
#define KC_DW TD(TD_DW) // tap1: 'w' tap2: <CTL>+w # define KC_DW TD(TD_DW) // tap1: 'w' tap2: <CTL>+w
#endif //!TAP_DANCE_ENABLE #endif //!TAP_DANCE_ENABLE
#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE) #if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE)
#include "rgb_stuff.h" # include "rgblight_user.h"
#endif #endif
#if defined(UNICODEMAP_ENABLE) || defined(UNICODE_ENABLE) #if defined(UNICODEMAP_ENABLE) || defined(UNICODE_ENABLE)
#include "unicode.h" # include "unicode.h"
#endif //!UNICODE_ENABLE #endif //!UNICODE_ENABLE
// Keycode aliases // Keycode aliases
#define TM_X LCTL(KC_B) // Tmux control sequence #define TM_X LCTL(KC_B) // Tmux leader key
// Unix QoL macros // Unix QoL macros
#define MC_BOL LCTL(KC_A) // jump to beginning of line #define MC_BOL LCTL(KC_A) // jump to beginning of line
#define MC_EOL LCTL(KC_E) // jump to end of line #define MC_EOL LCTL(KC_E) // jump to end of line
@ -42,10 +41,11 @@ enum userspace_layers {
_COLEMAK, _COLEMAK,
_DVORAK, _DVORAK,
_WORKMAN, _WORKMAN,
_NORMAN, /* _NORMAN,
_MALTRON, _MALTRON,
_EUCALYN, _EUCALYN,
_CARPLAX, _CARPLAX, */
_PLOVER,
_UNICODE, _UNICODE,
_MODS, /* layer 8 now 9*/ _MODS, /* layer 8 now 9*/
_GAMEPAD, _GAMEPAD,
@ -57,18 +57,18 @@ enum userspace_layers {
_ADJUST, _ADJUST,
}; };
bool mod_key_press_timer (uint16_t code, uint16_t mod_code, bool pressed); 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 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); bool send_game_macro(const char *str, keyrecord_t *record, bool override);
void matrix_init_keymap(void); void matrix_init_keymap(void);
void shutdown_keymap(void); void shutdown_keymap(void);
void suspend_power_down_keymap(void); void suspend_power_down_keymap(void);
void suspend_wakeup_init_keymap(void); void suspend_wakeup_init_keymap(void);
void matrix_scan_keymap(void); void matrix_scan_keymap(void);
uint32_t layer_state_set_keymap (uint32_t state); uint32_t layer_state_set_keymap (uint32_t state);
uint32_t default_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 led_set_keymap(uint8_t usb_led);
void eeconfig_init_keymap(void); void eeconfig_init_keymap(void);
void tmux_prefix(void); void tmux_prefix(void);
void tmux_pane_zoom(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 We use custom codes here, so we can substitute the right stuff
*/ */
#ifdef TAP_DANCE_ENABLE #ifdef TAP_DANCE_ENABLE
#define KC_D3_1 TD(TD_D3_1) # define KC_D3_1 TD(TD_D3_1)
#define KC_D3_2 TD(TD_D3_2) # define KC_D3_2 TD(TD_D3_2)
#define KC_D3_3 TD(TD_D3_3) # define KC_D3_3 TD(TD_D3_3)
#define KC_D3_4 TD(TD_D3_4) # define KC_D3_4 TD(TD_D3_4)
#else // TAP_DANCE_ENABLE #else
#define KC_D3_1 KC_1 # define KC_D3_1 KC_1
#define KC_D3_2 KC_2 # define KC_D3_2 KC_2
#define KC_D3_3 KC_3 # define KC_D3_3 KC_3
#define KC_D3_4 KC_4 # define KC_D3_4 KC_4
#endif // TAP_DANCE_ENABLE #endif // !TAP_DANCE_ENABLE
#endif // !USERSPACE
/* vi: ft=c:tw=80:sw=2:ts=2:sts=2:et */ /* vi: ft=c:tw=80:sw=2:ts=2:sts=2:et */

View File

@ -1,77 +1,116 @@
#include "leader.h" #include "leader.h"
#ifdef RGBLIGHT_ENABLE
extern rgblight_config_t rgblight_config;
#endif
bool leader_succeed;
LEADER_EXTERNS(); LEADER_EXTERNS();
void matrix_scan_user(void){ void matrix_scan_user(void) {
static bool has_ran_yet; static bool has_ran_yet;
if (!has_ran_yet) { if (!has_ran_yet) {
has_ran_yet = true; has_ran_yet = true;
startup_user(); 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(); // run_diablo_macro_check();
#endif // TAP_DANCE_ENABLE #endif
#ifdef RGBLIGHT_ENABLE #ifdef RGBLIGHT_ENABLE
matrix_scan_rgb(); matrix_scan_rgb();
#endif // RGBLIGHT_ENABLE #endif
LEADER_DICTIONARY() { LEADER_DICTIONARY() {
leading = false; leader_succeed = leading = false;
leader_end();
SEQ_ONE_KEY(KC_W) { 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 // 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)); SEND_STRING(":w" SS_TAP(X_ENTER));
tmux_pane_switch_repeat(); tmux_pane_switch_repeat();
} leader_succeed = true;
} else
SEQ_ONE_KEY(KC_T) { SEQ_ONE_KEY(KC_T) {
// Send the Tmux Prefix // Send the Tmux Prefix
tmux_prefix(); tmux_prefix();
} leader_succeed = true;
} else
SEQ_ONE_KEY(KC_A) { SEQ_ONE_KEY(KC_A) {
// tmux: Send the prefix and press 'right' arrow // tmux: Send the prefix and press 'right' arrow
tmux_prefix(); tmux_prefix();
tap_code(KC_RIGHT); tap_code(KC_RIGHT);
} leader_succeed = true;
} else
SEQ_TWO_KEYS(KC_T, KC_T) { SEQ_TWO_KEYS(KC_T, KC_T) {
// tmux: Send the prefix to a nested session // tmux: Send the prefix to a nested session
tmux_prefix(); tmux_prefix();
tmux_prefix(); tmux_prefix();
} leader_succeed = true;
} else
SEQ_TWO_KEYS(KC_T, KC_R) { SEQ_TWO_KEYS(KC_T, KC_R) {
// tmux: Switch pane and repeat last action // tmux: Switch pane and repeat last action
tmux_pane_switch_repeat(); tmux_pane_switch_repeat();
} leader_succeed = true;
} else
SEQ_TWO_KEYS(KC_V, KC_Z){ SEQ_TWO_KEYS(KC_V, KC_Z){
// vim: Zoom pane // vim: Zoom pane
tap_code16(LCTL(KC_W)); tap_code16(LCTL(KC_W));
tap_code16(LSFT(KC_BSLS)); tap_code16(LSFT(KC_BSLS));
} leader_succeed = true;
} else
SEQ_TWO_KEYS(KC_V, KC_R) { SEQ_TWO_KEYS(KC_V, KC_R) {
// vim: Substitute and place cursor // vim: Substitute and place cursor
SEND_STRING(":%s///g" SS_TAP(X_LEFT)); SEND_STRING(":%s///g" SS_TAP(X_LEFT));
tap_code(KC_LEFT); tap_code(KC_LEFT);
tap_code(KC_LEFT); tap_code(KC_LEFT);
} leader_succeed = true;
} else
SEQ_TWO_KEYS(KC_V, KC_T) { SEQ_TWO_KEYS(KC_V, KC_T) {
// vim: move current pane to new tab // vim: move current pane to new tab
tap_code16(LCTL(KC_W)); tap_code16(LCTL(KC_W));
tap_code16(LSFT(KC_T)); 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){ SEQ_THREE_KEYS(KC_BSPC, KC_BSPC, KC_BSPC){
// Reset the keyboard // Reset the keyboard
reset_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
} }

View File

@ -25,7 +25,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
#endif //KEYLOGGER_ENABLE #endif //KEYLOGGER_ENABLE
switch (keycode) { switch (keycode) {
case KC_QWERTY ... KC_UNICODE: case KC_QWERTY ... KC_PLOVER:
if (record->event.pressed) { if (record->event.pressed) {
set_single_persistent_default_layer(keycode - KC_QWERTY); 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 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); } if (record->event.pressed) { userspace_config.is_overwatch ^= 1; eeconfig_update_user(userspace_config.raw); }
#ifdef RGBLIGHT_ENABLE #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 #endif //RGBLIGHT_ENABLE
break; break;
case KC_SALT: case KC_SALT:

View File

@ -2,9 +2,9 @@
#include "kuchosauronad0.h" #include "kuchosauronad0.h"
#if defined(KEYMAP_SAFE_RANGE) #if defined(KEYMAP_SAFE_RANGE)
#define PLACEHOLDER_SAFE_RANGE KEYMAP_SAFE_RANGE # define PLACEHOLDER_SAFE_RANGE KEYMAP_SAFE_RANGE
#else #else
#define PLACEHOLDER_SAFE_RANGE SAFE_RANGE # define PLACEHOLDER_SAFE_RANGE SAFE_RANGE
#endif #endif
enum userspace_custom_keycodes{ enum userspace_custom_keycodes{
@ -13,11 +13,7 @@ enum userspace_custom_keycodes{
KC_COLEMAK, // Sets default layer to COLEMAK KC_COLEMAK, // Sets default layer to COLEMAK
KC_DVORAK, // Sets default layer to DVORAK KC_DVORAK, // Sets default layer to DVORAK
KC_WORKMAN, // Sets default layer to WORKMAN KC_WORKMAN, // Sets default layer to WORKMAN
KC_NORMAN, // Sets default layer to NORMAN KC_PLOVER, // Sets default layer to PLOVER
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_MAKE, // Run keyboard's customized make command KC_MAKE, // Run keyboard's customized make command
KC_RGB_T, // Toggles RGB Layer Indication mode KC_RGB_T, // Toggles RGB Layer Indication mode
@ -33,36 +29,37 @@ enum userspace_custom_keycodes{
UC_SHRG, // ¯\_(ツ)_/¯ UC_SHRG, // ¯\_(ツ)_/¯
UC_DISA, // ಠ_ಠ UC_DISA, // ಠ_ಠ
MC_QT1, // "" MC_QT1, // ""
MC_QT2, // '' MC_QT2, // ''
MC_QT3, // `' MC_QT3, // `'
MC_PAR, // Parenthesis MC_PAR, // Parenthesis
MC_CUR, // Curly bracket MC_CUR, // Curly bracket
MC_SQR, // Square bracket MC_SQR, // Square bracket
MC_ABR, // Angle bracket MC_ABR, // Angle bracket
MCT_NEW, // New Tmux Session MCT_NEW, // New Tmux Session
MCT_SH, // Tmux horizontal split MCT_SH, // Tmux horizontal split
MCT_SV, // Tmux vertical split MCT_SV, // Tmux vertical split
MCT_ZM, // Tmux zoom MCT_ZM, // Tmux zoom
MCT_SCR, // Tmux scroll mode MCT_SCR, // Tmux scroll mode
MCT_UP, // Tmux up MCT_UP, // Tmux up
MCT_DW, // Tmux down MCT_DW, // Tmux down
MCT_LFT, // Tmux left MCT_LFT, // Tmux left
MCT_RGT, // Tmux right MCT_RGT, // Tmux right
MCV_B, // Vim begin of line MCV_B, // Vim begin of line
MCV_E, // Vim end of line MCV_E, // Vim end of line
MCT_F, // Vim for loop MCT_F, // Vim for loop
MCG_A, // Git add MCG_A, // Git add
MCG_C, // Git commit MCG_C, // Git commit
MCG_P, // Git push MCG_P, // Git push
MCG_R, // Git revert MCG_R, // Git revert
MCG_L, // Git log MCG_L, // Git log
MCG_S, // Git status MCG_S, // Git status
NEW_SAFE_RANGE //use "NEWPLACEHOLDER for keymap specific codes NEW_SAFE_RANGE //use "NEWPLACEHOLDER for keymap specific codes
}; };
bool process_record_secrets(uint16_t keycode, keyrecord_t *record); 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); bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
#define LOWER MO(_LOWER) #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_RSE OSL(_RAISE)
#define OS_UNI OSL(_UNICODE) #define OS_UNI OSL(_UNICODE)
#define KC_SEC1 KC_SECRET_1 #define SEC1 KC_SECRET_1
#define KC_SEC2 KC_SECRET_2 #define SEC2 KC_SECRET_2
#define KC_SEC3 KC_SECRET_3 #define SEC3 KC_SECRET_3
#define KC_SEC4 KC_SECRET_4 #define SEC4 KC_SECRET_4
#define KC_SEC5 KC_SECRET_5 #define SEC5 KC_SECRET_5
#define KC_SEC6 KC_SECRET_6 #define SEC6 KC_SECRET_6
#define QWERTY KC_QWERTY #define QWERTY KC_QWERTY
#define DVORAK KC_DVORAK #define DVORAK KC_DVORAK
#define COLEMAK KC_COLEMAK #define COLEMAK KC_COLEMAK
#define WORKMAN KC_WORKMAN #define WORKMAN KC_WORKMAN
#define UNICODE KC_UNICODE #define PLOVER KC_PLOVER
#define KC_RESET RESET #define KC_RESET RESET
#define KC_RST KC_RESET #define KC_RST KC_RESET
#define UC_IRNY UC(0x2E2E) #define UC_IRNY UC(0x2E2E)
#define UC_CLUE UC(0x203D) #define UC_CLUE UC(0x203D)

View File

@ -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);
}

View File

@ -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);

View File

@ -2,10 +2,11 @@ SRC += kuchosauronad0.c \
process_records.c process_records.c
LINK_TIME_OPTIMIZATION_ENABLE = yes LINK_TIME_OPTIMIZATION_ENABLE = yes
SPACE_CADET_ENABLE = no
#ifneq ("$(wildcard $(USER_PATH)/secrets.c)","") ifneq ($(strip $(RGBLIGHT_ENABLE)),yes )
# SRC += secrets.c SRC += rgblight_user.c
#endif endif
ifeq ($(strip $(TAP_DANCE_ENABLE)), yes) ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
SRC += tap_dances.c SRC += tap_dances.c
@ -14,6 +15,7 @@ endif
ifeq ($(strip $(ENCODER_ENABLE)), yes) ifeq ($(strip $(ENCODER_ENABLE)), yes)
SRC += encoder.c SRC += encoder.c
endif endif
ifeq ($(strip $(COMBO_ENABLE)), yes) ifeq ($(strip $(COMBO_ENABLE)), yes)
SRC += combo.c SRC += combo.c
endif endif

View File

@ -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. expanded before being used as arguments to the LAYOUT_xxx macro.
*/ */
#if (!defined(LAYOUT) && defined(KEYMAP)) #if (!defined(LAYOUT) && defined(KEYMAP))
#define LAYOUT KEYMAP # define LAYOUT KEYMAP
#endif #endif
#define LAYOUT_ergodox_wrapper(...) LAYOUT_ergodox(__VA_ARGS__) #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_4x12_wrapper(...) LAYOUT_ortho_4x12(__VA_ARGS__)
#define LAYOUT_ortho_5x12_wrapper(...) LAYOUT_ortho_5x12(__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 Blocks for each of the four major keyboard layouts
Organized so we can quickly adapt and modify all of them 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 then you need to add/remove underscores to keep the
lengths consistent. lengths consistent.
*/ */
#define ___________________BLANK___________________ _______, _______, _______, _______, _______
#ifdef TAP_DANCE_ENABLE #ifdef TAP_DANCE_ENABLE
#define _________________QWERTY_L1_________________ KC_Q, KC_DW, KC_EOL, KC_R, KC_TMX # 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_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_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_PW
#else #else
#define _________________QWERTY_L1_________________ KC_Q, KC_W, KC_E, KC_R, KC_T # 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_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_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B
#endif #endif
#define _________________QWERTY_R1_________________ KC_Y, KC_U, KC_I, KC_O, KC_P #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_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_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_L1________________ KC_Q, KC_W, KC_F, KC_P, KC_G
#define _________________COLEMAK_L2________________ KC_A, KC_R, KC_S, KC_T, KC_D #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_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 ______________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_R1_________________ KC_F, KC_G, KC_C, KC_R, KC_L
#define _________________DVORAK_L2_________________ KC_A, KC_O, KC_E, KC_U, KC_I #define _________________DVORAK_R2_________________ KC_D, KC_H, KC_T, KC_N, KC_S
#define _________________DVORAK_L3_________________ KC_SCLN, KC_Q, KC_J, KC_K, KC_X #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_AU_L1_______________ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y
#define _________________DVORAK_R2_________________ KC_D, KC_H, KC_T, KC_N, KC_S #define ________________DVORAK_AU_L2_______________ KC_O, KC_A, KC_E, KC_I, KC_U
#define _________________DVORAK_R3_________________ KC_B, KC_M, KC_W, KC_V, KC_Z #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
#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
#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_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_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_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 _________________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_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_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_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_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 _________________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_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_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_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_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 _________________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_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_L2________________ KC_A, KC_O, KC_E, KC_I, KC_U
#define _________________EUCALYN_L3________________ KC_Z, KC_X, KC_C, KC_V, KC_W #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_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 _________________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_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_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_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_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_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_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_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_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_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_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_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_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_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 #define _____________CARPLAX_QGMLWY_R3_____________ KC_K, KC_P, KC_COMM, KC_DOT, KC_SLSH
#ifdef UNICODE_ENABLE #ifdef UNICODE_ENABLE
#define _______________UNICODE_L1__________________ 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_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_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_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_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_R3__________________ UC_SHRG, UC_SHRG, UC_SHRG, UC_SHRG, UC_SHRG
#endif #endif
#ifdef UNICODEMAP_ENABLE #ifdef UNICODEMAP_ENABLE
#define _______________UNICODE_L1__________________ X(SMRK), X(THINK), X(CLOWN), X(HUNDR), X(BANG) # 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_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_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_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_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_R3__________________ X(MNDBLWN), X(THDN), X(SPOCK), X(HOLE), X(DASH)
#endif #endif
#define ________________NUMBER_LEFT________________ KC_1, KC_2, KC_3, KC_4, KC_5 #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_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 _________________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_R1__________________ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN
#define _________________LOWER_L2__________________ ___________________BLANK___________________ #define _________________LOWER_R2__________________ _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR
#define _________________LOWER_L3__________________ ___________________BLANK___________________ #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 _________________RAISE_L1__________________ ________________NUMBER_LEFT________________
#define _________________LOWER_R2__________________ OS_UNI, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR #define _________________RAISE_L2__________________ ___________________BLANK___________________
#define _________________LOWER_R3__________________ TM_X, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT #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 _________________ADJUST_R1_________________ SEC1, SEC2, SEC3, SEC4, SEC5
#define _________________RAISE_L2__________________ ___________________BLANK___________________ #define _________________ADJUST_R2_________________ _________________FUNC_RIGHT________________
#define _________________RAISE_L3__________________ ___________________BLANK___________________ #define _________________ADJUST_R3_________________ _________________MEDIA_RIGHT_______________
#define _________________RAISE_R1__________________ ________________NUMBER_RIGHT_______________ #define _________________RGB_UP____________________ RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG
#define _________________RAISE_R2__________________ _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC #define _________________RGB_CENTER________________ MU_TOG , CK_TOGG, AU_ON, AU_OFF, AG_NORM
#define _________________RAISE_R3__________________ _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END #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 __________________GAMEPAD_R1_______________ _______, KC_U, KC_UP, KC_O, _______
#define _________________ADJUST_L2_________________ _________________FUNC_LEFT_________________ #define __________________GAMEPAD_R2_______________ _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______
#define _________________ADJUST_L3_________________ AG_SWAP, QWERTY, COLEMAK, DVORAK, WORKMAN #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
*/