@ -10,14 +10,16 @@ extern keymap_config_t keymap_config;
// entirely and just use numbers.
// entirely and just use numbers.
# define _NUMNAV 0
# define _NUMNAV 0
# define _DIABLO 1
# define _DIABLO 1
# define _ MACROS 2
# define _ GAMEPAD 2
# define _ GAMEPAD 3
# define _ MACROS 3
# define _MEDIA 4
# define _MEDIA 4
# define _COVECUBE 5
enum custom_keycodes {
enum custom_keycodes {
KC_DIABLO_CLEAR = SAFE_RANGE ,
KC_DIABLO_CLEAR = SAFE_RANGE ,
KC_P00 ,
KC_P00 ,
KC_MAKE ,
KC_OVERWATCH ,
KC_OVERWATCH ,
KC_SALT ,
KC_SALT ,
KC_MORESALT ,
KC_MORESALT ,
@ -27,7 +29,8 @@ enum custom_keycodes {
KC_DOOMFIST ,
KC_DOOMFIST ,
KC_JUSTGAME ,
KC_JUSTGAME ,
KC_GLHF ,
KC_GLHF ,
KC_TORB
KC_TORB ,
KC_AIM
} ;
} ;
// Fillers to make layering more clear
// Fillers to make layering more clear
@ -37,23 +40,22 @@ enum custom_keycodes {
# define DIABLO TG(_DIABLO)
# define DIABLO TG(_DIABLO)
# define GAMEPAD TG(_GAMEPAD)
# define GAMEPAD TG(_GAMEPAD)
# define MEDIA TG(_MEDIA)
# define MEDIA TG(_MEDIA)
# define COVECUBE TG(_COVECUBE)
bool is_overwatch = false ;
bool is_overwatch = false ;
//This is both for underglow, and Diablo 3 macros
static uint8_t current_layer = 0 ;
bool has_layer_changed = true ;
# ifdef RGBLIGHT_ENABLE
# define rgblight_set_blue rgblight_sethsv (0xFF, 0xFF, 0xFF);
# define rgblight_set_blue rgblight_sethsv (0xFF, 0xFF, 0xFF);
# define rgblight_set_red rgblight_sethsv(0x00, 0xFF, 0xFF);
# define rgblight_set_red rgblight_sethsv (0x00, 0xFF, 0xFF);
# define rgblight_set_green rgblight_sethsv (0x78, 0xFF, 0xFF);
# define rgblight_set_green rgblight_sethsv (0x78, 0xFF, 0xFF);
# define rgblight_set_orange rgblight_sethsv (0x1E, 0xFF, 0xFF);
# define rgblight_set_orange rgblight_sethsv (0x1E, 0xFF, 0xFF);
# define rgblight_set_teal rgblight_sethsv (0xC3, 0xFF, 0xFF);
# define rgblight_set_teal rgblight_sethsv (0xC3, 0xFF, 0xFF);
# define rgblight_set_magenta rgblight_sethsv (0x12C, 0xFF, 0xFF);
# define rgblight_set_magenta rgblight_sethsv (0x12C, 0xFF, 0xFF);
# define rgblight_set_ urine rgblight_sethsv (0x3C, 0xFF, 0xFF);
# define rgblight_set_ yellow rgblight_sethsv (0x3C, 0xFF, 0xFF);
# define rgblight_set_purple rgblight_sethsv (0x10E, 0xFF, 0xFF);
# define rgblight_set_purple rgblight_sethsv (0x10E, 0xFF, 0xFF);
# endif
# ifdef TAP_DANCE_ENABLE
# ifdef TAP_DANCE_ENABLE
//define diablo macro timer variables
//define diablo macro timer variables
@ -122,65 +124,55 @@ qk_tap_dance_action_t tap_dance_actions[] = {
const uint16_t PROGMEM keymaps [ ] [ MATRIX_ROWS ] [ MATRIX_COLS ] = {
const uint16_t PROGMEM keymaps [ ] [ MATRIX_ROWS ] [ MATRIX_COLS ] = {
/* QWERTY
* , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - . , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .
* | Ins | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Bksp | Del |
* | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - | | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - |
* | - | Tab | Q | W | E | R | T | | Y | U | I | O | P | [ | ] |
* | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - | | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - |
* | = | Esc | A | S | D | F | G | | H | J | K | L | ; | " |Enter |
* | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - | | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - |
* | Pg Up | Shift | Z | X | C | V | B | | N | M | , | . | / | Home | End |
* | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - | | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - |
* | Pg Dn | Adjust | Ctrl | Alt | GUI | Lower | Space | | Space | Raise | Left | Down | Up | Right | \ |
* ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '
*/
[ _NUMNAV ] = KEYMAP (
[ _NUMNAV ] = KEYMAP (
MACROS , DIABLO , GAMEPAD , KC_NLCK , KC_S C LK, KC_ PTS C, KC_PSLS , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
MACROS , DIABLO , GAMEPAD , KC_NLCK , KC_SLCK , KC_COLN , KC_PSLS , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
MEDIA , XXXXXXX, XXXXXXX , KC_P7 , KC_P8 , KC_P9 , KC_PAST , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
MEDIA , KC_CALC , COVECUBE , KC_P7 , KC_P8 , KC_P9 , KC_PAST , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
KC_HOME , KC_DEL , KC_PGUP , KC_P4 , KC_P5 , KC_P6 , KC_PMNS , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
KC_HOME , KC_DEL , KC_PGUP , KC_P4 , KC_P5 , KC_P6 , KC_PMNS , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
KC_END , KC_UP , KC_PGDN , KC_P1 , KC_P2 , KC_P3 , KC_PPLS , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
KC_END , KC_UP , KC_PGDN , KC_P1 , KC_P2 , KC_P3 , KC_PPLS , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
KC_LEFT , KC_DOWN , KC_RGHT , KC_P0 , KC_P00 , KC_PDOT , KC_PENT , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX \
KC_LEFT , KC_DOWN , KC_RGHT , KC_P0 , KC_P00 , KC_PDOT , KC_PENT , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX \
) ,
) ,
/* Lower
* , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - . , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .
* | | ~ | F1 | F3 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
* | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - | | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - |
* | _ | | ! | @ | # | $ | % | | ^ | & | * | ( | ) | { | } |
* | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - | | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - |
* | + | | F1 | F2 | F3 | F4 | F5 | | F6 | _ | + | { | } | | |
* | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - | | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - |
* | | | F7 | F8 | F9 | F10 | F11 | | F12 | | | | | | |
* | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - | | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - |
* | | | | | | | | | | | Next | Vol - | Vol + | Play | |
* ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '
*/
[ _DIABLO ] = KEYMAP (
[ _DIABLO ] = KEYMAP (
_______, _______ , _______ , _______ , _______ , _______ , _______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
KC_ESC , DIABLO , KC_V , KC_D , XXXXXXX , XXXXXXX , KC_L , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
_______, _______ , _______ , _______ , _______ , _______ , _______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
KC_TAB , KC_S , KC_F , KC_I , KC_M , KC_T , KC_J , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
_______, _______ , _______ , _______ , _______ , _______ , _______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
KC_Q , KC_1 , KC_2 , KC_3 , KC_4 , KC_G , KC_F , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
_______, _______ , _______ , _______ , _______ , _______ , _______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
KC_LCTL , ( TD_DIABLO_1 ) , TD ( TD_DIABLO_2 ) , TD ( TD_DIABLO_3 ) , TD ( TD_DIABLO_4 ) , KC_Z , KC_DIABLO_CLEAR , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
_______, _______ , _______ , _______ , _______ , _______ , _______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX \
KC_LALT , KC_F4 , KC_F5 , KC_F8 , KC_F9 , KC_F10 , SFT_T ( KC_SPACE ) , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX \
) ,
) ,
[ _GAMEPAD ] = KEYMAP ( // Game pad layout designed primarily for Overwatch
MACROS , KC_ESC , GAMEPAD , KC_1 , KC_2 , KC_3 , KC_4 , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
MEDIA , KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
KC_Z , KC_LCTL , KC_A , KC_S , KC_D , KC_F , KC_G , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
KC_Y , KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
KC_F1 , KC_U , KC_I , KC_Y , KC_V , KC_SPC , KC_V , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX \
) ,
[ _MACROS ] = KEYMAP (
[ _MACROS ] = KEYMAP (
_______ , _______ , _______ , _______ , _______ , _______ , _______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
MACROS , XXXXXXX , GAMEPAD , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
_______ , _______ , _______ , _______ , _______ , _______ , _______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
_______ , _______ , _______ , _______ , _______ , _______ , _______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
KC_SYMM , KC_TORB , KC_DOOMFIST , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
_______ , _______ , _______ , _______ , _______ , _______ , _______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
KC_GLHF , KC_GOODGAME , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
_______ , _______ , _______ , _______ , _______ , _______ , _______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX \
KC_SALT , KC_MORESALT , KC_SALTHARD , KC_JUSTGAME , KC_AIM , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX \
) ,
[ _COVECUBE ] = KEYMAP (
COVECUBE , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX \
) ,
) ,
[ _MEDIA ] = KEYMAP (
[ _MEDIA ] = KEYMAP (
_______ , _______ , _______ , _______ , _______ , _______ , _______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
RESET, KC_MAKE , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
_______ , _______ , _______ , _______ , _______ , _______ , _______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
MEDIA, XXXXXXX , RGB_SAI , RGB_VAI , RGB_M_P , RGB_M_B , RGB_M_R , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
_______ , _______ , _______ , _______ , _______ , _______ , _______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
RGB_TOG, RGB_MOD , RGB_SAD , RGB_VAD , RGB_M_SW , RGB_M_SN , RGB_M_K , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
_______ , _______ , _______ , _______ , _______ , _______ , _______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
KC_MPLY, KC_MSTP , KC_MPRV , KC_MNXT , RGB_M_K , RGB_M_X , RGB_M_G , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
_______ , _______ , _______ , _______ , _______ , _______ , _______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX \
KC_MUTE, KC_VOLD , KC_VOLU , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX \
)
)
} ;
} ;
@ -193,6 +185,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
else {
else {
kc = KC_ENTER ;
kc = KC_ENTER ;
}
}
// Once a delay command is added to "SEND_STRING",
// replace these with X_BSPC and X_ENTER instead.
// and add "SS_TAP(kc) SS_DELAY(50)" to all of the
// SEND_STRING commands, to compress things.
switch ( keycode ) {
switch ( keycode ) {
# ifdef TAP_DANCE_ENABLE
# ifdef TAP_DANCE_ENABLE
case KC_DIABLO_CLEAR : // reset all Diable timers, disabling them
case KC_DIABLO_CLEAR : // reset all Diable timers, disabling them
@ -215,11 +211,19 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
}
return false ;
return false ;
break ;
break ;
case KC_MAKE :
if ( ! record - > event . pressed ) {
SEND_STRING ( " make " QMK_KEYBOARD " : " QMK_KEYMAP SS_TAP ( X_ENTER ) ) ;
}
return false ;
break ;
case KC_OVERWATCH : // reset all Diable timers, disabling them
case KC_OVERWATCH : // reset all Diable timers, disabling them
if ( record - > event . pressed ) {
if ( record - > event . pressed ) {
is_overwatch = ! is_overwatch ;
is_overwatch = ! is_overwatch ;
has_layer_changed = true ;
}
}
# ifdef RGBLIGHT_ENABLE
is_overwatch ? rgblight_mode ( 17 ) : rgblight_mode ( 18 ) ;
# endif
return false ;
return false ;
break ;
break ;
case KC_SALT :
case KC_SALT :
@ -227,9 +231,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
register_code ( kc ) ;
register_code ( kc ) ;
unregister_code ( kc ) ;
unregister_code ( kc ) ;
_delay_ms ( 50 ) ;
_delay_ms ( 50 ) ;
SEND_STRING ( " Salt, salt, salt... " ) ;
SEND_STRING ( " Salt, salt, salt... " SS_TAP ( X_ENTER ) ) ;
register_code ( KC_ENTER ) ;
unregister_code ( KC_ENTER ) ;
}
}
return false ;
return false ;
break ;
break ;
@ -238,9 +240,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
register_code ( kc ) ;
register_code ( kc ) ;
unregister_code ( kc ) ;
unregister_code ( kc ) ;
_delay_ms ( 50 ) ;
_delay_ms ( 50 ) ;
SEND_STRING ( " Please sir, can I have some more salt?! " ) ;
SEND_STRING ( " Please sir, can I have some more salt?! " SS_TAP ( X_ENTER ) ) ;
register_code ( KC_ENTER ) ;
unregister_code ( KC_ENTER ) ;
}
}
return false ;
return false ;
break ;
break ;
@ -249,9 +249,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
register_code ( kc ) ;
register_code ( kc ) ;
unregister_code ( kc ) ;
unregister_code ( kc ) ;
_delay_ms ( 50 ) ;
_delay_ms ( 50 ) ;
SEND_STRING ( " Your salt only makes my penis that much harder, and even more aggressive! " ) ;
SEND_STRING ( " Your salt only makes my penis that much harder, and even more aggressive! " SS_TAP ( X_ENTER ) ) ;
register_code ( KC_ENTER ) ;
unregister_code ( KC_ENTER ) ;
}
}
return false ;
return false ;
break ;
break ;
@ -260,9 +258,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
register_code ( kc ) ;
register_code ( kc ) ;
unregister_code ( kc ) ;
unregister_code ( kc ) ;
_delay_ms ( 50 ) ;
_delay_ms ( 50 ) ;
SEND_STRING ( " Good game, everyone! " ) ;
SEND_STRING ( " Good game, everyone! " SS_TAP ( X_ENTER ) ) ;
register_code ( KC_ENTER ) ;
unregister_code ( KC_ENTER ) ;
}
}
return false ;
return false ;
break ;
break ;
@ -271,9 +267,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
register_code ( kc ) ;
register_code ( kc ) ;
unregister_code ( kc ) ;
unregister_code ( kc ) ;
_delay_ms ( 50 ) ;
_delay_ms ( 50 ) ;
SEND_STRING ( " Good luck, have fun!!! " ) ;
SEND_STRING ( " Good luck, have fun!!! " SS_TAP ( X_ENTER ) ) ;
register_code ( KC_ENTER ) ;
unregister_code ( KC_ENTER ) ;
}
}
return false ;
return false ;
break ;
break ;
@ -282,48 +276,44 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
register_code ( kc ) ;
register_code ( kc ) ;
unregister_code ( kc ) ;
unregister_code ( kc ) ;
_delay_ms ( 50 ) ;
_delay_ms ( 50 ) ;
SEND_STRING ( " Left click to win! " ) ;
SEND_STRING ( " Left click to win! " SS_TAP ( X_ENTER ) ) ;
register_code ( KC_ENTER ) ;
unregister_code ( KC_ENTER ) ;
}
}
return false ;
return false ;
break ;
break ;
case KC_DOOMFIST :
case KC_JUSTGAME :
if ( ! record - > event . pressed ) {
if ( ! record - > event . pressed ) {
register_code ( kc ) ;
register_code ( kc ) ;
unregister_code ( kc ) ;
unregister_code ( kc ) ;
_delay_ms ( 50 ) ;
_delay_ms ( 50 ) ;
SEND_STRING ( " Hey, look at me. I'm Doomfist, and I'm overpowered! All I do is spam punches all day! I'm DPS, tank and defense, rolled into one! All I need is team healing to be complete! " ) ;
SEND_STRING ( " It may be a game, but if you don't want to actually try, please go play AI, so that people that actually want to take the game seriously and \" get good \" have a place to do so without trolls like you throwing games. " SS_TAP ( X_ENTER ) ) ;
register_code ( KC_ENTER ) ;
unregister_code ( KC_ENTER ) ;
}
}
return false ;
return false ;
break ;
break ;
case KC_ JUSTGAME :
case KC_ TORB :
if ( ! record - > event . pressed ) {
if ( ! record - > event . pressed ) {
register_code ( kc ) ;
register_code ( kc ) ;
unregister_code ( kc ) ;
unregister_code ( kc ) ;
_delay_ms ( 50 ) ;
_delay_ms ( 50 ) ;
SEND_STRING ( " It may be a game, but if you don't want to actually try, please go play AI, so that people that actually want to take the game seriously and \" get good \" have a place to do so without trolls like you throwing games. " ) ;
SEND_STRING ( " That was positively riveting! SS_TAP(X_ENTER) " ) ;
register_code ( KC_ENTER ) ;
unregister_code ( KC_ENTER ) ;
}
}
return false ;
return false ;
break ;
break ;
case KC_ TORB :
case KC_ AIM :
if ( ! record - > event . pressed ) {
if ( ! record - > event . pressed ) {
register_code ( kc ) ;
register_code ( kc ) ;
unregister_code ( kc ) ;
unregister_code ( kc ) ;
_delay_ms ( 50 ) ;
_delay_ms ( 50 ) ;
SEND_STRING ( " That was positively riveting!" ) ;
SEND_STRING ( " That aim is absolutely amazing. It's almost like you're a machine!" SS_TAP ( X_ENTER ) ) ;
register_code( KC_ENTER ) ;
_delay_ms( 50 ) ;
unregister_code( KC_ENTER ) ;
SEND_STRING( " Wait! That aim is TOO good! You're clearly using an aim hack! CHEATER! " SS_TAP ( X_ENTER ) ) ;
}
}
return false ;
return false ;
break ;
break ;
}
}
return true ;
return true ;
}
}
@ -332,7 +322,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
// Sends the key press to system, but only if on the Diablo layer
// Sends the key press to system, but only if on the Diablo layer
void send_diablo_keystroke ( uint8_t diablo_key ) {
void send_diablo_keystroke ( uint8_t diablo_key ) {
if ( current_ layer = = _DIABLO ) {
if ( biton32 ( layer_state) = = _DIABLO ) {
switch ( diablo_key ) {
switch ( diablo_key ) {
case 0 :
case 0 :
SEND_STRING ( " 1 " ) ;
SEND_STRING ( " 1 " ) ;
@ -366,48 +356,51 @@ void run_diablo_macro_check(void) {
# endif
# endif
void matrix_init_user ( void ) { // Runs boot tasks for keyboard
# ifdef RGBLIGHT_ENABLE
rgblight_enable ( ) ;
rgblight_set_teal ;
rgblight_mode ( 1 ) ;
# endif
} ;
void matrix_scan_user ( void ) { // runs frequently to update info
void matrix_scan_user ( void ) { // runs frequently to update info
uint8_t layer = biton32 ( layer_state ) ;
# ifdef TAP_DANCE_ENABLE
// Run Diablo 3 macro checking code.
run_diablo_macro_check ( ) ;
# endif
} ;
if ( layer ! = current_layer ) {
has_layer_changed = true ;
current_layer = layer ;
}
// Check layer, and apply color if its changed since last check
if ( has_layer_changed ) {
switch ( layer ) {
uint32_t layer_state_set_kb ( uint32_t state ) {
# ifdef RGBLIGHT_ENABLE
rgblight_enable ( ) ;
switch ( biton32 ( state ) ) {
case _NUMNAV :
case _NUMNAV :
rgblight_set_teal ;
rgblight_set_teal ;
rgblight_mode ( 2 ) ;
rgblight_mode ( 2 ) ;
break ;
break ;
case _MACROS :
case _MACROS :
rgblight_set_orange ;
rgblight_set_orange ;
if ( is_overwatch ) {
is_overwatch ? rgblight_mode ( 17 ) : rgblight_mode ( 18 ) ;
rgblight_mode ( 17 ) ;
}
else {
rgblight_mode ( 18 ) ;
}
break ;
break ;
case _DIABLO :
case _DIABLO :
rgblight_set_red ;
rgblight_set_red ;
rgblight_mode ( 5 ) ;
rgblight_mode ( 5 ) ;
break ;
break ;
case _GAMEPAD :
case _GAMEPAD :
rgblight_set_urine ;
rgblight_set_yellow ;
rgblight_mode ( 1 ) ;
rgblight_mode ( 1 ) ;
break ;
break ;
case _MEDIA :
case _MEDIA :
rgblight_set_blue ;
rgblight_set_blue ;
rgblight_mode ( 1 ) ;
rgblight_mode ( 1 ) ;
break ;
break ;
case _COVECUBE :
rgblight_set_green ;
rgblight_mode ( 2 ) ;
}
}
has_layer_changed = false ;
}
# ifdef TAP_DANCE_ENABLE
// Run Diablo 3 macro checking code.
run_diablo_macro_check ( ) ;
# endif
# endif
} ;
return state ;
}