160 lines
3 KiB
C
160 lines
3 KiB
C
|
#include "d4mation.h"
|
|||
|
#include "tap-hold.h"
|
|||
|
#include "zalgo.h"
|
|||
|
#include "macros.h"
|
|||
|
|
|||
|
bool zalgo_enabled = false;
|
|||
|
|
|||
|
bool process_record_user( uint16_t keycode, keyrecord_t *record ) {
|
|||
|
|
|||
|
switch ( keycode ) {
|
|||
|
|
|||
|
case _GRAVE_ESC:
|
|||
|
|
|||
|
/* Send ` on Tap, Esc on Hold */
|
|||
|
tap_or_hold( record, KC_GRAVE, KC_ESC );
|
|||
|
|
|||
|
return false;
|
|||
|
break;
|
|||
|
|
|||
|
case PHPOPEN:
|
|||
|
|
|||
|
if ( record->event.pressed ) {
|
|||
|
|
|||
|
tap_code16( S( KC_COMMA ) );
|
|||
|
tap_code16( S( KC_SLASH ) );
|
|||
|
|
|||
|
tap_code( KC_P );
|
|||
|
tap_code( KC_H );
|
|||
|
tap_code( KC_P );
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
return false;
|
|||
|
break;
|
|||
|
|
|||
|
case PHPCLSE:
|
|||
|
|
|||
|
if ( record->event.pressed ) {
|
|||
|
tap_code16( S( KC_SLASH ) );
|
|||
|
tap_code16( S( KC_DOT ) );
|
|||
|
}
|
|||
|
|
|||
|
return false;
|
|||
|
break;
|
|||
|
|
|||
|
#ifdef UNICODE_ENABLE
|
|||
|
|
|||
|
case AMENO: /* ༼ つ ◕_◕ ༽つ */
|
|||
|
|
|||
|
if ( record->event.pressed ) {
|
|||
|
|
|||
|
send_unicode_hex_string( "0F3C 0020 3064 0020 25D5 005F 25D5 0020 0F3D 3064" );
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
return false;
|
|||
|
break;
|
|||
|
|
|||
|
case MAGIC: /* (∩ ͡° ͜ʖ ͡°)⊃━☆゚. * */
|
|||
|
|
|||
|
if ( record->event.pressed ) {
|
|||
|
|
|||
|
send_unicode_hex_string( "0028 2229 0020 0361 00B0 0020 035C 0296 0020 0361 00B0 0029 2283 2501 2606 FF9F 002E 0020 002A" );
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
return false;
|
|||
|
break;
|
|||
|
|
|||
|
case LENNY: /* ( ͡° ͜ʖ ͡°) */
|
|||
|
|
|||
|
if ( record->event.pressed ) {
|
|||
|
|
|||
|
send_unicode_hex_string( "0028 0020 0361 00B0 0020 035C 0296 0020 0361 00b0 0029" );
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
return false;
|
|||
|
break;
|
|||
|
|
|||
|
case DISFACE: /* ಠ_ಠ */
|
|||
|
|
|||
|
if ( record->event.pressed ) {
|
|||
|
send_unicode_hex_string( "0CA0 005F 0CA0" );
|
|||
|
}
|
|||
|
|
|||
|
return false;
|
|||
|
break;
|
|||
|
|
|||
|
case TFLIP: /* (╯°□°)╯ ︵ ┻━┻ */
|
|||
|
|
|||
|
if ( record->event.pressed ) {
|
|||
|
|
|||
|
send_unicode_hex_string( "0028 256F 00b0 25A1 00B0 0029 256F FE35 253B 2501 253B" );
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
return false;
|
|||
|
break;
|
|||
|
|
|||
|
case TPUT: /* ┬──┬ ノ( ゜-゜ノ) */
|
|||
|
|
|||
|
if ( record->event.pressed ) {
|
|||
|
|
|||
|
send_unicode_hex_string( "252C 2500 2500 252C 0020 30CE 0028 0020 309C 002D 309C 30CE 0029" );
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
return false;
|
|||
|
break;
|
|||
|
|
|||
|
case SHRUG: /* ¯\_(ツ)_/¯ */
|
|||
|
|
|||
|
if ( record->event.pressed ) {
|
|||
|
|
|||
|
send_unicode_hex_string( "00AF 005C 005F 0028 30C4 0029 005F 002F 00AF" );
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
return false;
|
|||
|
break;
|
|||
|
|
|||
|
case ZALGO: /* Toggles Zalgo Text mode */
|
|||
|
|
|||
|
if ( record->event.pressed ) {
|
|||
|
zalgo_enabled = ! zalgo_enabled;
|
|||
|
}
|
|||
|
|
|||
|
return false;
|
|||
|
break;
|
|||
|
|
|||
|
#endif
|
|||
|
|
|||
|
default:
|
|||
|
|
|||
|
#ifdef UNICODE_ENABLE
|
|||
|
|
|||
|
if ( zalgo_enabled ) {
|
|||
|
|
|||
|
if ( keycode < KC_A || ( keycode > KC_0 && keycode < KC_MINUS ) || keycode > KC_SLASH ) {
|
|||
|
process_record_keymap( keycode, record );
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
if ( record->event.pressed ) {
|
|||
|
zalgo_text( keycode );
|
|||
|
}
|
|||
|
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
#endif
|
|||
|
|
|||
|
break;
|
|||
|
}
|
|||
|
|
|||
|
process_record_keymap( keycode, record );
|
|||
|
return true;
|
|||
|
|
|||
|
};
|