macros.c 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. #include "d4mation.h"
  2. #include "tap-hold.h"
  3. #include "zalgo.h"
  4. #include "macros.h"
  5. bool zalgo_enabled = false;
  6. bool process_record_user( uint16_t keycode, keyrecord_t *record ) {
  7. switch ( keycode ) {
  8. case _GRAVE_ESC:
  9. /* Send ` on Tap, Esc on Hold */
  10. tap_or_hold( record, KC_GRAVE, KC_ESC );
  11. return false;
  12. break;
  13. case PHPOPEN:
  14. if ( record->event.pressed ) {
  15. tap_code16( S( KC_COMMA ) );
  16. tap_code16( S( KC_SLASH ) );
  17. tap_code( KC_P );
  18. tap_code( KC_H );
  19. tap_code( KC_P );
  20. }
  21. return false;
  22. break;
  23. case PHPCLSE:
  24. if ( record->event.pressed ) {
  25. tap_code16( S( KC_SLASH ) );
  26. tap_code16( S( KC_DOT ) );
  27. }
  28. return false;
  29. break;
  30. #ifdef UNICODE_ENABLE
  31. case AMENO:
  32. if ( record->event.pressed ) {
  33. send_unicode_string( "༼ つ ◕_◕ ༽つ" );
  34. }
  35. return false;
  36. break;
  37. case MAGIC:
  38. if ( record->event.pressed ) {
  39. send_unicode_string( "(∩ ͡° ͜ʖ ͡°)⊃━☆゚. *" );
  40. }
  41. return false;
  42. break;
  43. case LENNY:
  44. if ( record->event.pressed ) {
  45. send_unicode_string( "( ͡° ͜ʖ ͡°)" );
  46. }
  47. return false;
  48. break;
  49. case DISFACE:
  50. if ( record->event.pressed ) {
  51. send_unicode_string( "ಠ_ಠ" );
  52. }
  53. return false;
  54. break;
  55. case TFLIP:
  56. if ( record->event.pressed ) {
  57. send_unicode_string( "(╯°□°)╯︵┻━┻" );
  58. }
  59. return false;
  60. break;
  61. case TPUT:
  62. if ( record->event.pressed ) {
  63. send_unicode_string( "┬──┬ ノ( ゜-゜ノ)" );
  64. }
  65. return false;
  66. break;
  67. case SHRUG:
  68. if ( record->event.pressed ) {
  69. send_unicode_string( "¯\\_(ツ)_/¯" );
  70. }
  71. return false;
  72. break;
  73. case ZALGO: /* Toggles Zalgo Text mode */
  74. if ( record->event.pressed ) {
  75. zalgo_enabled = ! zalgo_enabled;
  76. }
  77. return false;
  78. break;
  79. #endif
  80. default:
  81. #ifdef UNICODE_ENABLE
  82. if ( zalgo_enabled ) {
  83. if ( keycode < KC_A || ( keycode > KC_0 && keycode < KC_MINUS ) || keycode > KC_SLASH ) {
  84. process_record_keymap( keycode, record );
  85. return true;
  86. }
  87. if ( record->event.pressed ) {
  88. zalgo_text( keycode );
  89. }
  90. return false;
  91. }
  92. #endif
  93. break;
  94. }
  95. process_record_keymap( keycode, record );
  96. return true;
  97. };