153 lines
		
	
	
		
			No EOL
		
	
	
		
			4.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			153 lines
		
	
	
		
			No EOL
		
	
	
		
			4.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| // based on drashna's but I think at this point it's a new axe
 | |
| 
 | |
| #include QMK_KEYBOARD_H
 | |
| #include "milestogo.h"
 | |
| #include <print.h>
 | |
| 
 | |
| __attribute__((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; }
 | |
| 
 | |
| bool move_is_on = false;  // track if we are in _MOV layer
 | |
| bool sym_is_on  = false;  // track if we are in _SYM layer
 | |
| 
 | |
| 
 | |
| 
 | |
| // Defines actions for global custom keycodes
 | |
| // Then runs the _keymap's record handier if not processed here
 | |
| bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | |
|     // static uint16_t spcmov_timer; // timer for spcmov key
 | |
| 
 | |
| #ifdef USE_BABBLEPASTE
 | |
|     if (keycode > BABBLE_START && keycode < BABBLE_END_RANGE) {
 | |
|         if (record->event.pressed) { 
 | |
|             babblePaste(keycode, 1);
 | |
|         } else {
 | |
|             babblePaste(keycode, 0);
 | |
|         }
 | |
|     }
 | |
| #endif
 | |
| 
 | |
|     switch (keycode) {
 | |
|         case KC_QWERTY:
 | |
|             if (record->event.pressed) {
 | |
|                 layer_off(_CDH);
 | |
|                 default_layer_set(_QWERTY);
 | |
|             }
 | |
|             break;
 | |
| 
 | |
|         case KC_CDH:
 | |
|             if (record->event.pressed) {
 | |
|                 layer_on(_CDH);
 | |
|                 default_layer_set(_CDH);
 | |
|             }
 | |
|             break;
 | |
| 
 | |
|         case TMUX:  // ctl-B
 | |
|             if (record->event.pressed) {
 | |
|                 tap_code16(C(KC_B));
 | |
|             }
 | |
|             break;
 | |
| 
 | |
|             /* Colemak mod-dh moves the D key to the qwerty V position
 | |
|                         This hack makes apple-V_position do what I mean */
 | |
|         case DHPASTE:
 | |
|             if (get_mods() & MOD_BIT(KC_LGUI)) {
 | |
|                 if (record->event.pressed) {
 | |
|                     clear_keyboard_but_mods();
 | |
|                     register_code(KC_V);
 | |
|                 } else {
 | |
|                     unregister_code(KC_V);
 | |
|                 }
 | |
|             } else {
 | |
|                 if (record->event.pressed) {
 | |
|                     register_code(KC_D);
 | |
|                 } else {
 | |
|                     unregister_code(KC_D);
 | |
|                 }
 | |
|             }
 | |
|             return false;
 | |
|             break;
 | |
| 
 | |
|         default:
 | |
|             return true;
 | |
|     }
 | |
| 
 | |
|     // normal keycode
 | |
|     return process_record_keymap(keycode, record);
 | |
| }
 | |
| 
 | |
| void babble_modeswitch_user(uint8_t mode) {
 | |
| #ifdef USE_BABLPASTE
 | |
|     extern uint8_t babble_mode; // still using global. why?
 | |
| 
 | |
| #    ifdef BABL_WINDOWS
 | |
|     if (babble_mode == BABL_WINDOWS_MODE) {
 | |
|         if (BABL_LED_INDEX > 0) {
 | |
|             rgblight_setrgb_at(RGBLIGHT_COLOR_MS, BABL_LED_INDEX);
 | |
|         } else {
 | |
|             rgblight_setrgb(RGBLIGHT_COLOR_MS);
 | |
|         }
 | |
|     }
 | |
| #    endif
 | |
| #    ifdef BABL_READMUX
 | |
|     if (babble_mode == BABL_READMUX_MODE) {
 | |
|         if (BABL_LED_INDEX > 0) {
 | |
|             rgblight_setrgb_at(RGBLIGHT_COLOR_READMUX, BABL_LED_INDEX);
 | |
|         } else {
 | |
|             rgblight_setrgb(RGBLIGHT_COLOR_READMUX);
 | |
|         }
 | |
|     }
 | |
| #    endif
 | |
| #    ifdef BABL_MAC
 | |
|     if (babble_mode == BABL_MAC_MODE) {
 | |
|         if (BABL_LED_INDEX > 0) {
 | |
|             rgblight_setrgb_at(RGBLIGHT_COLOR_MAC, BABL_LED_INDEX);
 | |
|         } else {
 | |
|             rgblight_setrgb(RGBLIGHT_COLOR_MAC);
 | |
|         }
 | |
|     }
 | |
| #    endif
 | |
| #    ifdef BABL_VI
 | |
|     if (babble_mode == BABL_VI_MODE) {
 | |
|         if (BABL_LED_INDEX > 0) {
 | |
|             rgblight_setrgb_at(RGBLIGHT_COLOR_VI, BABL_LED_INDEX);
 | |
|         } else {
 | |
|             rgblight_setrgb(RGBLIGHT_COLOR_VI);
 | |
|         }
 | |
|     }
 | |
| #    endif
 | |
| #    ifdef BABL_EMACS
 | |
|     if (babble_mode == BABL_EMACS_MODE) {
 | |
|         if (BABL_LED_INDEX > 0) {
 | |
|             rgblight_setrgb_at(RGBLIGHT_COLOR_EMACS, BABL_LED_INDEX);
 | |
|         } else {
 | |
|             rgblight_setrgb(RGBLIGHT_COLOR_EMACS);
 | |
|         }
 | |
|     }
 | |
| #    endif
 | |
| #    ifdef BABL_CHROMEOS
 | |
|     if (babble_mode == BABL_CHROMEOS_MODE) {
 | |
|         if (BABL_LED_INDEX > 0) {
 | |
|             rgblight_setrgb_at(RGBLIGHT_COLOR_CHROMEOS, BABL_LED_INDEX);
 | |
|         } else {
 | |
|             rgblight_setrgb(RGBLIGHT_COLOR_CHROMEOS);
 | |
|         }
 | |
|     }
 | |
| #    endif
 | |
| #    ifdef BABL_LINUX
 | |
|     if (babble_mode == BABL_LINUX_MODE) {
 | |
|         if (BABL_LED_INDEX > 0) {
 | |
|             rgblight_setrgb_at(RGBLIGHT_COLOR_LINUX, BABL_LED_INDEX);
 | |
|         } else {
 | |
|             rgblight_setrgb(RGBLIGHT_COLOR_LINUX);
 | |
|         }
 | |
|     }
 | |
| #    endif
 | |
| #endif  // bablepaste
 | |
| }
 | |
| 
 | |
| 
 | |
| // we always return true here, so that each keyboard can use it's own
 | |
| // led_update_kb() function
 | |
| bool led_update_user(led_t led_state ) {
 | |
|     return true;
 | |
| } | 
