* Add woodpad
* Cleanup
* Remove misc layouts for woodpad
* Move woodpad to handwired
* Updated RGB Underglow info
* Cleanup macros
* Tweaked RGB lighting stuff
* Start to merge orthodox/ergodox keymaps (persistant layers)
* Add woodpad
* Add forced NKRO
* Added default layer (qwerty/colemak/dvorak) detection to RGB Underglow
* Updated macros and added workman keymaps
* Fixed RGB lighting for Workman layout
* Add leader keys
* Remove force NKRO
* Add Viterbi one handed layout and minor tweaks to others
* Finishing up Viterbi keyboard layout, and NKRO tweaks to other layouts
* Made "make" keystroke universal
* Clean up and updates of drashna keymaps
* Add workman layer to planck
* Update to keymaps
* Fix makefile toggle code in ez keymap
Finish adding RGB code to orthodox
* Updated RGB Underglow layer indication code due to discovery of the layer_state_set_kb function
* Remove unnecessary planck layout
* Fixed Workman song
* update make command and added lit reset
* Fixed formatting to fall in line with official standards
* Minor tweaks
* Removed Leader Keys from Ergodox EZ Keymap
Added KC_RESET that resets board and sets underglow to red
* Tweak reset code
* Cleanup
* Remove misc layouts for woodpad
* Move woodpad to handwired
* Updated RGB Underglow info
* Cleanup macros
* Tweaked RGB lighting stuff
* Start to merge orthodox/ergodox keymaps (persistant layers)
* Add forced NKRO
* Added default layer (qwerty/colemak/dvorak) detection to RGB Underglow
* Updated macros and added workman keymaps
* Fixed RGB lighting for Workman layout
* Add leader keys
* Remove force NKRO
* Add Viterbi one handed layout and minor tweaks to others
* Finishing up Viterbi keyboard layout, and NKRO tweaks to other layouts
* Made "make" keystroke universal
* Clean up and updates of drashna keymaps
* Add workman layer to planck
* Update to keymaps
* Fix makefile toggle code in ez keymap
Finish adding RGB code to orthodox
* Updated RGB Underglow layer indication code due to discovery of the layer_state_set_kb function
* Remove unnecessary planck layout
* Fixed Workman song
* update make command and added lit reset
* Fixed formatting to fall in line with official standards
* Minor tweaks
* Removed Leader Keys from Ergodox EZ Keymap
Added KC_RESET that resets board and sets underglow to red
* Tweak reset code
* Fix rebasing issues
* remove head files
* Fix "macro" issue
* Rename ez keymaps for userspace
* Revert "Rename ez keymaps for userspace"
This reverts commit c25425911852e41711a5f0273b5741adb16e5bd4.
* Renamed Ergodox EZ layouts so that all of my personal layouts are on the same name, in prep for using userspaces
* Fix ergodox code
* Remove "drashna-ez" keymap as it's no longer needed
caseKC_DIABLO_CLEAR:// reset all Diable timers, disabling them
if(record->event.pressed){
uint8_tdtime;
for(dtime=0;dtime<4;dtime++){
diablo_key_time[dtime]=diablo_times[0];
}
}
returnfalse;
break;
caseKC_DIABLO_CLEAR:// reset all Diable timers, disabling them
if(record->event.pressed){
uint8_tdtime;
for(dtime=0;dtime<4;dtime++){
diablo_key_time[dtime]=diablo_times[0];
}
}
returnfalse;
break;
#endif
caseKC_OVERWATCH:
if(record->event.pressed){
is_overwatch=!is_overwatch;
}
caseKC_OVERWATCH:
if(record->event.pressed){
is_overwatch=!is_overwatch;
}
#ifdef RGBLIGHT_ENABLE
is_overwatch?rgblight_mode(17):rgblight_mode(18);
#endif
returnfalse;
break;
caseKC_SALT:
if(!record->event.pressed){
register_code(kc);
unregister_code(kc);
_delay_ms(50);
SEND_STRING("Salt, salt, salt...");
register_code(KC_ENTER);
unregister_code(KC_ENTER);
}
returnfalse;
break;
caseKC_MORESALT:
if(!record->event.pressed){
register_code(kc);
unregister_code(kc);
_delay_ms(50);
SEND_STRING("Please sir, can I have some more salt?!");
register_code(KC_ENTER);
unregister_code(KC_ENTER);
}
returnfalse;
break;
caseKC_SALTHARD:
if(!record->event.pressed){
register_code(kc);
unregister_code(kc);
_delay_ms(50);
SEND_STRING("Your salt only makes my penis that much harder, and even more aggressive!");
register_code(KC_ENTER);
unregister_code(KC_ENTER);
}
returnfalse;
break;
caseKC_GOODGAME:
if(!record->event.pressed){
register_code(kc);
unregister_code(kc);
_delay_ms(50);
SEND_STRING("Good game, everyone!");
register_code(KC_ENTER);
unregister_code(KC_ENTER);
}
returnfalse;
break;
caseKC_GLHF:
if(!record->event.pressed){
register_code(kc);
unregister_code(kc);
_delay_ms(50);
SEND_STRING("Good luck, have fun!!!");
register_code(KC_ENTER);
unregister_code(KC_ENTER);
}
returnfalse;
break;
caseKC_SYMM:
if(!record->event.pressed){
register_code(kc);
unregister_code(kc);
_delay_ms(50);
SEND_STRING("Left click to win!");
register_code(KC_ENTER);
unregister_code(KC_ENTER);
}
returnfalse;
break;
caseKC_DOOMFIST:
if(!record->event.pressed){
register_code(kc);
unregister_code(kc);
_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!");
register_code(KC_ENTER);
unregister_code(KC_ENTER);
}
returnfalse;
break;
caseKC_JUSTGAME:
if(!record->event.pressed){
register_code(kc);
unregister_code(kc);
_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("Please sir, can I have some more salt?!");
register_code(KC_ENTER);
unregister_code(KC_ENTER);
}
returnfalse;
break;
caseKC_SALTHARD:
if(!record->event.pressed){
register_code(kc);
unregister_code(kc);
_delay_ms(50);
SEND_STRING("Your salt only makes my penis that much harder, and even more aggressive!");
register_code(KC_ENTER);
unregister_code(KC_ENTER);
}
returnfalse;
break;
caseKC_GOODGAME:
if(!record->event.pressed){
register_code(kc);
unregister_code(kc);
_delay_ms(50);
SEND_STRING("Good game, everyone!");
register_code(KC_ENTER);
unregister_code(KC_ENTER);
}
returnfalse;
break;
caseKC_GLHF:
if(!record->event.pressed){
register_code(kc);
unregister_code(kc);
_delay_ms(50);
SEND_STRING("Good luck, have fun!!!");
register_code(KC_ENTER);
unregister_code(KC_ENTER);
}
returnfalse;
break;
caseKC_SYMM:
if(!record->event.pressed){
register_code(kc);
unregister_code(kc);
_delay_ms(50);
SEND_STRING("Left click to win!");
register_code(KC_ENTER);
unregister_code(KC_ENTER);
}
returnfalse;
break;
caseKC_DOOMFIST:
if(!record->event.pressed){
register_code(kc);
unregister_code(kc);
_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!");
register_code(KC_ENTER);
unregister_code(KC_ENTER);
}
returnfalse;
break;
caseKC_JUSTGAME:
if(!record->event.pressed){
register_code(kc);
unregister_code(kc);
_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("Good luck, have fun!!!"SS_TAP(X_ENTER));
}
returnfalse;
break;
caseKC_SYMM:
if(!record->event.pressed){
register_code(kc);
unregister_code(kc);
_delay_ms(50);
SEND_STRING("Left click to win!"SS_TAP(X_ENTER));
}
returnfalse;
break;
caseKC_JUSTGAME:
if(!record->event.pressed){
register_code(kc);
unregister_code(kc);
_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."SS_TAP(X_ENTER));
}
returnfalse;
break;
caseKC_TORB:
if(!record->event.pressed){
register_code(kc);
unregister_code(kc);
_delay_ms(50);
SEND_STRING("That was positively riveting! SS_TAP(X_ENTER)");
}
returnfalse;
break;
caseKC_AIM:
if(!record->event.pressed){
register_code(kc);
unregister_code(kc);
_delay_ms(50);
SEND_STRING("That aim is absolutely amazing. It's almost like you're a machine!"SS_TAP(X_ENTER));
_delay_ms(50);
SEND_STRING("Wait! That aim is TOO good! You're clearly using an aim hack! CHEATER!"SS_TAP(X_ENTER));
SEND_STRING("Good luck, have fun!!!"SS_TAP(X_ENTER));
}
returnfalse;
break;
caseKC_SYMM:
if(!record->event.pressed){
register_code(kc);
unregister_code(kc);
_delay_ms(50);
SEND_STRING("Left click to win!"SS_TAP(X_ENTER));
}
returnfalse;
break;
caseKC_JUSTGAME:
if(!record->event.pressed){
register_code(kc);
unregister_code(kc);
_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."SS_TAP(X_ENTER));
}
returnfalse;
break;
caseKC_TORB:
if(!record->event.pressed){
register_code(kc);
unregister_code(kc);
_delay_ms(50);
SEND_STRING("That was positively riveting! SS_TAP(X_ENTER)");
}
returnfalse;
break;
caseKC_AIM:
if(!record->event.pressed){
register_code(kc);
unregister_code(kc);
_delay_ms(50);
SEND_STRING("That aim is absolutely amazing. It's almost like you're a machine!"SS_TAP(X_ENTER));
_delay_ms(50);
SEND_STRING("Wait! That aim is TOO good! You're clearly using an aim hack! CHEATER!"SS_TAP(X_ENTER));
}
returnfalse;
break;
}
returntrue;
}
returntrue;
}
#ifdef TAP_DANCE_ENABLE
// Sends the key press to system, but only if on the Diablo layer
voidsend_diablo_keystroke(uint8_tdiablo_key){
if(biton32(layer_state)==_DIABLO){
switch(diablo_key){
case0:
SEND_STRING("1");
break;
case1:
SEND_STRING("2");
break;
case2:
SEND_STRING("3");
break;
case3:
SEND_STRING("4");
break;
}
if(biton32(layer_state)==_DIABLO){
switch(diablo_key){
case0:
SEND_STRING("1");
break;
case1:
SEND_STRING("2");
break;
case2:
SEND_STRING("3");
break;
case3:
SEND_STRING("4");
break;
}
}
}
// Checks each of the 4 timers/keys to see if enough time has elapsed
// Runs the "send string" command if enough time has passed, and resets the timer.