* Added userspace for d4mation. Included their keymap for the Atreus62 * Do not assign layer numbers manually * Remove some unneeded things per @drashna's recommendation * Fix some single line comments I missed * Update unicode macros to use send_unicode_hex_string() instead of process_unicode() * OBetter check for Unicode Enabled. Moved some checks into macros.c * Use eeconfig_init_user() to set default unicode input mode
		
			
				
	
	
		
			160 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			160 lines
		
	
	
		
			3.0 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;
 | ||
| 
 | ||
| }; |