forked from mirrors/qmk_userspace
		
	Remove legacy sendstring keycodes (#18749)
This commit is contained in:
		
					parent
					
						
							
								c57330d340
							
						
					
				
			
			
				commit
				
					
						bad8c5992b
					
				
			
		
					 73 changed files with 581 additions and 557 deletions
				
			
		| 
						 | 
				
			
			@ -137,7 +137,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
		switch(keycode) {
 | 
			
		||||
			case MACRO_0:
 | 
			
		||||
        // Save for Web Macro.
 | 
			
		||||
				SEND_STRING(SS_LSFT(SS_LALT(SS_LCTRL("s"))));
 | 
			
		||||
				SEND_STRING(SS_LSFT(SS_LALT(SS_LCTL("s"))));
 | 
			
		||||
				return false;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -147,7 +147,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
		// Control + T
 | 
			
		||||
		case NEWTAB:
 | 
			
		||||
			if (record->event.pressed) {
 | 
			
		||||
				SEND_STRING(SS_LCTRL("t"));
 | 
			
		||||
				SEND_STRING(SS_LCTL("t"));
 | 
			
		||||
			}
 | 
			
		||||
			break;
 | 
			
		||||
		// Alt + F4
 | 
			
		||||
| 
						 | 
				
			
			@ -159,13 +159,13 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
		// Control + W
 | 
			
		||||
		case CLSTAB:
 | 
			
		||||
			if (record->event.pressed) {
 | 
			
		||||
				SEND_STRING(SS_LCTRL("w"));
 | 
			
		||||
				SEND_STRING(SS_LCTL("w"));
 | 
			
		||||
			}
 | 
			
		||||
			break;
 | 
			
		||||
		// Control + Shift + N
 | 
			
		||||
		case PRVWIN:
 | 
			
		||||
			if (record->event.pressed) {
 | 
			
		||||
				SEND_STRING(SS_LCTRL(SS_LSFT("n")));
 | 
			
		||||
				SEND_STRING(SS_LCTL(SS_LSFT("n")));
 | 
			
		||||
			}
 | 
			
		||||
			break;
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -64,11 +64,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
        switch(keycode) {
 | 
			
		||||
		case DIAERESIS:
 | 
			
		||||
			// assuming KC_CAPS is your Multi Key
 | 
			
		||||
			SEND_STRING(SS_TAP(X_CAPSLOCK)"\"");
 | 
			
		||||
			SEND_STRING(SS_TAP(X_CAPS_LOCK)"\"");
 | 
			
		||||
			return false;
 | 
			
		||||
		case EN_DASH:
 | 
			
		||||
			// assuming KC_CAPS is your Multi Key
 | 
			
		||||
			SEND_STRING(SS_TAP(X_CAPSLOCK)"--.");
 | 
			
		||||
			SEND_STRING(SS_TAP(X_CAPS_LOCK)"--.");
 | 
			
		||||
			return false;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -40,7 +40,7 @@ enum {
 | 
			
		|||
#define FINDER          LGUI(LALT(KC_SPACE)) //open the search bar for finding apps, docs in-computer, etc
 | 
			
		||||
#define COMPOSE_KEY    KC_SCRL //manually set on linux, to create chars via .Xcompose ()
 | 
			
		||||
#define COMPOSE_MAC     KC_F13 //manually set on mac using some tricks
 | 
			
		||||
#define X_COMPOSE_KEY    X_SCROLLLOCK //for use with macros
 | 
			
		||||
#define X_COMPOSE_KEY    X_SCROLL_LOCK //for use with macros
 | 
			
		||||
#define SHOW_WINDOWS    LCTL(KC_UP) //'Expose' on Mac, overview on linux. Just all the windows
 | 
			
		||||
#define WINDOW_LEFT LCTL(LGUI(LSFT(KC_LEFT))) //custom shortcut for this feature -- make window take up 50% left screen (using gui and ctl to make it os agnostic)
 | 
			
		||||
#define WINDOW_RIGHT LCTL(LGUI(LSFT(KC_RIGHT))) //custom shortcut for this feature -- make window take up 50% right screen (using gui and ctl to make it os agnostic)/fully custom shortcut, using ctl and gui keys so will need them both irrespective of os
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -146,7 +146,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
				shiftLED = false;
 | 
			
		||||
				if (timer_elapsed(shift_timer) < CUSTOM_TOGGLE_TIME && shift_singular_key) {
 | 
			
		||||
					//this was basically a toggle, so activate/deactivate caps lock.
 | 
			
		||||
					SEND_STRING(SS_TAP(X_CAPSLOCK));
 | 
			
		||||
					SEND_STRING(SS_TAP(X_CAPS_LOCK));
 | 
			
		||||
					capsLED = !capsLED;
 | 
			
		||||
				}
 | 
			
		||||
				layer_off(_SF);
 | 
			
		||||
| 
						 | 
				
			
			@ -216,7 +216,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
				} else {
 | 
			
		||||
					if (special_key_pressed[CK_BSPE-SAFE_RANGE]){
 | 
			
		||||
						//key was not activated, return macro activating proper, pre-long-tap key
 | 
			
		||||
						SEND_STRING(SS_TAP(X_BSLASH));
 | 
			
		||||
						SEND_STRING(SS_TAP(X_BACKSLASH));
 | 
			
		||||
						special_key_pressed[CK_BSPE-SAFE_RANGE] = 0;
 | 
			
		||||
					} else {
 | 
			
		||||
						//the short key was already sent, because another key was pressed.
 | 
			
		||||
| 
						 | 
				
			
			@ -416,7 +416,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
								SEND_STRING(SS_TAP(X_1));
 | 
			
		||||
							break;
 | 
			
		||||
							case CK_BSPE:
 | 
			
		||||
								SEND_STRING(SS_TAP(X_BSLASH));
 | 
			
		||||
								SEND_STRING(SS_TAP(X_BACKSLASH));
 | 
			
		||||
							break;
 | 
			
		||||
							case CK_QE:
 | 
			
		||||
								SEND_STRING(SS_TAP(X_QUOTE));
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -347,7 +347,7 @@ void send_french_accent(uint8_t letter, uint8_t accent) {
 | 
			
		|||
 | 
			
		||||
    if (onMac) {
 | 
			
		||||
        if (isCaps) {
 | 
			
		||||
            SEND_STRING(SS_TAP(X_CAPSLOCK));
 | 
			
		||||
            SEND_STRING(SS_TAP(X_CAPS_LOCK));
 | 
			
		||||
            register_code(KC_LALT);
 | 
			
		||||
            tap_code(osx_mod_key_map[accent]);
 | 
			
		||||
            unregister_code(KC_LALT);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -592,21 +592,21 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
            return true;
 | 
			
		||||
            break;
 | 
			
		||||
        case SHELL_EXPAND_OE_LOGPATTERN:
 | 
			
		||||
                SEND_STRING(SS_TAP(X_LEFT)"*CQW_HKEX"SS_TAP(X_END)"*.log"SS_LCTRL("x")SS_LSFT("8"));
 | 
			
		||||
                SEND_STRING(SS_TAP(X_LEFT)"*CQW_HKEX"SS_TAP(X_END)"*.log"SS_LCTL("x")SS_LSFT("8"));
 | 
			
		||||
            break;
 | 
			
		||||
        case SHELL_EXPAND_OE_TRANPATTERN:
 | 
			
		||||
                SEND_STRING(SS_TAP(X_LEFT)"*CQW_HKEX"SS_TAP(X_END)"*.tran"SS_LCTRL("x")SS_LSFT("8"));
 | 
			
		||||
                SEND_STRING(SS_TAP(X_LEFT)"*CQW_HKEX"SS_TAP(X_END)"*.tran"SS_LCTL("x")SS_LSFT("8"));
 | 
			
		||||
            break;
 | 
			
		||||
            case SHELL_DUMPTLOG:
 | 
			
		||||
                SEND_STRING(" | dumptlog - ");
 | 
			
		||||
                return true;
 | 
			
		||||
                break;
 | 
			
		||||
            case WINDOWS10_WORKSPACE_LEFT:
 | 
			
		||||
                SEND_STRING(SS_LGUI(SS_LCTRL(SS_TAP(X_LEFT))));
 | 
			
		||||
                SEND_STRING(SS_LGUI(SS_LCTL(SS_TAP(X_LEFT))));
 | 
			
		||||
                return true;
 | 
			
		||||
                break;
 | 
			
		||||
            case WINDOWS10_WORKSPACE_RIGHT:
 | 
			
		||||
                SEND_STRING(SS_LGUI(SS_LCTRL(SS_TAP(X_RIGHT))));
 | 
			
		||||
                SEND_STRING(SS_LGUI(SS_LCTL(SS_TAP(X_RIGHT))));
 | 
			
		||||
                break;
 | 
			
		||||
            case WINDOWS10_TASK_VIEW:
 | 
			
		||||
                SEND_STRING(SS_LGUI(SS_TAP(X_TAB)));
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -65,7 +65,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
 | 
			
		||||
        case MY_OTHER_MACRO:
 | 
			
		||||
            if (record->event.pressed) {
 | 
			
		||||
                SEND_STRING(SS_LCTRL("ac")); // selects all and copies
 | 
			
		||||
                SEND_STRING(SS_LCTL("ac")); // selects all and copies
 | 
			
		||||
                return false;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -101,7 +101,7 @@ void dance_finished(qk_tap_dance_state_t *state, void* user_data) {
 | 
			
		|||
    case SINGLE_TAP:
 | 
			
		||||
    {
 | 
			
		||||
      // VS Build: CTRL+SHIFT+B
 | 
			
		||||
      send_string_with_delay_P(PSTR(SS_DOWN(X_LCTRL) SS_DOWN(X_LSHIFT) "b" SS_UP(X_LSHIFT) SS_UP(X_LCTRL)), 10);
 | 
			
		||||
      send_string_with_delay_P(PSTR(SS_DOWN(X_LCTL) SS_DOWN(X_LSFT) "b" SS_UP(X_LSFT) SS_UP(X_LCTL)), 10);
 | 
			
		||||
      tap_dance_active = false;
 | 
			
		||||
      break;
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -250,9 +250,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
    case NLK:
 | 
			
		||||
    if (pressed) {
 | 
			
		||||
      toggle_numlock();
 | 
			
		||||
      SEND_STRING(SS_DOWN(X_NUMLOCK));
 | 
			
		||||
      SEND_STRING(SS_DOWN(X_NUM_LOCK));
 | 
			
		||||
    } else {
 | 
			
		||||
      SEND_STRING(SS_UP(X_NUMLOCK));
 | 
			
		||||
      SEND_STRING(SS_UP(X_NUM_LOCK));
 | 
			
		||||
    }
 | 
			
		||||
    break;
 | 
			
		||||
    
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -125,7 +125,7 @@ CHOREOGRAPH(TD_RGHT,
 | 
			
		|||
            /* Send a complex macro: C-x C-s Mod-t up.  (Save in
 | 
			
		||||
             * Emacs, switch to terminal and recall previous command,
 | 
			
		||||
             * hopefully a compile command.) */
 | 
			
		||||
            SEND_STRING(SS_DOWN(X_LCTRL) SS_TAP(X_X) SS_TAP(X_S) SS_UP(X_LCTRL)
 | 
			
		||||
            SEND_STRING(SS_DOWN(X_LCTL) SS_TAP(X_X) SS_TAP(X_S) SS_UP(X_LCTL)
 | 
			
		||||
                        SS_DOWN(X_LGUI) SS_TAP(X_T) SS_UP(X_LGUI) SS_TAP(X_UP)),
 | 
			
		||||
            layer_invert(1));
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -134,9 +134,9 @@ CHOREOGRAPH(TD_RGHT,
 | 
			
		|||
 * just sends C-x. */
 | 
			
		||||
 | 
			
		||||
CHOREOGRAPH(TD_C_X,
 | 
			
		||||
            SEND_STRING(SS_DOWN(X_LCTRL) SS_TAP(X_X)),
 | 
			
		||||
            SEND_STRING(SS_UP(X_LCTRL)),
 | 
			
		||||
            SEND_STRING(SS_DOWN(X_LCTRL) SS_TAP(X_X) SS_UP(X_LCTRL)),);
 | 
			
		||||
            SEND_STRING(SS_DOWN(X_LCTL) SS_TAP(X_X)),
 | 
			
		||||
            SEND_STRING(SS_UP(X_LCTL)),
 | 
			
		||||
            SEND_STRING(SS_DOWN(X_LCTL) SS_TAP(X_X) SS_UP(X_LCTL)),);
 | 
			
		||||
 | 
			
		||||
qk_tap_dance_action_t tap_dance_actions[] = {
 | 
			
		||||
    STEPS(TD_LEFT), STEPS(TD_RGHT), STEPS(TD_C_X)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -25,7 +25,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
    switch (keycode) {
 | 
			
		||||
    case CLEAR:
 | 
			
		||||
        if (record->event.pressed) {
 | 
			
		||||
            SEND_STRING(SS_LCTRL("a") SS_TAP(X_DELETE));
 | 
			
		||||
            SEND_STRING(SS_LCTL("a") SS_TAP(X_DELETE));
 | 
			
		||||
        }
 | 
			
		||||
        return false;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -53,7 +53,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
    switch (keycode) {
 | 
			
		||||
        case MACRO1:
 | 
			
		||||
            if (record->event.pressed) {
 | 
			
		||||
                SEND_STRING(SS_LCTRL("c") SS_DOWN(X_LALT) SS_TAP(X_TAB) SS_UP(X_LALT) SS_LCTRL("v") SS_TAP(X_TAB));
 | 
			
		||||
                SEND_STRING(SS_LCTL("c") SS_DOWN(X_LALT) SS_TAP(X_TAB) SS_UP(X_LALT) SS_LCTL("v") SS_TAP(X_TAB));
 | 
			
		||||
                _delay_ms(50);
 | 
			
		||||
                SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_TAB) SS_UP(X_LALT) SS_TAP(X_TAB));
 | 
			
		||||
            } else {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -238,7 +238,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
    if (record->event.pressed) {
 | 
			
		||||
        switch(keycode) {
 | 
			
		||||
            case TBMACRO:
 | 
			
		||||
                SEND_STRING(SS_TAP(X_TAB) SS_DOWN(X_LSHIFT) SS_TAP(X_HOME) SS_UP(X_LSHIFT) SS_TAP(X_DELETE));
 | 
			
		||||
                SEND_STRING(SS_TAP(X_TAB) SS_DOWN(X_LSFT) SS_TAP(X_HOME) SS_UP(X_LSFT) SS_TAP(X_DELETE));
 | 
			
		||||
                return false;
 | 
			
		||||
            case DGRMCRO:
 | 
			
		||||
                if(!bnumlock) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -77,9 +77,9 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
 | 
			
		|||
    }
 | 
			
		||||
    else if (index == 1) {
 | 
			
		||||
        if (clockwise) {
 | 
			
		||||
	    SEND_STRING(SS_LCTRL("1")); // audacity zoom in
 | 
			
		||||
	    SEND_STRING(SS_LCTL("1")); // audacity zoom in
 | 
			
		||||
        } else {
 | 
			
		||||
	    SEND_STRING(SS_LCTRL("3")); // audacity zoom out
 | 
			
		||||
	    SEND_STRING(SS_LCTL("3")); // audacity zoom out
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    return true;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -33,13 +33,13 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
  switch (keycode) {
 | 
			
		||||
    case TMUX_WN:                       // Switches to next window in tmux
 | 
			
		||||
      if (record->event.pressed) {
 | 
			
		||||
        SEND_STRING(SS_LCTRL("a") "n"); // Requires a leader of ctrl-a
 | 
			
		||||
        SEND_STRING(SS_LCTL("a") "n"); // Requires a leader of ctrl-a
 | 
			
		||||
      }
 | 
			
		||||
      break;
 | 
			
		||||
 | 
			
		||||
    case TMUX_WL:                       // Switches to last window in tmux
 | 
			
		||||
      if (record->event.pressed) {
 | 
			
		||||
          SEND_STRING(SS_LCTRL("a") "l");
 | 
			
		||||
          SEND_STRING(SS_LCTL("a") "l");
 | 
			
		||||
      }
 | 
			
		||||
      break;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -49,47 +49,47 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
switch (keycode) {
 | 
			
		||||
	case CSPEAK:
 | 
			
		||||
	if (record->event.pressed) {
 | 
			
		||||
		SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN));
 | 
			
		||||
		SEND_STRING(SS_TAP(X_PAGEDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PAGEDOWN));
 | 
			
		||||
	}
 | 
			
		||||
	break;
 | 
			
		||||
	case SPEAK1:
 | 
			
		||||
	if (record->event.pressed) {
 | 
			
		||||
		SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN) SS_LCTRL(SS_TAP(X_1)));
 | 
			
		||||
		SEND_STRING(SS_TAP(X_PAGEDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PAGEDOWN) SS_LCTL(SS_TAP(X_1)));
 | 
			
		||||
	}
 | 
			
		||||
	break;
 | 
			
		||||
	case SPEAK2:
 | 
			
		||||
	if (record->event.pressed) {
 | 
			
		||||
		SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN) SS_LCTRL(SS_TAP(X_2)));
 | 
			
		||||
		SEND_STRING(SS_TAP(X_PAGEDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PAGEDOWN) SS_LCTL(SS_TAP(X_2)));
 | 
			
		||||
	 }
 | 
			
		||||
	break;
 | 
			
		||||
	case SPEAK3:
 | 
			
		||||
	if (record->event.pressed) {
 | 
			
		||||
		SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN) SS_LCTRL(SS_TAP(X_3)));
 | 
			
		||||
		SEND_STRING(SS_TAP(X_PAGEDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PAGEDOWN) SS_LCTL(SS_TAP(X_3)));
 | 
			
		||||
	}
 | 
			
		||||
	break;
 | 
			
		||||
	case SPEAK4:
 | 
			
		||||
	if (record->event.pressed) {
 | 
			
		||||
		SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN) SS_LCTRL(SS_TAP(X_4)));
 | 
			
		||||
		SEND_STRING(SS_TAP(X_PAGEDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PAGEDOWN) SS_LCTL(SS_TAP(X_4)));
 | 
			
		||||
	}
 | 
			
		||||
	break;
 | 
			
		||||
	case PARADOWN:
 | 
			
		||||
	if (record->event.pressed) {
 | 
			
		||||
		SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN));
 | 
			
		||||
		SEND_STRING(SS_TAP(X_PAGEDOWN) SS_TAP(X_ENTER) SS_TAP(X_PAGEDOWN));
 | 
			
		||||
	}
 | 
			
		||||
	break;
 | 
			
		||||
	case PMERGE:
 | 
			
		||||
	if (record->event.pressed) {
 | 
			
		||||
		SEND_STRING(SS_TAP(X_HOME) SS_TAP(X_BSPACE) SS_TAP(X_SPACE) SS_LCTRL(SS_TAP(X_BSPACE)) SS_TAP(X_SPACE));
 | 
			
		||||
		SEND_STRING(SS_TAP(X_HOME) SS_TAP(X_BACKSPACE) SS_TAP(X_SPACE) SS_LCTL(SS_TAP(X_BACKSPACE)) SS_TAP(X_SPACE));
 | 
			
		||||
	}
 | 
			
		||||
	break;
 | 
			
		||||
	case WREFRESH:
 | 
			
		||||
	if (record->event.pressed) {
 | 
			
		||||
		SEND_STRING(SS_TAP(X_SPACE) SS_TAP(X_BSPACE));
 | 
			
		||||
		SEND_STRING(SS_TAP(X_SPACE) SS_TAP(X_BACKSPACE));
 | 
			
		||||
	}
 | 
			
		||||
	break;
 | 
			
		||||
	case REMCAPS:
 | 
			
		||||
	if (record->event.pressed) {
 | 
			
		||||
		SEND_STRING(SS_TAP(X_LEFT) SS_TAP(X_LEFT) SS_LCTRL(SS_TAP(X_LEFT)) SS_TAP(X_DELETE));
 | 
			
		||||
		SEND_STRING(SS_TAP(X_LEFT) SS_TAP(X_LEFT) SS_LCTL(SS_TAP(X_LEFT)) SS_TAP(X_DELETE));
 | 
			
		||||
	}
 | 
			
		||||
	break;
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -250,16 +250,16 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
  if (record->event.pressed) {
 | 
			
		||||
    switch(keycode) {
 | 
			
		||||
      case CTRL_Z:
 | 
			
		||||
        SEND_STRING(SS_LCTRL("z"));
 | 
			
		||||
        SEND_STRING(SS_LCTL("z"));
 | 
			
		||||
        return false;
 | 
			
		||||
      case CTRL_X:
 | 
			
		||||
        SEND_STRING(SS_LCTRL("x"));
 | 
			
		||||
        SEND_STRING(SS_LCTL("x"));
 | 
			
		||||
        return false;
 | 
			
		||||
      case CTRL_C:
 | 
			
		||||
        SEND_STRING(SS_LCTRL("c"));
 | 
			
		||||
        SEND_STRING(SS_LCTL("c"));
 | 
			
		||||
        return false;
 | 
			
		||||
      case CTRL_V:
 | 
			
		||||
        SEND_STRING(SS_LCTRL("v"));
 | 
			
		||||
        SEND_STRING(SS_LCTL("v"));
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -87,14 +87,14 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
  layer_off(_ALPHA);
 | 
			
		||||
  SEND_STRING(SS_TAP(X_N));
 | 
			
		||||
  SEND_STRING(SS_TAP(X_N));
 | 
			
		||||
  SEND_STRING(SS_LCTRL(SS_TAP(X_C)));
 | 
			
		||||
  SEND_STRING(SS_LCTL(SS_TAP(X_C)));
 | 
			
		||||
}
 | 
			
		||||
  break;
 | 
			
		||||
  case RESUME:
 | 
			
		||||
  if (record->event.pressed) {
 | 
			
		||||
  layer_off(_PLAYED);
 | 
			
		||||
  layer_on(_PLAYING);
 | 
			
		||||
  SEND_STRING(SS_LCTRL(SS_TAP(X_C)));
 | 
			
		||||
  SEND_STRING(SS_LCTL(SS_TAP(X_C)));
 | 
			
		||||
  SEND_STRING(SS_TAP(X_UP));
 | 
			
		||||
  SEND_STRING(SS_TAP(X_ENTER));
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -116,14 +116,14 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
  break;
 | 
			
		||||
  case SHUTDOWN:
 | 
			
		||||
  if (record->event.pressed) {
 | 
			
		||||
  SEND_STRING(SS_LCTRL(SS_TAP(X_C)));
 | 
			
		||||
  SEND_STRING(SS_LCTL(SS_TAP(X_C)));
 | 
			
		||||
  SEND_STRING("shutdown now");
 | 
			
		||||
  SEND_STRING(SS_TAP(X_ENTER));
 | 
			
		||||
}
 | 
			
		||||
  break;
 | 
			
		||||
  case REBOOT:
 | 
			
		||||
  if (record->event.pressed) {
 | 
			
		||||
  SEND_STRING(SS_LCTRL(SS_TAP(X_C)));
 | 
			
		||||
  SEND_STRING(SS_LCTL(SS_TAP(X_C)));
 | 
			
		||||
  SEND_STRING("reboot");
 | 
			
		||||
  SEND_STRING(SS_TAP(X_ENTER));
 | 
			
		||||
  }
 | 
			
		||||
| 
						 | 
				
			
			@ -155,7 +155,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
  layer_off(_ALPHA);
 | 
			
		||||
  layer_off(_PLAYED);
 | 
			
		||||
  layer_on(_PLAYING);
 | 
			
		||||
  SEND_STRING(SS_LCTRL(SS_TAP(X_C)));
 | 
			
		||||
  SEND_STRING(SS_LCTL(SS_TAP(X_C)));
 | 
			
		||||
  _delay_ms(250);
 | 
			
		||||
  SEND_STRING("play Desktop/met/a_lazoom.mp3");
 | 
			
		||||
  SEND_STRING(SS_TAP(X_ENTER));
 | 
			
		||||
| 
						 | 
				
			
			@ -200,18 +200,18 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
  case PMERGE:
 | 
			
		||||
  if (record->event.pressed) {
 | 
			
		||||
  SEND_STRING(SS_TAP(X_HOME));
 | 
			
		||||
  SEND_STRING(SS_TAP(X_BSPACE));
 | 
			
		||||
  SEND_STRING(SS_TAP(X_BACKSPACE));
 | 
			
		||||
  SEND_STRING(SS_TAP(X_SPACE));
 | 
			
		||||
  SEND_STRING(SS_LCTRL(SS_TAP(X_BSPACE)));
 | 
			
		||||
  SEND_STRING(SS_LCTL(SS_TAP(X_BACKSPACE)));
 | 
			
		||||
  SEND_STRING(SS_TAP(X_SPACE));
 | 
			
		||||
      }
 | 
			
		||||
break;
 | 
			
		||||
case CSPEAK:
 | 
			
		||||
  if (record->event.pressed) {
 | 
			
		||||
  SEND_STRING(SS_TAP(X_PGDOWN));
 | 
			
		||||
  SEND_STRING(SS_TAP(X_PAGE_DOWN));
 | 
			
		||||
  SEND_STRING(SS_TAP(X_ENTER));
 | 
			
		||||
  SEND_STRING(SS_TAP(X_ENTER));
 | 
			
		||||
  SEND_STRING(SS_TAP(X_PGDOWN));
 | 
			
		||||
  SEND_STRING(SS_TAP(X_PAGE_DOWN));
 | 
			
		||||
}
 | 
			
		||||
 break;
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -73,7 +73,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
                    default:
 | 
			
		||||
                        if (timeElapsed < CUSTOM_LONGPRESS) {
 | 
			
		||||
                            // Normal press.  We're going to send the current letter and increment the counter.
 | 
			
		||||
                            SEND_STRING(SS_TAP(X_BSPACE));
 | 
			
		||||
                            SEND_STRING(SS_TAP(X_BACKSPACE));
 | 
			
		||||
                            send_string(stringToSend);
 | 
			
		||||
                            stringToSend[0]++;
 | 
			
		||||
                            if (stringToSend[0] > maxLetter) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -211,7 +211,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
  if (record->event.pressed) {
 | 
			
		||||
    switch(keycode) {
 | 
			
		||||
      case IJ_OMN:
 | 
			
		||||
        SEND_STRING(SS_TAP(X_LSHIFT)SS_TAP(X_LSHIFT));
 | 
			
		||||
        SEND_STRING(SS_TAP(X_LSFT)SS_TAP(X_LSFT));
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -263,7 +263,7 @@ void matrix_init_user(void) {
 | 
			
		|||
  // eeconfig_init(); // reset keyboard to a standard default state; useful when new releases messup with eeprom values
 | 
			
		||||
  // set num lock on at start (for numonly layer to work)
 | 
			
		||||
  if (!(host_keyboard_leds() & (1<<USB_LED_NUM_LOCK))) {
 | 
			
		||||
      SEND_STRING(SS_TAP(X_NUMLOCK)); //register_code(KC_NUM_LOCK); unregister_code(KC_NUM_LOCK);
 | 
			
		||||
      SEND_STRING(SS_TAP(X_NUM_LOCK)); //register_code(KC_NUM_LOCK); unregister_code(KC_NUM_LOCK);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -41,7 +41,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
				SEND_STRING("git add ."SS_TAP(X_ENTER));
 | 
			
		||||
        break;
 | 
			
		||||
      case GIT_COMMIT:
 | 
			
		||||
        SEND_STRING("git commit -m "SS_DOWN(X_LSHIFT)SS_TAP(X_QUOTE)SS_UP(X_LSHIFT));
 | 
			
		||||
        SEND_STRING("git commit -m "SS_DOWN(X_LSFT)SS_TAP(X_QUOTE)SS_UP(X_LSFT));
 | 
			
		||||
        break;
 | 
			
		||||
      case GIT_PUSH:
 | 
			
		||||
        SEND_STRING("git push"SS_TAP(X_ENTER));
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -84,7 +84,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
            break;
 | 
			
		||||
        case KC_WCLS:
 | 
			
		||||
            if (record->event.pressed) {
 | 
			
		||||
                SEND_STRING (SS_LCTRL("w"));
 | 
			
		||||
                SEND_STRING (SS_LCTL("w"));
 | 
			
		||||
            }
 | 
			
		||||
            return false;
 | 
			
		||||
            break;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -306,7 +306,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
            // ======================================================== CUSTOM KEYCOADS BELOW ========================================================
 | 
			
		||||
            case COPY_ALL:
 | 
			
		||||
                // Selects all and text and copy
 | 
			
		||||
                SEND_STRING(SS_LCTRL("ac"));
 | 
			
		||||
                SEND_STRING(SS_LCTL("ac"));
 | 
			
		||||
                return false;
 | 
			
		||||
            case SEL_CPY:
 | 
			
		||||
                // Select word under cursor and copy. Double mouse click then ctrl+c
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -274,7 +274,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
            // ======================================================== CUSTOM KEYCOADS BELOW ========================================================
 | 
			
		||||
            case COPY_ALL:
 | 
			
		||||
                // Selects all and text and copy
 | 
			
		||||
                SEND_STRING(SS_LCTRL("ac"));
 | 
			
		||||
                SEND_STRING(SS_LCTL("ac"));
 | 
			
		||||
                return false;
 | 
			
		||||
            case ROUT_TG:
 | 
			
		||||
                // Toggle idle LED timeout on or off
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -137,16 +137,16 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
    switch (keycode) {
 | 
			
		||||
    // dynamically generate these.
 | 
			
		||||
      case EXPOSE:
 | 
			
		||||
        SEND_STRING(SS_DOWN(X_LCTRL) SS_TAP(X_UP) SS_UP(X_LCTRL));
 | 
			
		||||
        SEND_STRING(SS_DOWN(X_LCTL) SS_TAP(X_UP) SS_UP(X_LCTL));
 | 
			
		||||
        return false;
 | 
			
		||||
      case LAUNCH:
 | 
			
		||||
        SEND_STRING(SS_DOWN(X_LCTRL) SS_TAP(X_L) SS_UP(X_LCTRL));
 | 
			
		||||
        SEND_STRING(SS_DOWN(X_LCTL) SS_TAP(X_L) SS_UP(X_LCTL));
 | 
			
		||||
        return false;
 | 
			
		||||
      case DOCK:
 | 
			
		||||
        SEND_STRING(SS_DOWN(X_LALT) SS_DOWN(X_LGUI) SS_TAP(X_D) SS_UP(X_LGUI) SS_UP(X_LALT));
 | 
			
		||||
        return false;
 | 
			
		||||
      case SCRCAP:  //screen capture
 | 
			
		||||
        SEND_STRING(SS_DOWN(X_LCTRL) SS_TAP(X_S) SS_UP(X_LCTRL));
 | 
			
		||||
        SEND_STRING(SS_DOWN(X_LCTL) SS_TAP(X_S) SS_UP(X_LCTL));
 | 
			
		||||
        return false;
 | 
			
		||||
      case CS1:  //custom shortcut 1
 | 
			
		||||
        SEND_STRING(SS_DOWN(X_LALT) SS_DOWN(X_LGUI) SS_TAP(X_1) SS_UP(X_LGUI) SS_UP(X_LALT));
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -115,13 +115,13 @@ void persistent_default_layer_set(uint16_t default_layer) {
 | 
			
		|||
    default_layer_set(default_layer);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#define SEND_STRING_RESTORE(STR) (SHIFT_PRESSED ? SEND_STRING(STR SS_DOWN(X_LSHIFT)) : SEND_STRING(STR SS_UP(X_LSHIFT)))
 | 
			
		||||
#define SEND_STRING_RESTORE(STR) (SHIFT_PRESSED ? SEND_STRING(STR SS_DOWN(X_LSFT)) : SEND_STRING(STR SS_UP(X_LSFT)))
 | 
			
		||||
 | 
			
		||||
#define KEY(CODE) (record->event.pressed ? SEND_STRING(SS_DOWN(X_##CODE)) : SEND_STRING_RESTORE(SS_UP(X_##CODE)))
 | 
			
		||||
 | 
			
		||||
#define KEY_SHIFT(CODE) (record->event.pressed ? SEND_STRING(SS_DOWN(X_LSHIFT) SS_DOWN(X_##CODE)) : SEND_STRING_RESTORE(SS_UP(X_##CODE)))
 | 
			
		||||
#define KEY_SHIFT(CODE) (record->event.pressed ? SEND_STRING(SS_DOWN(X_LSFT) SS_DOWN(X_##CODE)) : SEND_STRING_RESTORE(SS_UP(X_##CODE)))
 | 
			
		||||
 | 
			
		||||
#define KEY_UPSHIFT(CODE) (record->event.pressed ? SEND_STRING(SS_UP(X_LSHIFT) SS_DOWN(X_##CODE)) : SEND_STRING_RESTORE(SS_UP(X_##CODE)))
 | 
			
		||||
#define KEY_UPSHIFT(CODE) (record->event.pressed ? SEND_STRING(SS_UP(X_LSFT) SS_DOWN(X_##CODE)) : SEND_STRING_RESTORE(SS_UP(X_##CODE)))
 | 
			
		||||
 | 
			
		||||
#define SHIFT_DU(CODE_DOWN, CODE_UP) (SHIFT_PRESSED ? CODE_DOWN : CODE_UP)
 | 
			
		||||
#define CASE_US(CODE, US, JP)                   \
 | 
			
		||||
| 
						 | 
				
			
			@ -180,10 +180,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
            break;
 | 
			
		||||
        case SHIFT:
 | 
			
		||||
            if (record->event.pressed) {
 | 
			
		||||
                SEND_STRING(SS_DOWN(X_LSHIFT));
 | 
			
		||||
                SEND_STRING(SS_DOWN(X_LSFT));
 | 
			
		||||
                SHIFT_PRESSED = true;
 | 
			
		||||
            } else {
 | 
			
		||||
                SEND_STRING(SS_UP(X_LSHIFT));
 | 
			
		||||
                SEND_STRING(SS_UP(X_LSFT));
 | 
			
		||||
                SHIFT_PRESSED = false;
 | 
			
		||||
            }
 | 
			
		||||
            return false;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -137,8 +137,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { //X_KEY doesn'
 | 
			
		|||
      if(record->event.pressed) {
 | 
			
		||||
        (IS_LAYER_ON(SHFT_L)) //if shifted release correct shift, send, and press same shift, else send shift enter
 | 
			
		||||
          ? (get_mods() & MOD_BIT(KC_LSFT))
 | 
			
		||||
            ? SEND_STRING(SS_UP(X_LSHIFT) SS_TAP(X_ENTER) SS_DOWN(X_LSHIFT))
 | 
			
		||||
            : SEND_STRING(SS_UP(X_RSHIFT) SS_TAP(X_ENTER) SS_DOWN(X_RSHIFT))
 | 
			
		||||
            ? SEND_STRING(SS_UP(X_LSFT) SS_TAP(X_ENTER) SS_DOWN(X_LSFT))
 | 
			
		||||
            : SEND_STRING(SS_UP(X_RSFT) SS_TAP(X_ENTER) SS_DOWN(X_RSFT))
 | 
			
		||||
          : SEND_STRING(SS_LSFT(SS_TAP(X_ENTER)));
 | 
			
		||||
      }
 | 
			
		||||
      return false;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -34,13 +34,13 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
    switch (keycode) {
 | 
			
		||||
        case TMUX_WN:                   // Moves to the next tmux window
 | 
			
		||||
            if (record->event.pressed) {
 | 
			
		||||
                SEND_STRING(SS_LCTRL("a") "n");
 | 
			
		||||
                SEND_STRING(SS_LCTL("a") "n");
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
 | 
			
		||||
        case TMUX_WL:                   // Moves to the last tmux window
 | 
			
		||||
            if (record->event.pressed) {
 | 
			
		||||
                SEND_STRING(SS_LCTRL("a") "n");
 | 
			
		||||
                SEND_STRING(SS_LCTL("a") "n");
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -35,7 +35,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
  if(record->event.pressed) {
 | 
			
		||||
    switch(keycode) {
 | 
			
		||||
      case CTLALTD:
 | 
			
		||||
        SEND_STRING(SS_DOWN(X_LCTRL)SS_DOWN(X_LALT)SS_DOWN(X_DELETE)SS_UP(X_DELETE)SS_UP(X_LALT)SS_UP(X_LCTRL));
 | 
			
		||||
        SEND_STRING(SS_DOWN(X_LCTL)SS_DOWN(X_LALT)SS_DOWN(X_DELETE)SS_UP(X_DELETE)SS_UP(X_LALT)SS_UP(X_LCTL));
 | 
			
		||||
        return false;
 | 
			
		||||
      case VIMSAVE:
 | 
			
		||||
        SEND_STRING(":w");
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -261,7 +261,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
    if (record->event.pressed) {
 | 
			
		||||
        switch(keycode) {
 | 
			
		||||
            case TBMACRO:
 | 
			
		||||
                SEND_STRING(SS_TAP(X_TAB) SS_DOWN(X_LSHIFT) SS_TAP(X_HOME) SS_UP(X_LSHIFT) SS_TAP(X_DELETE));
 | 
			
		||||
                SEND_STRING(SS_TAP(X_TAB) SS_DOWN(X_LSFT) SS_TAP(X_HOME) SS_UP(X_LSFT) SS_TAP(X_DELETE));
 | 
			
		||||
                return false;
 | 
			
		||||
            case DGRMCRO:
 | 
			
		||||
                if(!bnumlock) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -62,7 +62,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
            break;
 | 
			
		||||
        case INV_1P:
 | 
			
		||||
            if (record->event.pressed) {
 | 
			
		||||
                SEND_STRING(SS_DOWN(X_LGUI) SS_DOWN(X_LALT) SS_TAP(X_BSLASH) SS_UP(X_LGUI) SS_UP(X_LALT));
 | 
			
		||||
                SEND_STRING(SS_DOWN(X_LGUI) SS_DOWN(X_LALT) SS_TAP(X_BACKSLASH) SS_UP(X_LGUI) SS_UP(X_LALT));
 | 
			
		||||
            }
 | 
			
		||||
            return false;
 | 
			
		||||
            break;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -147,13 +147,13 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
    switch (keycode) {
 | 
			
		||||
        case _COMP1:
 | 
			
		||||
            if (record->event.pressed) {
 | 
			
		||||
                // SEND_STRING(SS_TAP(X_RCTRL) SS_DELAY(100) SS_TAP(X_RCTRL) SS_DELAY(100) "1" SS_TAP(X_ENTER));
 | 
			
		||||
                // SEND_STRING(SS_TAP(X_RCTL) SS_DELAY(100) SS_TAP(X_RCTL) SS_DELAY(100) "1" SS_TAP(X_ENTER));
 | 
			
		||||
                keymap_config.swap_lalt_lgui = false;
 | 
			
		||||
            }
 | 
			
		||||
            return false;
 | 
			
		||||
        case _COMP2:
 | 
			
		||||
            if (record->event.pressed) {
 | 
			
		||||
                // SEND_STRING(SS_TAP(X_RCTRL) SS_DELAY(100) SS_TAP(X_RCTRL) SS_DELAY(100) "2" SS_TAP(X_ENTER));
 | 
			
		||||
                // SEND_STRING(SS_TAP(X_RCTL) SS_DELAY(100) SS_TAP(X_RCTL) SS_DELAY(100) "2" SS_TAP(X_ENTER));
 | 
			
		||||
                keymap_config.swap_lalt_lgui = true;
 | 
			
		||||
            }
 | 
			
		||||
            return false;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -195,7 +195,7 @@ void matrix_scan_user(void) {
 | 
			
		|||
            SEND_STRING("`` " SS_TAP(X_LEFT) SS_TAP(X_LEFT));
 | 
			
		||||
        }
 | 
			
		||||
        SEQ_ONE_KEY(KC_P) { // Invoke Password Manager
 | 
			
		||||
            SEND_STRING(SS_LCTRL(SS_LALT("\\")));
 | 
			
		||||
            SEND_STRING(SS_LCTL(SS_LALT("\\")));
 | 
			
		||||
        }
 | 
			
		||||
        SEQ_ONE_KEY(KC_S) { // Windows screenshot
 | 
			
		||||
            SEND_STRING(SS_LGUI("\nS"));
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -18,7 +18,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
  if (record->event.pressed) {
 | 
			
		||||
    switch(keycode) {
 | 
			
		||||
      case TRMEXIT:
 | 
			
		||||
        SEND_STRING(SS_LCTRL("\\")SS_LCTRL("n"));
 | 
			
		||||
        SEND_STRING(SS_LCTL("\\")SS_LCTL("n"));
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -78,7 +78,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
      // Designed to switch between two keyboard layouts on Windows using a locking switch.
 | 
			
		||||
      // Does nothing if right shift is pressed for easy resync.
 | 
			
		||||
      if (!(get_mods() & MOD_BIT(KC_RSFT)))
 | 
			
		||||
        SEND_STRING(SS_DOWN(X_LALT)SS_TAP(X_LSHIFT)SS_UP(X_LALT));
 | 
			
		||||
        SEND_STRING(SS_DOWN(X_LALT)SS_TAP(X_LSFT)SS_UP(X_LALT));
 | 
			
		||||
      return false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -214,9 +214,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
    switch (keycode) {
 | 
			
		||||
      case SWTCH:
 | 
			
		||||
        SEND_STRING(SS_DOWN(X_LGUI));
 | 
			
		||||
        SEND_STRING(SS_DOWN(X_LSHIFT));
 | 
			
		||||
        SEND_STRING(SS_DOWN(X_LSFT));
 | 
			
		||||
        SEND_STRING(SS_TAP(X_ENTER));
 | 
			
		||||
        SEND_STRING(SS_UP(X_LSHIFT));
 | 
			
		||||
        SEND_STRING(SS_UP(X_LSFT));
 | 
			
		||||
        SEND_STRING(SS_UP(X_LGUI));
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -90,7 +90,7 @@ void unicode_hex2output (long unsigned int unshifted, long unsigned int shifted)
 | 
			
		|||
            bitmove *= 0x10; // next digit
 | 
			
		||||
        }
 | 
			
		||||
    
 | 
			
		||||
        SEND_STRING ( SS_DOWN(X_LCTRL) SS_DOWN(X_LSHIFT) "f" SS_UP(X_LSHIFT) SS_UP(X_LCTRL) ); // lead-in for Unicode on Linux, 'descramble' mode
 | 
			
		||||
        SEND_STRING ( SS_DOWN(X_LCTL) SS_DOWN(X_LSFT) "f" SS_UP(X_LSFT) SS_UP(X_LCTL) ); // lead-in for Unicode on Linux, 'descramble' mode
 | 
			
		||||
        send_string (output + index); // pointer to argument with formatted string
 | 
			
		||||
        SEND_STRING ( " " ); // Ends the Unicode numerical input mode
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -55,7 +55,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t* record)
 | 
			
		|||
                        SEND_STRING(SS_TAP(X_DELETE));
 | 
			
		||||
                        set_mods(current_mods);
 | 
			
		||||
                    } else {
 | 
			
		||||
                        SEND_STRING(SS_TAP(X_BSPACE));
 | 
			
		||||
                        SEND_STRING(SS_TAP(X_BACKSPACE));
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
                return false;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -35,7 +35,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record)
 | 
			
		|||
            SEND_STRING("git add ." SS_TAP(X_ENTER));
 | 
			
		||||
            break;
 | 
			
		||||
        case GIT_COMMIT:
 | 
			
		||||
            SEND_STRING("git commit -m " SS_DOWN(X_LSHIFT) SS_TAP(X_QUOTE) SS_UP(X_LSHIFT));
 | 
			
		||||
            SEND_STRING("git commit -m " SS_DOWN(X_LSFT) SS_TAP(X_QUOTE) SS_UP(X_LSFT));
 | 
			
		||||
            break;
 | 
			
		||||
        case GIT_PUSH:
 | 
			
		||||
            SEND_STRING("git push" SS_TAP(X_ENTER));
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -34,7 +34,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
  switch (keycode) {
 | 
			
		||||
  case CLEAR:
 | 
			
		||||
    if (record->event.pressed) {
 | 
			
		||||
      SEND_STRING(SS_LCTRL("a") SS_TAP(X_DELETE));
 | 
			
		||||
      SEND_STRING(SS_LCTL("a") SS_TAP(X_DELETE));
 | 
			
		||||
    }
 | 
			
		||||
    return false;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -225,7 +225,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
  if (record->event.pressed) {
 | 
			
		||||
    switch(keycode) {
 | 
			
		||||
      case IJ_OMN:
 | 
			
		||||
        SEND_STRING(SS_TAP(X_LSHIFT)SS_TAP(X_LSHIFT));
 | 
			
		||||
        SEND_STRING(SS_TAP(X_LSFT)SS_TAP(X_LSFT));
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -233,7 +233,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
    case BF_AFK:
 | 
			
		||||
      if (record->event.pressed) {
 | 
			
		||||
        layer_on(AFK);
 | 
			
		||||
        SEND_STRING(SS_DOWN(X_LCTRL)SS_DOWN(X_LSHIFT)SS_TAP(X_POWER)SS_UP(X_LSHIFT)SS_UP(X_LCTRL));
 | 
			
		||||
        SEND_STRING(SS_DOWN(X_LCTL)SS_DOWN(X_LSFT)SS_TAP(X_PWR)SS_UP(X_LSFT)SS_UP(X_LCTL));
 | 
			
		||||
      }
 | 
			
		||||
      return false; break;
 | 
			
		||||
    case BF_WAKE:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -473,7 +473,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
          SEND_STRING ("Todoist");
 | 
			
		||||
          SEND_STRING (SS_TAP(X_ENTER));
 | 
			
		||||
        } else {
 | 
			
		||||
          SEND_STRING (SS_LGUI(SS_LCTRL("a"))); //macro to open Todoist new task dialog
 | 
			
		||||
          SEND_STRING (SS_LGUI(SS_LCTL("a"))); //macro to open Todoist new task dialog
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      break;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -596,7 +596,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
    case KC_LEFT_SHIFT:  /* '' */
 | 
			
		||||
      if (record->event.pressed && (keyboard_report->mods & (MOD_BIT(KC_RSFT)))) {
 | 
			
		||||
        WITHOUT_MODS({
 | 
			
		||||
            SEND_STRING("''" SS_TAP(X_LEFT) SS_DOWN(X_RSHIFT) SS_DOWN(X_LSHIFT));
 | 
			
		||||
            SEND_STRING("''" SS_TAP(X_LEFT) SS_DOWN(X_RSFT) SS_DOWN(X_LSFT));
 | 
			
		||||
          });
 | 
			
		||||
        return false;
 | 
			
		||||
      }
 | 
			
		||||
| 
						 | 
				
			
			@ -604,7 +604,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
    case KC_RIGHT_SHIFT:  /* "" */
 | 
			
		||||
      if (record->event.pressed && (keyboard_report->mods & (MOD_BIT(KC_LSFT)))) {
 | 
			
		||||
        WITHOUT_MODS({
 | 
			
		||||
            SEND_STRING("\x22\x22" SS_TAP(X_LEFT) SS_DOWN(X_LSHIFT) SS_DOWN(X_RSHIFT));
 | 
			
		||||
            SEND_STRING("\x22\x22" SS_TAP(X_LEFT) SS_DOWN(X_LSFT) SS_DOWN(X_RSFT));
 | 
			
		||||
          });
 | 
			
		||||
        return false;
 | 
			
		||||
      }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -21,45 +21,53 @@
 | 
			
		|||
/* Punctuation */
 | 
			
		||||
#define X_ENT  X_ENTER
 | 
			
		||||
#define X_ESC  X_ESCAPE
 | 
			
		||||
#define X_BSPC X_BSPACE
 | 
			
		||||
#define X_BSPC X_BACKSPACE
 | 
			
		||||
#define X_SPC  X_SPACE
 | 
			
		||||
#define X_MINS X_MINUS
 | 
			
		||||
#define X_EQL  X_EQUAL
 | 
			
		||||
#define X_LBRC X_LBRACKET
 | 
			
		||||
#define X_RBRC X_RBRACKET
 | 
			
		||||
#define X_BSLS X_BSLASH
 | 
			
		||||
#define X_LBRC X_LEFT_BRACKET
 | 
			
		||||
#define X_RBRC X_RIGHT_BRACKET
 | 
			
		||||
#define X_BSLS X_BACKSLASH
 | 
			
		||||
#define X_NUHS X_NONUS_HASH
 | 
			
		||||
#define X_SCLN X_SCOLON
 | 
			
		||||
#define X_SCLN X_SEMICOLON
 | 
			
		||||
#define X_QUOT X_QUOTE
 | 
			
		||||
#define X_GRV  X_GRAVE
 | 
			
		||||
#define X_COMM X_COMMA
 | 
			
		||||
#define X_SLSH X_SLASH
 | 
			
		||||
#define X_NUBS X_NONUS_BSLASH
 | 
			
		||||
#define X_NUBS X_NONUS_BACKSLASH
 | 
			
		||||
 | 
			
		||||
/* Lock Keys */
 | 
			
		||||
#define X_CLCK X_CAPSLOCK
 | 
			
		||||
#define X_CAPS X_CAPSLOCK
 | 
			
		||||
#define X_SLCK X_SCROLLLOCK
 | 
			
		||||
#define X_NLCK X_NUMLOCK
 | 
			
		||||
#define X_LCAP X_LOCKING_CAPS
 | 
			
		||||
#define X_LNUM X_LOCKING_NUM
 | 
			
		||||
#define X_LSCR X_LOCKING_SCROLL
 | 
			
		||||
#define X_CAPS X_CAPS_LOCK
 | 
			
		||||
#define X_SCRL X_SCROLL_LOCK
 | 
			
		||||
#define X_NUM  X_NUM_LOCK
 | 
			
		||||
#define X_LCAP X_LOCKING_CAPS_LOCK
 | 
			
		||||
#define X_LNUM X_LOCKING_NUM_LOCK
 | 
			
		||||
#define X_LSCR X_LOCKING_SCROLL_LOCK
 | 
			
		||||
 | 
			
		||||
/* Commands */
 | 
			
		||||
#define X_PSCR X_PSCREEN
 | 
			
		||||
#define X_PSCR X_PRINT_SCREEN
 | 
			
		||||
#define X_PAUS X_PAUSE
 | 
			
		||||
#define X_BRK  X_PAUSE
 | 
			
		||||
#define X_INS  X_INSERT
 | 
			
		||||
#define X_PGUP X_PAGE_UP
 | 
			
		||||
#define X_DEL  X_DELETE
 | 
			
		||||
#define X_PGDN X_PGDOWN
 | 
			
		||||
#define X_PGDN X_PAGE_DOWN
 | 
			
		||||
#define X_RGHT X_RIGHT
 | 
			
		||||
#define X_APP  X_APPLICATION
 | 
			
		||||
#define X_EXEC X_EXECUTE
 | 
			
		||||
#define X_SLCT X_SELECT
 | 
			
		||||
#define X_AGIN X_AGAIN
 | 
			
		||||
#define X_PSTE X_PASTE
 | 
			
		||||
#define X_ERAS X_ALT_ERASE
 | 
			
		||||
#define X_ERAS X_ALTERNATE_ERASE
 | 
			
		||||
#define X_SYRQ X_SYSTEM_REQUEST
 | 
			
		||||
#define X_CNCL X_CANCEL
 | 
			
		||||
#define X_CLR  X_CLEAR
 | 
			
		||||
#define X_PRIR X_PRIOR
 | 
			
		||||
#define X_RETN X_RETURN
 | 
			
		||||
#define X_SEPR X_SEPARATOR
 | 
			
		||||
#define X_CLAG X_CLEAR_AGAIN
 | 
			
		||||
#define X_CRSL X_CRSEL
 | 
			
		||||
#define X_EXSL X_EXSEL
 | 
			
		||||
 | 
			
		||||
/* Keypad */
 | 
			
		||||
#define X_PSLS X_KP_SLASH
 | 
			
		||||
| 
						 | 
				
			
			@ -81,30 +89,42 @@
 | 
			
		|||
#define X_PEQL X_KP_EQUAL
 | 
			
		||||
#define X_PCMM X_KP_COMMA
 | 
			
		||||
 | 
			
		||||
/* Japanese specific */
 | 
			
		||||
#define X_ZKHK X_GRAVE
 | 
			
		||||
#define X_RO   X_INT1
 | 
			
		||||
#define X_KANA X_INT2
 | 
			
		||||
#define X_JYEN X_INT3
 | 
			
		||||
#define X_HENK X_INT4
 | 
			
		||||
#define X_MHEN X_INT5
 | 
			
		||||
 | 
			
		||||
/* Korean specific */
 | 
			
		||||
#define X_HAEN X_LANG1
 | 
			
		||||
#define X_HANJ X_LANG2
 | 
			
		||||
/* Language Specific */
 | 
			
		||||
#define X_INT1 X_INTERNATIONAL_1
 | 
			
		||||
#define X_INT2 X_INTERNATIONAL_2
 | 
			
		||||
#define X_INT3 X_INTERNATIONAL_3
 | 
			
		||||
#define X_INT4 X_INTERNATIONAL_4
 | 
			
		||||
#define X_INT5 X_INTERNATIONAL_5
 | 
			
		||||
#define X_INT6 X_INTERNATIONAL_6
 | 
			
		||||
#define X_INT7 X_INTERNATIONAL_7
 | 
			
		||||
#define X_INT8 X_INTERNATIONAL_8
 | 
			
		||||
#define X_INT9 X_INTERNATIONAL_9
 | 
			
		||||
#define X_LNG1 X_LANGUAGE_1
 | 
			
		||||
#define X_LNG2 X_LANGUAGE_2
 | 
			
		||||
#define X_LNG3 X_LANGUAGE_3
 | 
			
		||||
#define X_LNG4 X_LANGUAGE_4
 | 
			
		||||
#define X_LNG5 X_LANGUAGE_5
 | 
			
		||||
#define X_LNG6 X_LANGUAGE_6
 | 
			
		||||
#define X_LNG7 X_LANGUAGE_7
 | 
			
		||||
#define X_LNG8 X_LANGUAGE_8
 | 
			
		||||
#define X_LNG9 X_LANGUAGE_9
 | 
			
		||||
 | 
			
		||||
/* Modifiers */
 | 
			
		||||
#define X_LCTL X_LCTRL
 | 
			
		||||
#define X_LSFT X_LSHIFT
 | 
			
		||||
#define X_LOPT X_LALT
 | 
			
		||||
#define X_LCMD X_LGUI
 | 
			
		||||
#define X_LWIN X_LGUI
 | 
			
		||||
#define X_RCTL X_RCTRL
 | 
			
		||||
#define X_RSFT X_RSHIFT
 | 
			
		||||
#define X_ALGR X_RALT
 | 
			
		||||
#define X_ROPT X_RALT
 | 
			
		||||
#define X_RCMD X_RGUI
 | 
			
		||||
#define X_RWIN X_RGUI
 | 
			
		||||
#define X_LCTL X_LEFT_CTRL
 | 
			
		||||
#define X_LSFT X_LEFT_SHIFT
 | 
			
		||||
#define X_LALT X_LEFT_ALT
 | 
			
		||||
#define X_LOPT X_LEFT_ALT
 | 
			
		||||
#define X_LGUI X_LEFT_GUI
 | 
			
		||||
#define X_LCMD X_LEFT_GUI
 | 
			
		||||
#define X_LWIN X_LEFT_GUI
 | 
			
		||||
#define X_RCTL X_RIGHT_CTRL
 | 
			
		||||
#define X_RSFT X_RIGHT_SHIFT
 | 
			
		||||
#define X_RALT X_RIGHT_ALT
 | 
			
		||||
#define X_ALGR X_RIGHT_ALT
 | 
			
		||||
#define X_ROPT X_RIGHT_ALT
 | 
			
		||||
#define X_RGUI X_RIGHT_GUI
 | 
			
		||||
#define X_RCMD X_RIGHT_GUI
 | 
			
		||||
#define X_RWIN X_RIGHT_GUI
 | 
			
		||||
 | 
			
		||||
/* Generic Desktop Page (0x01) */
 | 
			
		||||
#define X_PWR  X_SYSTEM_POWER
 | 
			
		||||
| 
						 | 
				
			
			@ -134,10 +154,12 @@
 | 
			
		|||
#define X_MRWD X_MEDIA_REWIND
 | 
			
		||||
#define X_BRIU X_BRIGHTNESS_UP
 | 
			
		||||
#define X_BRID X_BRIGHTNESS_DOWN
 | 
			
		||||
#define X_CPNL X_CONTROL_PANEL
 | 
			
		||||
#define X_ASST X_ASSISTANT
 | 
			
		||||
 | 
			
		||||
/* System Specific */
 | 
			
		||||
#define X_BRMU X_PAUSE
 | 
			
		||||
#define X_BRMD X_SCROLLLOCK
 | 
			
		||||
#define X_BRMD X_SCROLL_LOCK
 | 
			
		||||
 | 
			
		||||
/* Mouse Keys */
 | 
			
		||||
#define X_MS_U X_MS_UP
 | 
			
		||||
| 
						 | 
				
			
			@ -149,6 +171,9 @@
 | 
			
		|||
#define X_BTN3 X_MS_BTN3
 | 
			
		||||
#define X_BTN4 X_MS_BTN4
 | 
			
		||||
#define X_BTN5 X_MS_BTN5
 | 
			
		||||
#define X_BTN6 X_MS_BTN6
 | 
			
		||||
#define X_BTN7 X_MS_BTN7
 | 
			
		||||
#define X_BTN8 X_MS_BTN8
 | 
			
		||||
#define X_WH_U X_MS_WH_UP
 | 
			
		||||
#define X_WH_D X_MS_WH_DOWN
 | 
			
		||||
#define X_WH_L X_MS_WH_LEFT
 | 
			
		||||
| 
						 | 
				
			
			@ -158,250 +183,252 @@
 | 
			
		|||
#define X_ACL2 X_MS_ACCEL2
 | 
			
		||||
 | 
			
		||||
/* Keyboard/Keypad Page (0x07) */
 | 
			
		||||
#define X_A                  04
 | 
			
		||||
#define X_B                  05
 | 
			
		||||
#define X_C                  06
 | 
			
		||||
#define X_D                  07
 | 
			
		||||
#define X_E                  08
 | 
			
		||||
#define X_F                  09
 | 
			
		||||
#define X_G                  0a
 | 
			
		||||
#define X_H                  0b
 | 
			
		||||
#define X_I                  0c
 | 
			
		||||
#define X_J                  0d
 | 
			
		||||
#define X_K                  0e
 | 
			
		||||
#define X_L                  0f
 | 
			
		||||
#define X_M                  10
 | 
			
		||||
#define X_N                  11
 | 
			
		||||
#define X_O                  12
 | 
			
		||||
#define X_P                  13
 | 
			
		||||
#define X_Q                  14
 | 
			
		||||
#define X_R                  15
 | 
			
		||||
#define X_S                  16
 | 
			
		||||
#define X_T                  17
 | 
			
		||||
#define X_U                  18
 | 
			
		||||
#define X_V                  19
 | 
			
		||||
#define X_W                  1a
 | 
			
		||||
#define X_X                  1b
 | 
			
		||||
#define X_Y                  1c
 | 
			
		||||
#define X_Z                  1d
 | 
			
		||||
#define X_1                  1e
 | 
			
		||||
#define X_2                  1f
 | 
			
		||||
#define X_3                  20
 | 
			
		||||
#define X_4                  21
 | 
			
		||||
#define X_5                  22
 | 
			
		||||
#define X_6                  23
 | 
			
		||||
#define X_7                  24
 | 
			
		||||
#define X_8                  25
 | 
			
		||||
#define X_9                  26
 | 
			
		||||
#define X_0                  27
 | 
			
		||||
#define X_ENTER              28
 | 
			
		||||
#define X_ESCAPE             29
 | 
			
		||||
#define X_BSPACE             2a
 | 
			
		||||
#define X_TAB                2b
 | 
			
		||||
#define X_SPACE              2c
 | 
			
		||||
#define X_MINUS              2d
 | 
			
		||||
#define X_EQUAL              2e
 | 
			
		||||
#define X_LBRACKET           2f
 | 
			
		||||
#define X_RBRACKET           30
 | 
			
		||||
#define X_BSLASH             31
 | 
			
		||||
#define X_NONUS_HASH         32
 | 
			
		||||
#define X_SCOLON             33
 | 
			
		||||
#define X_QUOTE              34
 | 
			
		||||
#define X_GRAVE              35
 | 
			
		||||
#define X_COMMA              36
 | 
			
		||||
#define X_DOT                37
 | 
			
		||||
#define X_SLASH              38
 | 
			
		||||
#define X_CAPSLOCK           39
 | 
			
		||||
#define X_F1                 3a
 | 
			
		||||
#define X_F2                 3b
 | 
			
		||||
#define X_F3                 3c
 | 
			
		||||
#define X_F4                 3d
 | 
			
		||||
#define X_F5                 3e
 | 
			
		||||
#define X_F6                 3f
 | 
			
		||||
#define X_F7                 40
 | 
			
		||||
#define X_F8                 41
 | 
			
		||||
#define X_F9                 42
 | 
			
		||||
#define X_F10                43
 | 
			
		||||
#define X_F11                44
 | 
			
		||||
#define X_F12                45
 | 
			
		||||
#define X_PSCREEN            46
 | 
			
		||||
#define X_SCROLLLOCK         47
 | 
			
		||||
#define X_PAUSE              48
 | 
			
		||||
#define X_INSERT             49
 | 
			
		||||
#define X_HOME               4a
 | 
			
		||||
#define X_PGUP               4b
 | 
			
		||||
#define X_DELETE             4c
 | 
			
		||||
#define X_END                4d
 | 
			
		||||
#define X_PGDOWN             4e
 | 
			
		||||
#define X_RIGHT              4f
 | 
			
		||||
#define X_LEFT               50
 | 
			
		||||
#define X_DOWN               51
 | 
			
		||||
#define X_UP                 52
 | 
			
		||||
#define X_NUMLOCK            53
 | 
			
		||||
#define X_KP_SLASH           54
 | 
			
		||||
#define X_KP_ASTERISK        55
 | 
			
		||||
#define X_KP_MINUS           56
 | 
			
		||||
#define X_KP_PLUS            57
 | 
			
		||||
#define X_KP_ENTER           58
 | 
			
		||||
#define X_KP_1               59
 | 
			
		||||
#define X_KP_2               5a
 | 
			
		||||
#define X_KP_3               5b
 | 
			
		||||
#define X_KP_4               5c
 | 
			
		||||
#define X_KP_5               5d
 | 
			
		||||
#define X_KP_6               5e
 | 
			
		||||
#define X_KP_7               5f
 | 
			
		||||
#define X_KP_8               60
 | 
			
		||||
#define X_KP_9               61
 | 
			
		||||
#define X_KP_0               62
 | 
			
		||||
#define X_KP_DOT             63
 | 
			
		||||
#define X_NONUS_BSLASH       64
 | 
			
		||||
#define X_APPLICATION        65
 | 
			
		||||
#define X_POWER              66
 | 
			
		||||
#define X_KP_EQUAL           67
 | 
			
		||||
#define X_F13                68
 | 
			
		||||
#define X_F14                69
 | 
			
		||||
#define X_F15                6a
 | 
			
		||||
#define X_F16                6b
 | 
			
		||||
#define X_F17                6c
 | 
			
		||||
#define X_F18                6d
 | 
			
		||||
#define X_F19                6e
 | 
			
		||||
#define X_F20                6f
 | 
			
		||||
#define X_F21                70
 | 
			
		||||
#define X_F22                71
 | 
			
		||||
#define X_F23                72
 | 
			
		||||
#define X_F24                73
 | 
			
		||||
#define X_EXECUTE            74
 | 
			
		||||
#define X_HELP               75
 | 
			
		||||
#define X_MENU               76
 | 
			
		||||
#define X_SELECT             77
 | 
			
		||||
#define X_STOP               78
 | 
			
		||||
#define X_AGAIN              79
 | 
			
		||||
#define X_UNDO               7a
 | 
			
		||||
#define X_CUT                7b
 | 
			
		||||
#define X_COPY               7c
 | 
			
		||||
#define X_PASTE              7d
 | 
			
		||||
#define X_FIND               7e
 | 
			
		||||
#define X__MUTE              7f
 | 
			
		||||
#define X__VOLUP             80
 | 
			
		||||
#define X__VOLDOWN           81
 | 
			
		||||
#define X_LOCKING_CAPS       82
 | 
			
		||||
#define X_LOCKING_NUM        83
 | 
			
		||||
#define X_LOCKING_SCROLL     84
 | 
			
		||||
#define X_KP_COMMA           85
 | 
			
		||||
#define X_KP_EQUAL_AS400     86
 | 
			
		||||
#define X_INT1               87
 | 
			
		||||
#define X_INT2               88
 | 
			
		||||
#define X_INT3               89
 | 
			
		||||
#define X_INT4               8a
 | 
			
		||||
#define X_INT5               8b
 | 
			
		||||
#define X_INT6               8c
 | 
			
		||||
#define X_INT7               8d
 | 
			
		||||
#define X_INT8               8e
 | 
			
		||||
#define X_INT9               8f
 | 
			
		||||
#define X_LANG1              90
 | 
			
		||||
#define X_LANG2              91
 | 
			
		||||
#define X_LANG3              92
 | 
			
		||||
#define X_LANG4              93
 | 
			
		||||
#define X_LANG5              94
 | 
			
		||||
#define X_LANG6              95
 | 
			
		||||
#define X_LANG7              96
 | 
			
		||||
#define X_LANG8              97
 | 
			
		||||
#define X_LANG9              98
 | 
			
		||||
#define X_ALT_ERASE          99
 | 
			
		||||
#define X_SYSREQ             9a
 | 
			
		||||
#define X_CANCEL             9b
 | 
			
		||||
#define X_CLEAR              9c
 | 
			
		||||
#define X_PRIOR              9d
 | 
			
		||||
#define X_RETURN             9e
 | 
			
		||||
#define X_SEPARATOR          9f
 | 
			
		||||
#define X_OUT                a0
 | 
			
		||||
#define X_OPER               a1
 | 
			
		||||
#define X_CLEAR_AGAIN        a2
 | 
			
		||||
#define X_CRSEL              a3
 | 
			
		||||
#define X_EXSEL              a4
 | 
			
		||||
#define X_A                   04
 | 
			
		||||
#define X_B                   05
 | 
			
		||||
#define X_C                   06
 | 
			
		||||
#define X_D                   07
 | 
			
		||||
#define X_E                   08
 | 
			
		||||
#define X_F                   09
 | 
			
		||||
#define X_G                   0a
 | 
			
		||||
#define X_H                   0b
 | 
			
		||||
#define X_I                   0c
 | 
			
		||||
#define X_J                   0d
 | 
			
		||||
#define X_K                   0e
 | 
			
		||||
#define X_L                   0f
 | 
			
		||||
#define X_M                   10
 | 
			
		||||
#define X_N                   11
 | 
			
		||||
#define X_O                   12
 | 
			
		||||
#define X_P                   13
 | 
			
		||||
#define X_Q                   14
 | 
			
		||||
#define X_R                   15
 | 
			
		||||
#define X_S                   16
 | 
			
		||||
#define X_T                   17
 | 
			
		||||
#define X_U                   18
 | 
			
		||||
#define X_V                   19
 | 
			
		||||
#define X_W                   1a
 | 
			
		||||
#define X_X                   1b
 | 
			
		||||
#define X_Y                   1c
 | 
			
		||||
#define X_Z                   1d
 | 
			
		||||
#define X_1                   1e
 | 
			
		||||
#define X_2                   1f
 | 
			
		||||
#define X_3                   20
 | 
			
		||||
#define X_4                   21
 | 
			
		||||
#define X_5                   22
 | 
			
		||||
#define X_6                   23
 | 
			
		||||
#define X_7                   24
 | 
			
		||||
#define X_8                   25
 | 
			
		||||
#define X_9                   26
 | 
			
		||||
#define X_0                   27
 | 
			
		||||
#define X_ENTER               28
 | 
			
		||||
#define X_ESCAPE              29
 | 
			
		||||
#define X_BACKSPACE           2a
 | 
			
		||||
#define X_TAB                 2b
 | 
			
		||||
#define X_SPACE               2c
 | 
			
		||||
#define X_MINUS               2d
 | 
			
		||||
#define X_EQUAL               2e
 | 
			
		||||
#define X_LEFT_BRACKET        2f
 | 
			
		||||
#define X_RIGHT_BRACKET       30
 | 
			
		||||
#define X_BACKSLASH           31
 | 
			
		||||
#define X_NONUS_HASH          32
 | 
			
		||||
#define X_SEMICOLON           33
 | 
			
		||||
#define X_QUOTE               34
 | 
			
		||||
#define X_GRAVE               35
 | 
			
		||||
#define X_COMMA               36
 | 
			
		||||
#define X_DOT                 37
 | 
			
		||||
#define X_SLASH               38
 | 
			
		||||
#define X_CAPS_LOCK           39
 | 
			
		||||
#define X_F1                  3a
 | 
			
		||||
#define X_F2                  3b
 | 
			
		||||
#define X_F3                  3c
 | 
			
		||||
#define X_F4                  3d
 | 
			
		||||
#define X_F5                  3e
 | 
			
		||||
#define X_F6                  3f
 | 
			
		||||
#define X_F7                  40
 | 
			
		||||
#define X_F8                  41
 | 
			
		||||
#define X_F9                  42
 | 
			
		||||
#define X_F10                 43
 | 
			
		||||
#define X_F11                 44
 | 
			
		||||
#define X_F12                 45
 | 
			
		||||
#define X_PRINT_SCREEN        46
 | 
			
		||||
#define X_SCROLL_LOCK         47
 | 
			
		||||
#define X_PAUSE               48
 | 
			
		||||
#define X_INSERT              49
 | 
			
		||||
#define X_HOME                4a
 | 
			
		||||
#define X_PAGE_UP             4b
 | 
			
		||||
#define X_DELETE              4c
 | 
			
		||||
#define X_END                 4d
 | 
			
		||||
#define X_PAGE_DOWN           4e
 | 
			
		||||
#define X_RIGHT               4f
 | 
			
		||||
#define X_LEFT                50
 | 
			
		||||
#define X_DOWN                51
 | 
			
		||||
#define X_UP                  52
 | 
			
		||||
#define X_NUM_LOCK            53
 | 
			
		||||
#define X_KP_SLASH            54
 | 
			
		||||
#define X_KP_ASTERISK         55
 | 
			
		||||
#define X_KP_MINUS            56
 | 
			
		||||
#define X_KP_PLUS             57
 | 
			
		||||
#define X_KP_ENTER            58
 | 
			
		||||
#define X_KP_1                59
 | 
			
		||||
#define X_KP_2                5a
 | 
			
		||||
#define X_KP_3                5b
 | 
			
		||||
#define X_KP_4                5c
 | 
			
		||||
#define X_KP_5                5d
 | 
			
		||||
#define X_KP_6                5e
 | 
			
		||||
#define X_KP_7                5f
 | 
			
		||||
#define X_KP_8                60
 | 
			
		||||
#define X_KP_9                61
 | 
			
		||||
#define X_KP_0                62
 | 
			
		||||
#define X_KP_DOT              63
 | 
			
		||||
#define X_NONUS_BACKSLASH     64
 | 
			
		||||
#define X_APPLICATION         65
 | 
			
		||||
#define X_KB_POWER            66
 | 
			
		||||
#define X_KP_EQUAL            67
 | 
			
		||||
#define X_F13                 68
 | 
			
		||||
#define X_F14                 69
 | 
			
		||||
#define X_F15                 6a
 | 
			
		||||
#define X_F16                 6b
 | 
			
		||||
#define X_F17                 6c
 | 
			
		||||
#define X_F18                 6d
 | 
			
		||||
#define X_F19                 6e
 | 
			
		||||
#define X_F20                 6f
 | 
			
		||||
#define X_F21                 70
 | 
			
		||||
#define X_F22                 71
 | 
			
		||||
#define X_F23                 72
 | 
			
		||||
#define X_F24                 73
 | 
			
		||||
#define X_EXECUTE             74
 | 
			
		||||
#define X_HELP                75
 | 
			
		||||
#define X_MENU                76
 | 
			
		||||
#define X_SELECT              77
 | 
			
		||||
#define X_STOP                78
 | 
			
		||||
#define X_AGAIN               79
 | 
			
		||||
#define X_UNDO                7a
 | 
			
		||||
#define X_CUT                 7b
 | 
			
		||||
#define X_COPY                7c
 | 
			
		||||
#define X_PASTE               7d
 | 
			
		||||
#define X_FIND                7e
 | 
			
		||||
#define X_KB_MUTE             7f
 | 
			
		||||
#define X_KB_VOLUME_UP        80
 | 
			
		||||
#define X_KB_VOLUME_DOWN      81
 | 
			
		||||
#define X_LOCKING_CAPS_LOCK   82
 | 
			
		||||
#define X_LOCKING_NUM_LOCK    83
 | 
			
		||||
#define X_LOCKING_SCROLL_LOCK 84
 | 
			
		||||
#define X_KP_COMMA            85
 | 
			
		||||
#define X_KP_EQUAL_AS400      86
 | 
			
		||||
#define X_INTERNATIONAL_1     87
 | 
			
		||||
#define X_INTERNATIONAL_2     88
 | 
			
		||||
#define X_INTERNATIONAL_3     89
 | 
			
		||||
#define X_INTERNATIONAL_4     8a
 | 
			
		||||
#define X_INTERNATIONAL_5     8b
 | 
			
		||||
#define X_INTERNATIONAL_6     8c
 | 
			
		||||
#define X_INTERNATIONAL_7     8d
 | 
			
		||||
#define X_INTERNATIONAL_8     8e
 | 
			
		||||
#define X_INTERNATIONAL_9     8f
 | 
			
		||||
#define X_LANGUAGE_1          90
 | 
			
		||||
#define X_LANGUAGE_2          91
 | 
			
		||||
#define X_LANGUAGE_3          92
 | 
			
		||||
#define X_LANGUAGE_4          93
 | 
			
		||||
#define X_LANGUAGE_5          94
 | 
			
		||||
#define X_LANGUAGE_6          95
 | 
			
		||||
#define X_LANGUAGE_7          96
 | 
			
		||||
#define X_LANGUAGE_8          97
 | 
			
		||||
#define X_LANGUAGE_9          98
 | 
			
		||||
#define X_ALTERNATE_ERASE     99
 | 
			
		||||
#define X_SYSTEM_REQUEST      9a
 | 
			
		||||
#define X_CANCEL              9b
 | 
			
		||||
#define X_CLEAR               9c
 | 
			
		||||
#define X_PRIOR               9d
 | 
			
		||||
#define X_RETURN              9e
 | 
			
		||||
#define X_SEPARATOR           9f
 | 
			
		||||
#define X_OUT                 a0
 | 
			
		||||
#define X_OPER                a1
 | 
			
		||||
#define X_CLEAR_AGAIN         a2
 | 
			
		||||
#define X_CRSEL               a3
 | 
			
		||||
#define X_EXSEL               a4
 | 
			
		||||
 | 
			
		||||
/* Modifiers */
 | 
			
		||||
#define X_LCTRL              e0
 | 
			
		||||
#define X_LSHIFT             e1
 | 
			
		||||
#define X_LALT               e2
 | 
			
		||||
#define X_LGUI               e3
 | 
			
		||||
#define X_RCTRL              e4
 | 
			
		||||
#define X_RSHIFT             e5
 | 
			
		||||
#define X_RALT               e6
 | 
			
		||||
#define X_RGUI               e7
 | 
			
		||||
#define X_LEFT_CTRL           e0
 | 
			
		||||
#define X_LEFT_SHIFT          e1
 | 
			
		||||
#define X_LEFT_ALT            e2
 | 
			
		||||
#define X_LEFT_GUI            e3
 | 
			
		||||
#define X_RIGHT_CTRL          e4
 | 
			
		||||
#define X_RIGHT_SHIFT         e5
 | 
			
		||||
#define X_RIGHT_ALT           e6
 | 
			
		||||
#define X_RIGHT_GUI           e7
 | 
			
		||||
 | 
			
		||||
/* Media and Function keys */
 | 
			
		||||
/* Generic Desktop Page (0x01) */
 | 
			
		||||
#define X_SYSTEM_POWER       a5
 | 
			
		||||
#define X_SYSTEM_SLEEP       a6
 | 
			
		||||
#define X_SYSTEM_WAKE        a7
 | 
			
		||||
#define X_SYSTEM_POWER        a5
 | 
			
		||||
#define X_SYSTEM_SLEEP        a6
 | 
			
		||||
#define X_SYSTEM_WAKE         a7
 | 
			
		||||
 | 
			
		||||
/* Consumer Page (0x0C) */
 | 
			
		||||
#define X_AUDIO_MUTE         a8
 | 
			
		||||
#define X_AUDIO_VOL_UP       a9
 | 
			
		||||
#define X_AUDIO_VOL_DOWN     aa
 | 
			
		||||
#define X_MEDIA_NEXT_TRACK   ab
 | 
			
		||||
#define X_MEDIA_PREV_TRACK   ac
 | 
			
		||||
#define X_MEDIA_STOP         ad
 | 
			
		||||
#define X_MEDIA_PLAY_PAUSE   ae
 | 
			
		||||
#define X_MEDIA_SELECT       af
 | 
			
		||||
#define X_MEDIA_EJECT        b0
 | 
			
		||||
#define X_MAIL               b1
 | 
			
		||||
#define X_CALCULATOR         b2
 | 
			
		||||
#define X_MY_COMPUTER        b3
 | 
			
		||||
#define X_WWW_SEARCH         b4
 | 
			
		||||
#define X_WWW_HOME           b5
 | 
			
		||||
#define X_WWW_BACK           b6
 | 
			
		||||
#define X_WWW_FORWARD        b7
 | 
			
		||||
#define X_WWW_STOP           b8
 | 
			
		||||
#define X_WWW_REFRESH        b9
 | 
			
		||||
#define X_WWW_FAVORITES      ba
 | 
			
		||||
#define X_MEDIA_FAST_FORWARD bb
 | 
			
		||||
#define X_MEDIA_REWIND       bc
 | 
			
		||||
#define X_BRIGHTNESS_UP      bd
 | 
			
		||||
#define X_BRIGHTNESS_DOWN    be
 | 
			
		||||
#define X_AUDIO_MUTE          a8
 | 
			
		||||
#define X_AUDIO_VOL_UP        a9
 | 
			
		||||
#define X_AUDIO_VOL_DOWN      aa
 | 
			
		||||
#define X_MEDIA_NEXT_TRACK    ab
 | 
			
		||||
#define X_MEDIA_PREV_TRACK    ac
 | 
			
		||||
#define X_MEDIA_STOP          ad
 | 
			
		||||
#define X_MEDIA_PLAY_PAUSE    ae
 | 
			
		||||
#define X_MEDIA_SELECT        af
 | 
			
		||||
#define X_MEDIA_EJECT         b0
 | 
			
		||||
#define X_MAIL                b1
 | 
			
		||||
#define X_CALCULATOR          b2
 | 
			
		||||
#define X_MY_COMPUTER         b3
 | 
			
		||||
#define X_WWW_SEARCH          b4
 | 
			
		||||
#define X_WWW_HOME            b5
 | 
			
		||||
#define X_WWW_BACK            b6
 | 
			
		||||
#define X_WWW_FORWARD         b7
 | 
			
		||||
#define X_WWW_STOP            b8
 | 
			
		||||
#define X_WWW_REFRESH         b9
 | 
			
		||||
#define X_WWW_FAVORITES       ba
 | 
			
		||||
#define X_MEDIA_FAST_FORWARD  bb
 | 
			
		||||
#define X_MEDIA_REWIND        bc
 | 
			
		||||
#define X_BRIGHTNESS_UP       bd
 | 
			
		||||
#define X_BRIGHTNESS_DOWN     be
 | 
			
		||||
#define X_CONTROL_PANEL       bf
 | 
			
		||||
#define X_ASSISTANT           c0
 | 
			
		||||
 | 
			
		||||
/* Mouse Buttons (unallocated range in HID spec) */
 | 
			
		||||
#ifdef VIA_ENABLE
 | 
			
		||||
#define X_MS_UP              f0
 | 
			
		||||
#define X_MS_DOWN            f1
 | 
			
		||||
#define X_MS_LEFT            f2
 | 
			
		||||
#define X_MS_RIGHT           f3
 | 
			
		||||
#define X_MS_BTN1            f4
 | 
			
		||||
#define X_MS_BTN2            f5
 | 
			
		||||
#define X_MS_BTN3            f6
 | 
			
		||||
#define X_MS_BTN4            f7
 | 
			
		||||
#define X_MS_BTN5            f8
 | 
			
		||||
#define X_MS_BTN6            f8
 | 
			
		||||
#define X_MS_BTN7            f8
 | 
			
		||||
#define X_MS_BTN8            f8
 | 
			
		||||
#define X_MS_WH_UP           f9
 | 
			
		||||
#define X_MS_WH_DOWN         fa
 | 
			
		||||
#define X_MS_WH_LEFT         fb
 | 
			
		||||
#define X_MS_WH_RIGHT        fc
 | 
			
		||||
#define X_MS_ACCEL0          fd
 | 
			
		||||
#define X_MS_ACCEL1          fe
 | 
			
		||||
#define X_MS_ACCEL2          ff
 | 
			
		||||
#define X_MS_UP               f0
 | 
			
		||||
#define X_MS_DOWN             f1
 | 
			
		||||
#define X_MS_LEFT             f2
 | 
			
		||||
#define X_MS_RIGHT            f3
 | 
			
		||||
#define X_MS_BTN1             f4
 | 
			
		||||
#define X_MS_BTN2             f5
 | 
			
		||||
#define X_MS_BTN3             f6
 | 
			
		||||
#define X_MS_BTN4             f7
 | 
			
		||||
#define X_MS_BTN5             f8
 | 
			
		||||
#define X_MS_BTN6             f8
 | 
			
		||||
#define X_MS_BTN7             f8
 | 
			
		||||
#define X_MS_BTN8             f8
 | 
			
		||||
#define X_MS_WH_UP            f9
 | 
			
		||||
#define X_MS_WH_DOWN          fa
 | 
			
		||||
#define X_MS_WH_LEFT          fb
 | 
			
		||||
#define X_MS_WH_RIGHT         fc
 | 
			
		||||
#define X_MS_ACCEL0           fd
 | 
			
		||||
#define X_MS_ACCEL1           fe
 | 
			
		||||
#define X_MS_ACCEL2           ff
 | 
			
		||||
#else
 | 
			
		||||
#define X_MS_UP              cd
 | 
			
		||||
#define X_MS_DOWN            ce
 | 
			
		||||
#define X_MS_LEFT            cf
 | 
			
		||||
#define X_MS_RIGHT           d0
 | 
			
		||||
#define X_MS_BTN1            d1
 | 
			
		||||
#define X_MS_BTN2            d2
 | 
			
		||||
#define X_MS_BTN3            d3
 | 
			
		||||
#define X_MS_BTN4            d4
 | 
			
		||||
#define X_MS_BTN5            d5
 | 
			
		||||
#define X_MS_BTN6            d6
 | 
			
		||||
#define X_MS_BTN7            d7
 | 
			
		||||
#define X_MS_BTN8            d8
 | 
			
		||||
#define X_MS_WH_UP           d9
 | 
			
		||||
#define X_MS_WH_DOWN         da
 | 
			
		||||
#define X_MS_WH_LEFT         db
 | 
			
		||||
#define X_MS_WH_RIGHT        dc
 | 
			
		||||
#define X_MS_ACCEL0          dd
 | 
			
		||||
#define X_MS_ACCEL1          de
 | 
			
		||||
#define X_MS_ACCEL2          df
 | 
			
		||||
#define X_MS_UP               cd
 | 
			
		||||
#define X_MS_DOWN             ce
 | 
			
		||||
#define X_MS_LEFT             cf
 | 
			
		||||
#define X_MS_RIGHT            d0
 | 
			
		||||
#define X_MS_BTN1             d1
 | 
			
		||||
#define X_MS_BTN2             d2
 | 
			
		||||
#define X_MS_BTN3             d3
 | 
			
		||||
#define X_MS_BTN4             d4
 | 
			
		||||
#define X_MS_BTN5             d5
 | 
			
		||||
#define X_MS_BTN6             d6
 | 
			
		||||
#define X_MS_BTN7             d7
 | 
			
		||||
#define X_MS_BTN8             d8
 | 
			
		||||
#define X_MS_WH_UP            d9
 | 
			
		||||
#define X_MS_WH_DOWN          da
 | 
			
		||||
#define X_MS_WH_LEFT          db
 | 
			
		||||
#define X_MS_WH_RIGHT         dc
 | 
			
		||||
#define X_MS_ACCEL0           dd
 | 
			
		||||
#define X_MS_ACCEL1           de
 | 
			
		||||
#define X_MS_ACCEL2           df
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -439,6 +466,3 @@
 | 
			
		|||
#define SS_ROPT(string) SS_RALT(string)
 | 
			
		||||
#define SS_RCMD(string) SS_RGUI(string)
 | 
			
		||||
#define SS_RWIN(string) SS_RGUI(string)
 | 
			
		||||
 | 
			
		||||
// DEPRECATED
 | 
			
		||||
#define SS_LCTRL(string) SS_LCTL(string)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -92,13 +92,13 @@ void tap_dance_copy_paste_finished(qk_tap_dance_state_t *state, void *user_data)
 | 
			
		|||
        if (is_shift) {
 | 
			
		||||
            SEND_STRING(SS_LSFT(SS_TAP(X_INSERT)));
 | 
			
		||||
        } else {
 | 
			
		||||
            SEND_STRING(SS_LCTRL("v"));
 | 
			
		||||
            SEND_STRING(SS_LCTL("v"));
 | 
			
		||||
        }
 | 
			
		||||
    } else {
 | 
			
		||||
        if (is_shift) {
 | 
			
		||||
            SEND_STRING(SS_LCTRL(SS_TAP(X_INSERT)));
 | 
			
		||||
            SEND_STRING(SS_LCTL(SS_TAP(X_INSERT)));
 | 
			
		||||
        } else {
 | 
			
		||||
            SEND_STRING(SS_LCTRL("c"));
 | 
			
		||||
            SEND_STRING(SS_LCTL("c"));
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -135,7 +135,7 @@ bool try_handle_macro(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
            return true;
 | 
			
		||||
        case PSCREEN_APP:
 | 
			
		||||
            if (record->event.pressed)
 | 
			
		||||
                SEND_STRING(SS_LALT(SS_TAP(X_PSCREEN)));
 | 
			
		||||
                SEND_STRING(SS_LALT(SS_TAP(X_PRINT_SCREEN)));
 | 
			
		||||
            return true;
 | 
			
		||||
 | 
			
		||||
        default:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -13,7 +13,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
  switch (keycode) {
 | 
			
		||||
  case CLEAR:
 | 
			
		||||
    if (record->event.pressed) {
 | 
			
		||||
      SEND_STRING(SS_LCTRL("a") SS_TAP(X_DELETE));
 | 
			
		||||
      SEND_STRING(SS_LCTL("a") SS_TAP(X_DELETE));
 | 
			
		||||
    }
 | 
			
		||||
    return false;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -27,17 +27,17 @@ void matrix_scan_user(void) {
 | 
			
		|||
        SEQ_ONE_KEY(KC_N) { SEND_STRING(SS_LALT("n") "n"); }
 | 
			
		||||
        // ==== MACROS ===
 | 
			
		||||
        SEQ_ONE_KEY(KC_G) { SEND_STRING(" | grep "); }
 | 
			
		||||
        SEQ_ONE_KEY(KC_K) { onMac ? SEND_STRING(SS_LCTRL(" ")) : SEND_STRING(SS_LCTRL("f")); }
 | 
			
		||||
        SEQ_ONE_KEY(KC_K) { onMac ? SEND_STRING(SS_LCTL(" ")) : SEND_STRING(SS_LCTL("f")); }
 | 
			
		||||
        // vim delete all
 | 
			
		||||
        SEQ_TWO_KEYS(KC_D, KC_G) {
 | 
			
		||||
            if (onMac) {
 | 
			
		||||
                SEND_STRING(SS_LGUI("a") SS_TAP(X_D));
 | 
			
		||||
            } else {
 | 
			
		||||
                SEND_STRING(SS_LCTRL("a") SS_TAP(X_D));
 | 
			
		||||
                SEND_STRING(SS_LCTL("a") SS_TAP(X_D));
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        // tripe delete!
 | 
			
		||||
        SEQ_ONE_KEY(KC_BACKSPACE) { SEND_STRING(SS_TAP(X_BSPACE) SS_TAP(X_BSPACE) SS_TAP(X_BSPACE)); }
 | 
			
		||||
        SEQ_ONE_KEY(KC_BACKSPACE) { SEND_STRING(SS_TAP(X_BACKSPACE) SS_TAP(X_BACKSPACE) SS_TAP(X_BACKSPACE)); }
 | 
			
		||||
        SEQ_TWO_KEYS(KC_P, KC_G) { SEND_STRING("ps -ef | grep "); }
 | 
			
		||||
        SEQ_TWO_KEYS(KC_J, KC_A) { SEND_STRING("() => {}" SS_TAP(X_LEFT) SS_TAP(X_LEFT) SS_TAP(X_LEFT) SS_TAP(X_LEFT) SS_TAP(X_LEFT) SS_TAP(X_LEFT) SS_TAP(X_LEFT)); }
 | 
			
		||||
        // this is a pain to type
 | 
			
		||||
| 
						 | 
				
			
			@ -46,13 +46,13 @@ void matrix_scan_user(void) {
 | 
			
		|||
        // ### LAYER CHANGE
 | 
			
		||||
        SEQ_ONE_KEY(KC_1) { layer_on(1); }
 | 
			
		||||
        // control enter, because yes
 | 
			
		||||
        SEQ_ONE_KEY(KC_H) { SEND_STRING(SS_DOWN(X_LCTRL) SS_TAP(X_ENTER) SS_UP(X_LCTRL)); }
 | 
			
		||||
        SEQ_ONE_KEY(KC_H) { SEND_STRING(SS_DOWN(X_LCTL) SS_TAP(X_ENTER) SS_UP(X_LCTL)); }
 | 
			
		||||
        // paste all
 | 
			
		||||
        SEQ_ONE_KEY(KC_P) {
 | 
			
		||||
            if (onMac) {
 | 
			
		||||
                SEND_STRING(SS_LGUI("a") SS_LGUI("v"));
 | 
			
		||||
            } else {
 | 
			
		||||
                SEND_STRING(SS_LCTRL("a") SS_LCTRL("v"));
 | 
			
		||||
                SEND_STRING(SS_LCTL("a") SS_LCTL("v"));
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        SEQ_THREE_KEYS(KC_M, KC_A, KC_C) {
 | 
			
		||||
| 
						 | 
				
			
			@ -72,11 +72,11 @@ void matrix_scan_user(void) {
 | 
			
		|||
            if (onMac) {
 | 
			
		||||
                SEND_STRING(SS_LGUI("a") SS_LGUI("c"));
 | 
			
		||||
            } else {
 | 
			
		||||
                SEND_STRING(SS_LCTRL("a") SS_LCTRL("c"));
 | 
			
		||||
                SEND_STRING(SS_LCTL("a") SS_LCTL("c"));
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        // emoji bar
 | 
			
		||||
        SEQ_TWO_KEYS(KC_E, KC_E) { SEND_STRING(SS_DOWN(X_LGUI) SS_LCTRL(" ") SS_UP(X_LGUI)); }
 | 
			
		||||
        SEQ_TWO_KEYS(KC_E, KC_E) { SEND_STRING(SS_DOWN(X_LGUI) SS_LCTL(" ") SS_UP(X_LGUI)); }
 | 
			
		||||
 | 
			
		||||
        SEQ_TWO_KEYS(KC_F, KC_F) { SEND_STRING("ps -ef | grep "); }
 | 
			
		||||
        SEQ_TWO_KEYS(KC_H, KC_T) { SEND_STRING("https://"); }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -114,7 +114,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
            // == Multi Os START ===
 | 
			
		||||
        case KC_HOME:  // make the home behave the same on OSX
 | 
			
		||||
            if (record->event.pressed && onMac) {
 | 
			
		||||
                SEND_STRING(SS_LCTRL("a"));
 | 
			
		||||
                SEND_STRING(SS_LCTL("a"));
 | 
			
		||||
                return false;
 | 
			
		||||
            }
 | 
			
		||||
        case KC_END:  // make the end behave the same on OSX
 | 
			
		||||
| 
						 | 
				
			
			@ -138,32 +138,32 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
            if (record->event.pressed) return CMD(KC_X);
 | 
			
		||||
        case COPY:
 | 
			
		||||
            if (record->event.pressed) {
 | 
			
		||||
                onMac ? SEND_STRING(SS_LGUI("c")) : SEND_STRING(SS_LCTRL("c"));
 | 
			
		||||
                onMac ? SEND_STRING(SS_LGUI("c")) : SEND_STRING(SS_LCTL("c"));
 | 
			
		||||
            }
 | 
			
		||||
            return false;
 | 
			
		||||
        case PASTE:
 | 
			
		||||
            if (record->event.pressed) {
 | 
			
		||||
                onMac ? SEND_STRING(SS_LGUI("v")) : SEND_STRING(SS_LCTRL("v"));
 | 
			
		||||
                onMac ? SEND_STRING(SS_LGUI("v")) : SEND_STRING(SS_LCTL("v"));
 | 
			
		||||
            }
 | 
			
		||||
            return false;
 | 
			
		||||
        case SAVE:
 | 
			
		||||
            if (record->event.pressed) {
 | 
			
		||||
                onMac ? SEND_STRING(SS_LGUI("s")) : SEND_STRING(SS_LCTRL("s"));
 | 
			
		||||
                onMac ? SEND_STRING(SS_LGUI("s")) : SEND_STRING(SS_LCTL("s"));
 | 
			
		||||
            }
 | 
			
		||||
            return false;
 | 
			
		||||
        case UNDO:
 | 
			
		||||
            if (record->event.pressed) {
 | 
			
		||||
                onMac ? SEND_STRING(SS_LGUI("z")) : SEND_STRING(SS_LCTRL("z"));
 | 
			
		||||
                onMac ? SEND_STRING(SS_LGUI("z")) : SEND_STRING(SS_LCTL("z"));
 | 
			
		||||
            }
 | 
			
		||||
            return false;
 | 
			
		||||
        case REDO:
 | 
			
		||||
            if (record->event.pressed) {
 | 
			
		||||
                onMac ? SEND_STRING(SS_LGUI(SS_LSFT("z"))) : SEND_STRING(SS_LCTRL("y"));
 | 
			
		||||
                onMac ? SEND_STRING(SS_LGUI(SS_LSFT("z"))) : SEND_STRING(SS_LCTL("y"));
 | 
			
		||||
            }
 | 
			
		||||
            return false;
 | 
			
		||||
        case FIND:
 | 
			
		||||
            if (record->event.pressed) {
 | 
			
		||||
                onMac ? SEND_STRING(SS_LGUI("f")) : SEND_STRING(SS_LCTRL("f"));
 | 
			
		||||
                onMac ? SEND_STRING(SS_LGUI("f")) : SEND_STRING(SS_LCTL("f"));
 | 
			
		||||
            }
 | 
			
		||||
            return false;
 | 
			
		||||
        case WIN_TO_RIGHT:
 | 
			
		||||
| 
						 | 
				
			
			@ -178,7 +178,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
            return false;
 | 
			
		||||
        case CHG_LAYOUT:
 | 
			
		||||
            if (record->event.pressed) {
 | 
			
		||||
                onMac ? SEND_STRING(SS_LCTRL(" ")) : SEND_STRING(SS_LCTRL("f"));
 | 
			
		||||
                onMac ? SEND_STRING(SS_LCTL(" ")) : SEND_STRING(SS_LCTL("f"));
 | 
			
		||||
            }
 | 
			
		||||
            return false;
 | 
			
		||||
            // == Multi Os END ===
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -90,11 +90,11 @@ void td_copy_cut(qk_tap_dance_state_t *state, void *user_data)
 | 
			
		|||
{
 | 
			
		||||
  if (state->count == 2)
 | 
			
		||||
  {
 | 
			
		||||
    onMac ?  SEND_STRING(SS_LGUI("x")) :   SEND_STRING(SS_LCTRL("x"));
 | 
			
		||||
    onMac ?  SEND_STRING(SS_LGUI("x")) :   SEND_STRING(SS_LCTL("x"));
 | 
			
		||||
  }
 | 
			
		||||
  else
 | 
			
		||||
  {
 | 
			
		||||
    onMac ?  SEND_STRING(SS_LGUI("c")) : SEND_STRING(SS_LCTRL("c"));
 | 
			
		||||
    onMac ?  SEND_STRING(SS_LGUI("c")) : SEND_STRING(SS_LCTL("c"));
 | 
			
		||||
  }
 | 
			
		||||
  reset_tap_dance(state);
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			@ -103,11 +103,11 @@ void td_paste(qk_tap_dance_state_t *state, void *user_data)
 | 
			
		|||
{
 | 
			
		||||
  if (state->count == 2)
 | 
			
		||||
  {
 | 
			
		||||
    onMac ?  SEND_STRING(SS_DOWN(X_RSHIFT) SS_LGUI("v") SS_UP(X_RSHIFT)) :   SEND_STRING(SS_DOWN(X_RSHIFT) SS_LCTRL("v") SS_UP(X_RSHIFT));
 | 
			
		||||
    onMac ?  SEND_STRING(SS_DOWN(X_RSFT) SS_LGUI("v") SS_UP(X_RSFT)) :   SEND_STRING(SS_DOWN(X_RSFT) SS_LCTL("v") SS_UP(X_RSFT));
 | 
			
		||||
  }
 | 
			
		||||
  else
 | 
			
		||||
  {
 | 
			
		||||
    onMac ?  SEND_STRING(SS_LGUI("v")) : SEND_STRING(SS_LCTRL("v"));
 | 
			
		||||
    onMac ?  SEND_STRING(SS_LGUI("v")) : SEND_STRING(SS_LCTL("v"));
 | 
			
		||||
  }
 | 
			
		||||
  reset_tap_dance(state);
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -52,13 +52,13 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
        switch(keycode) {
 | 
			
		||||
            case HSH_TLD:
 | 
			
		||||
                if (get_mods()&(MOD_BIT(KC_LSFT)|MOD_BIT(KC_RSFT))) {
 | 
			
		||||
                    SEND_STRING(SS_TAP(X_NONUS_BSLASH));
 | 
			
		||||
                    SEND_STRING(SS_TAP(X_NONUS_BACKSLASH));
 | 
			
		||||
                } else {
 | 
			
		||||
                    SEND_STRING(SS_LALT("3"));
 | 
			
		||||
                }
 | 
			
		||||
                break;
 | 
			
		||||
            case CTRL_A:
 | 
			
		||||
                SEND_STRING(SS_LCTRL("a"));
 | 
			
		||||
                SEND_STRING(SS_LCTL("a"));
 | 
			
		||||
                break;
 | 
			
		||||
            case CMD_ALT_C:
 | 
			
		||||
                SEND_STRING(SS_LGUI(SS_LALT("c")));
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -42,13 +42,13 @@ void set_japanese_mode(bool new_state) {
 | 
			
		|||
    edvorakjp_state.japanese_mode = new_state;
 | 
			
		||||
    if (edvorakjp_state.japanese_mode) {
 | 
			
		||||
        if (edvorakjp_config.enable_kc_lang) {
 | 
			
		||||
            SEND_STRING(SS_TAP(X_LANG1));
 | 
			
		||||
            SEND_STRING(SS_TAP(X_LNG1));
 | 
			
		||||
        } else {
 | 
			
		||||
            SEND_STRING(SS_LALT("`"));
 | 
			
		||||
        }
 | 
			
		||||
    } else {
 | 
			
		||||
        if (edvorakjp_config.enable_kc_lang) {
 | 
			
		||||
            SEND_STRING(SS_TAP(X_LANG2));
 | 
			
		||||
            SEND_STRING(SS_TAP(X_LNG2));
 | 
			
		||||
        } else {
 | 
			
		||||
            SEND_STRING(SS_LALT("`"));
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -387,8 +387,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
 | 
			
		||||
      case SPRK_TCK:
 | 
			
		||||
          SEND_STRING ("```");
 | 
			
		||||
          SEND_STRING (SS_DOWN(X_LSHIFT) SS_TAP(X_ENTER) SS_UP(X_LSHIFT));
 | 
			
		||||
          SEND_STRING (SS_DOWN(X_LSHIFT) SS_TAP(X_ENTER) SS_UP(X_LSHIFT));
 | 
			
		||||
          SEND_STRING (SS_DOWN(X_LSFT) SS_TAP(X_ENTER) SS_UP(X_LSFT));
 | 
			
		||||
          SEND_STRING (SS_DOWN(X_LSFT) SS_TAP(X_ENTER) SS_UP(X_LSFT));
 | 
			
		||||
          SEND_STRING ("```");
 | 
			
		||||
          SEND_STRING (SS_TAP(X_UP));
 | 
			
		||||
          return false; break;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -55,15 +55,15 @@ enum babble_modes {
 | 
			
		|||
/// Hacks to make it easier to create sendstring macros
 | 
			
		||||
 | 
			
		||||
//"outer" versions wrap text
 | 
			
		||||
#    define OMCTL(arg) SS_DOWN(X_LCTRL) arg SS_UP(X_LCTRL)
 | 
			
		||||
#    define OMCTL(arg) SS_DOWN(X_LCTL) arg SS_UP(X_LCTL)
 | 
			
		||||
#    define OMGUI(arg) SS_DOWN(X_LGUI) arg SS_UP(X_LGUI)
 | 
			
		||||
#    define OMALT(arg) SS_DOWN(X_LALT) arg SS_UP(X_LALT)
 | 
			
		||||
#    define OMSFT(...) SS_DOWN(X_LSHIFT) __VA_ARGS__ SS_UP(X_LSHIFT)
 | 
			
		||||
#    define OMSFT(...) SS_DOWN(X_LSFT) __VA_ARGS__ SS_UP(X_LSFT)
 | 
			
		||||
//"inner" versions wrap a key tap
 | 
			
		||||
#    define IMCTL(arg) SS_DOWN(X_LCTRL) SS_TAP(arg) SS_UP(X_LCTRL)
 | 
			
		||||
#    define IMCTL(arg) SS_DOWN(X_LCTL) SS_TAP(arg) SS_UP(X_LCTL)
 | 
			
		||||
#    define IMGUI(arg) SS_DOWN(X_LGUI) SS_TAP(arg) SS_UP(X_LGUI)
 | 
			
		||||
#    define IMALT(arg) SS_DOWN(X_LALT) SS_TAP(arg) SS_UP(X_LALT)
 | 
			
		||||
#    define IMSFT(arg) SS_DOWN(X_LSHIFT) SS_TAP(arg) SS_UP(X_LSHIFT)
 | 
			
		||||
#    define IMSFT(arg) SS_DOWN(X_LSFT) SS_TAP(arg) SS_UP(X_LSFT)
 | 
			
		||||
 | 
			
		||||
#    define BABLM(ent, ...)           \
 | 
			
		||||
        if (ent == keycode) {         \
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -30,22 +30,22 @@ bool babblePaste_chromeos(uint16_t keycode) {
 | 
			
		|||
    BABLM(BABL_GO_PARA_END, IMCTL(X_DOWN));  // untested
 | 
			
		||||
    BABLM(BABL_PGDN, IMGUI(X_DOWN));
 | 
			
		||||
    BABLM(BABL_PGUP, IMGUI(X_UP));
 | 
			
		||||
    BABLM(BABL_DEL_RIGHT_1C, IMALT(X_BSPACE));
 | 
			
		||||
    BABLM(BABL_DEL_LEFT_WORD, IMCTL(X_BSPACE));
 | 
			
		||||
    BABLM(BABL_DEL_RIGHT_WORD, OMSFT(IMCTL(X_RIGHT)) SS_TAP(X_BSPACE));
 | 
			
		||||
    BABLM(BABL_DEL_TO_LINE_END, OMSFT(IMGUI(X_LEFT)) SS_TAP(X_BSPACE));
 | 
			
		||||
    BABLM(BABL_DEL_TO_LINE_START, OMSFT(IMGUI(X_RIGHT)) SS_TAP(X_BSPACE));
 | 
			
		||||
    BABLM(BABL_DEL_RIGHT_1C, IMALT(X_BACKSPACE));
 | 
			
		||||
    BABLM(BABL_DEL_LEFT_WORD, IMCTL(X_BACKSPACE));
 | 
			
		||||
    BABLM(BABL_DEL_RIGHT_WORD, OMSFT(IMCTL(X_RIGHT)) SS_TAP(X_BACKSPACE));
 | 
			
		||||
    BABLM(BABL_DEL_TO_LINE_END, OMSFT(IMGUI(X_LEFT)) SS_TAP(X_BACKSPACE));
 | 
			
		||||
    BABLM(BABL_DEL_TO_LINE_START, OMSFT(IMGUI(X_RIGHT)) SS_TAP(X_BACKSPACE));
 | 
			
		||||
    BABLM(BABL_MODE, ("ChromeOS "));
 | 
			
		||||
#        endif
 | 
			
		||||
#        ifdef BABL_OSKEYS
 | 
			
		||||
    BABLM(BABL_UNDO, SS_LCTRL("z"));
 | 
			
		||||
    BABLM(BABL_UNDO, SS_LCTL("z"));
 | 
			
		||||
    BABLM(BABL_REDO, OMSFT(IMCTL(X_Z)));
 | 
			
		||||
    BABLM(BABL_CUT, SS_LCTRL("x"));
 | 
			
		||||
    BABLM(BABL_COPY, SS_LCTRL("c"));
 | 
			
		||||
    BABLM(BABL_PASTE, SS_LCTRL("v"));
 | 
			
		||||
    BABLM(BABL_SELECT_ALL, SS_LCTRL("a"));
 | 
			
		||||
    BABLM(BABL_FIND, SS_LCTRL("f"));
 | 
			
		||||
    BABLM(BABL_FIND_NEXT, SS_LCTRL("g"));
 | 
			
		||||
    BABLM(BABL_CUT, SS_LCTL("x"));
 | 
			
		||||
    BABLM(BABL_COPY, SS_LCTL("c"));
 | 
			
		||||
    BABLM(BABL_PASTE, SS_LCTL("v"));
 | 
			
		||||
    BABLM(BABL_SELECT_ALL, SS_LCTL("a"));
 | 
			
		||||
    BABLM(BABL_FIND, SS_LCTL("f"));
 | 
			
		||||
    BABLM(BABL_FIND_NEXT, SS_LCTL("g"));
 | 
			
		||||
    BABLM(BABL_FIND_PREV, OMSFT(IMCTL(X_G)));
 | 
			
		||||
    BABLM(BABL_WINDOW_NEW, IMCTL(X_N));
 | 
			
		||||
    //	BABLM( BABL_FIND_REPLACE,		() ); // not part of Chrome
 | 
			
		||||
| 
						 | 
				
			
			@ -60,33 +60,33 @@ bool babblePaste_chromeos(uint16_t keycode) {
 | 
			
		|||
    BABLM(BABL_SWITCH_KEYBOARD_LAYOUT, IMCTL(X_SPACE));
 | 
			
		||||
#        endif
 | 
			
		||||
#        ifdef BABL_BROWSER
 | 
			
		||||
    BABLM(BABL_BROWSER_NEW_TAB, SS_LCTRL("t"));
 | 
			
		||||
    BABLM(BABL_BROWSER_CLOSE_TAB, SS_LCTRL("w"));
 | 
			
		||||
    BABLM(BABL_BROWSER_NEW_TAB, SS_LCTL("t"));
 | 
			
		||||
    BABLM(BABL_BROWSER_CLOSE_TAB, SS_LCTL("w"));
 | 
			
		||||
    BABLM(BABL_BROWSER_REOPEN_LAST_TAB, OMSFT(IMCTL(X_T)));
 | 
			
		||||
    BABLM(BABL_BROWSER_NEXT_TAB, IMCTL(X_TAB));
 | 
			
		||||
    BABLM(BABL_BROWSER_PREV_TAB, OMSFT(IMCTL(X_TAB)));
 | 
			
		||||
    BABLM(BABL_BROWSER_URL_BAR, SS_LCTRL("l"));
 | 
			
		||||
    BABLM(BABL_BROWSER_URL_BAR, SS_LCTL("l"));
 | 
			
		||||
    BABLM(BABL_BROWSER_FORWARD, IMALT(X_RIGHT));
 | 
			
		||||
    BABLM(BABL_BROWSER_BACK, IMALT(X_LEFT));
 | 
			
		||||
    ;
 | 
			
		||||
    BABLM(BABL_BROWSER_FIND, SS_LCTRL("f"));
 | 
			
		||||
    BABLM(BABL_BROWSER_BOOKMARK, SS_LCTRL("d"));
 | 
			
		||||
    BABLM(BABL_BROWSER_FIND, SS_LCTL("f"));
 | 
			
		||||
    BABLM(BABL_BROWSER_BOOKMARK, SS_LCTL("d"));
 | 
			
		||||
    BABLM(BABL_BROWSER_DEV_TOOLS, OMSFT(IMCTL(X_I)));
 | 
			
		||||
    BABLM(BABL_BROWSER_RELOAD, OMSFT(IMCTL(X_R)));       // hard reload w/o cache
 | 
			
		||||
    BABLM(BABL_BROWSER_FULLSCREEN, SS_TAP(X_F4));        // untested
 | 
			
		||||
    BABLM(BABL_BROWSER_ZOOM_IN, OMSFT(IMCTL(X_EQUAL)));  // ctr+ +
 | 
			
		||||
    BABLM(BABL_BROWSER_ZOOM_OUT, IMCTL(X_MINUS));
 | 
			
		||||
    BABLM(BABL_BROWSER_VIEWSRC, SS_LCTRL("u"));  // Chrome or firefox
 | 
			
		||||
    BABLM(BABL_BROWSER_VIEWSRC, SS_LCTL("u"));  // Chrome or firefox
 | 
			
		||||
#        endif
 | 
			
		||||
 | 
			
		||||
#        ifdef BABL_APP
 | 
			
		||||
    BABLM(BABL_APP_SAVE, SS_LCTL("s"));
 | 
			
		||||
    //#ifdef BABL_APP_GOOGLE  -- we're going to make an assumption.
 | 
			
		||||
    BABLM(BABL_APP_CENTER_ALIGN, OMSFT(IMCTL(X_E)));
 | 
			
		||||
    BABLM(BABL_APP_SCROLL_ACTIVE_CELL, IMCTL(X_BSPACE));
 | 
			
		||||
    BABLM(BABL_APP_SCROLL_ACTIVE_CELL, IMCTL(X_BACKSPACE));
 | 
			
		||||
    BABLM(BABL_NEWLINE_IN_CELL, IMALT(X_ENTER));
 | 
			
		||||
    BABLM(BABL_INSERT_COMMENT, OMALT(IMCTL(X_M)));
 | 
			
		||||
    BABLM(BABL_APP_CLEAR_FORMATTING, IMCTL(X_BSLASH));
 | 
			
		||||
    BABLM(BABL_APP_CLEAR_FORMATTING, IMCTL(X_BACKSLASH));
 | 
			
		||||
    BABLM(BABL_DELETE_ROW, IMALT(X_E) "d");
 | 
			
		||||
    BABLM(BABL_INSERT_COL_LEFT, IMALT(X_I) "c");  // o for to the right.
 | 
			
		||||
    BABLM(BABL_INSERT_ROW, IMALT(X_I) "w");       // r for above.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -24,41 +24,41 @@ bool babblePaste_emacs(uint16_t keycode) {
 | 
			
		|||
    BABLM(BABL_GO_RIGHT_1C, SS_TAP(X_RIGHT));
 | 
			
		||||
    BABLM(BABL_GO_LEFT_WORD, IMALT(X_B));
 | 
			
		||||
    BABLM(BABL_GO_RIGHT_WORD, IMALT(X_F));
 | 
			
		||||
    BABLM(BABL_GO_START_LINE, SS_LCTRL("a"));
 | 
			
		||||
    BABLM(BABL_GO_END_LINE, SS_LCTRL("e"));
 | 
			
		||||
    BABLM(BABL_GO_START_LINE, SS_LCTL("a"));
 | 
			
		||||
    BABLM(BABL_GO_END_LINE, SS_LCTL("e"));
 | 
			
		||||
    BABLM(BABL_GO_START_DOC, OMALT(IMSFT(X_COMMA)));
 | 
			
		||||
    BABLM(BABL_GO_END_DOC, OMALT(IMSFT(X_DOT)));
 | 
			
		||||
    BABLM(BABL_GO_NEXT_LINE, SS_LCTRL("n"));
 | 
			
		||||
    BABLM(BABL_GO_PREV_LINE, SS_LCTRL("p"));
 | 
			
		||||
    BABLM(BABL_GO_PARA_START, OMALT(IMSFT(X_LBRACKET)));
 | 
			
		||||
    BABLM(BABL_GO_PARA_END, OMALT(IMSFT(X_RBRACKET)));
 | 
			
		||||
    BABLM(BABL_PGDN, SS_LCTRL("v"));
 | 
			
		||||
    BABLM(BABL_GO_NEXT_LINE, SS_LCTL("n"));
 | 
			
		||||
    BABLM(BABL_GO_PREV_LINE, SS_LCTL("p"));
 | 
			
		||||
    BABLM(BABL_GO_PARA_START, OMALT(IMSFT(X_LEFT_BRACKET)));
 | 
			
		||||
    BABLM(BABL_GO_PARA_END, OMALT(IMSFT(X_RIGHT_BRACKET)));
 | 
			
		||||
    BABLM(BABL_PGDN, SS_LCTL("v"));
 | 
			
		||||
    BABLM(BABL_PGUP, IMALT(X_V));
 | 
			
		||||
    BABLM(BABL_DEL_RIGHT_1C, SS_LCTRL("d"));
 | 
			
		||||
    BABLM(BABL_DEL_LEFT_WORD, IMCTL(X_BSPACE));
 | 
			
		||||
    BABLM(BABL_DEL_RIGHT_1C, SS_LCTL("d"));
 | 
			
		||||
    BABLM(BABL_DEL_LEFT_WORD, IMCTL(X_BACKSPACE));
 | 
			
		||||
    BABLM(BABL_DEL_RIGHT_WORD, IMALT(X_D));
 | 
			
		||||
    BABLM(BABL_DEL_TO_LINE_END, SS_LCTRL("k"));
 | 
			
		||||
    BABLM(BABL_DEL_TO_LINE_START, SS_TAP(X_ESCAPE) "0" SS_LCTRL("k"));
 | 
			
		||||
    BABLM(BABL_DEL_TO_LINE_END, SS_LCTL("k"));
 | 
			
		||||
    BABLM(BABL_DEL_TO_LINE_START, SS_TAP(X_ESCAPE) "0" SS_LCTL("k"));
 | 
			
		||||
    BABLM(BABL_MODE, "Emacs ");
 | 
			
		||||
#        endif
 | 
			
		||||
#        ifdef BABL_OSKEYS
 | 
			
		||||
    BABLM(BABL_UNDO, SS_LCTRL("x") "c");
 | 
			
		||||
    BABLM(BABL_REDO, SS_LCTRL("x") "c");  // arguably
 | 
			
		||||
    BABLM(BABL_CUT, SS_LCTRL("w"));
 | 
			
		||||
    BABLM(BABL_UNDO, SS_LCTL("x") "c");
 | 
			
		||||
    BABLM(BABL_REDO, SS_LCTL("x") "c");  // arguably
 | 
			
		||||
    BABLM(BABL_CUT, SS_LCTL("w"));
 | 
			
		||||
    BABLM(BABL_COPY, SS_LALT("w"));  // really?
 | 
			
		||||
    BABLM(BABL_PASTE, SS_LCTRL("y"));
 | 
			
		||||
    BABLM(BABL_SELECT_ALL, SS_LCTRL("x") "h");
 | 
			
		||||
    BABLM(BABL_FIND, SS_LCTRL("s"));
 | 
			
		||||
    BABLM(BABL_FIND_NEXT, SS_LCTRL("s"));
 | 
			
		||||
    BABLM(BABL_FIND_PREV, SS_LCTRL("r"));
 | 
			
		||||
    BABLM(BABL_PASTE, SS_LCTL("y"));
 | 
			
		||||
    BABLM(BABL_SELECT_ALL, SS_LCTL("x") "h");
 | 
			
		||||
    BABLM(BABL_FIND, SS_LCTL("s"));
 | 
			
		||||
    BABLM(BABL_FIND_NEXT, SS_LCTL("s"));
 | 
			
		||||
    BABLM(BABL_FIND_PREV, SS_LCTL("r"));
 | 
			
		||||
    BABLM(BABL_FIND_REPLACE, OMALT(IMSFT(X_5)));
 | 
			
		||||
    // BABLM( BABL_RUNAPP , 			//(SS_LALT("x") "shell")	 );// arguably
 | 
			
		||||
    BABLM(BABL_RUNAPP, IMALT(X_X) "split-window" SS_TAP(X_ENTER));  // arguably
 | 
			
		||||
    BABLM(BABL_WINDOW_NEXT, SS_LCTRL("x") "o");
 | 
			
		||||
    BABLM(BABL_WINDOW_PREV, SS_LCTRL("x") "o");  // arguably
 | 
			
		||||
    BABLM(BABL_WINDOW_NEXT, SS_LCTL("x") "o");
 | 
			
		||||
    BABLM(BABL_WINDOW_PREV, SS_LCTL("x") "o");  // arguably
 | 
			
		||||
    //	BABLM( BABL_WINDOW_NEW,		IMCTL(X_X)"n" ); //
 | 
			
		||||
    BABLM(BABL_CLOSE_APP, SS_LCTRL("x") "c");
 | 
			
		||||
    BABLM(BABL_HELP, SS_LCTRL("h") "a");  // start search in help
 | 
			
		||||
    BABLM(BABL_CLOSE_APP, SS_LCTL("x") "c");
 | 
			
		||||
    BABLM(BABL_HELP, SS_LCTL("h") "a");  // start search in help
 | 
			
		||||
                                          // BABLM( BABL_LOCK,		()	); // lock buffer? Too many options.
 | 
			
		||||
    // BABLM( BABL_SCREENCAPTURE,		()	); // requires plugin?
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -70,13 +70,13 @@ bool babblePaste_emacs(uint16_t keycode) {
 | 
			
		|||
#        ifdef BABL_APP
 | 
			
		||||
    BABLM(BABL_APP_SAVE, SS_LCTL("x") SS_LCTL("s"));
 | 
			
		||||
    BABLM(BABL_APP_SET_MARK, IMCTL(X_SPACE));
 | 
			
		||||
    /// BABLM( BABL_APP_MULTI_SELECT, 	SS_LCTRL("x") "rt" ); // arguably
 | 
			
		||||
    BABLM(BABL_SPLIT_FRAME_VERT, SS_LCTRL("x") "3");
 | 
			
		||||
    BABLM(BABL_UNSPLIT_FRAME_VERT, SS_LCTRL("u") SS_LCTRL("x") "0");
 | 
			
		||||
    BABLM(BABL_SPLIT_FRAME_HORIZONTAL, SS_LCTRL("x") "2");
 | 
			
		||||
    BABLM(BABL_UNSPLIT_FRAME_HORIZONTAL, SS_LCTRL("u") SS_LCTRL("x") "0");
 | 
			
		||||
    BABLM(BABL_NEXT_FRAME, SS_LCTRL("x") "o");
 | 
			
		||||
    BABLM(BABL_PREV_FRAME, SS_LCTRL("u") "-1" SS_LCTRL("x") "o");
 | 
			
		||||
    /// BABLM( BABL_APP_MULTI_SELECT, 	SS_LCTL("x") "rt" ); // arguably
 | 
			
		||||
    BABLM(BABL_SPLIT_FRAME_VERT, SS_LCTL("x") "3");
 | 
			
		||||
    BABLM(BABL_UNSPLIT_FRAME_VERT, SS_LCTL("u") SS_LCTL("x") "0");
 | 
			
		||||
    BABLM(BABL_SPLIT_FRAME_HORIZONTAL, SS_LCTL("x") "2");
 | 
			
		||||
    BABLM(BABL_UNSPLIT_FRAME_HORIZONTAL, SS_LCTL("u") SS_LCTL("x") "0");
 | 
			
		||||
    BABLM(BABL_NEXT_FRAME, SS_LCTL("x") "o");
 | 
			
		||||
    BABLM(BABL_PREV_FRAME, SS_LCTL("u") "-1" SS_LCTL("x") "o");
 | 
			
		||||
#        endif
 | 
			
		||||
 | 
			
		||||
    // Todo, ring bell, flash light, show user this isn't supported
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -42,7 +42,7 @@ bool babblePaste_kitty(uint16_t keycode) {
 | 
			
		|||
    // BABLM(BABL_GO_NEXT_LINE, OMSFT(IMCTL(X_DOWN)));
 | 
			
		||||
    // BABLM(BABL_GO_PREV_LINE, OMSFT(IMCTL(X_UP)));
 | 
			
		||||
    // passthrough
 | 
			
		||||
    BABLM(BABL_PGDN, OMSFT(IMCTL(X_PGDOWN)));  // kitty pagedown
 | 
			
		||||
    BABLM(BABL_PGDN, OMSFT(IMCTL(X_PGDN)));  // kitty pagedown
 | 
			
		||||
    BABLM(BABL_PGUP, OMSFT(IMCTL(X_PGUP)));    // kitty pageup
 | 
			
		||||
                                               // passthrough to commanrd line/shell.
 | 
			
		||||
    BABLM(BABL_DEL_RIGHT_1C, SS_LCTL("d"));
 | 
			
		||||
| 
						 | 
				
			
			@ -84,7 +84,7 @@ bool babblePaste_kitty(uint16_t keycode) {
 | 
			
		|||
                                                    // KITTY - missing close window.
 | 
			
		||||
    // BABLM( BABL_HELP,		(SS_TAP(X_F1))	); // NA?
 | 
			
		||||
    // BABLM(BABL_LOCK, OMCTL(IMALT(X_L))); // NA passthrough
 | 
			
		||||
    // BABLM(BABL_SCREENCAPTURE, IMSFT(X_PSCREEN)); // NA passthrough
 | 
			
		||||
    // BABLM(BABL_SCREENCAPTURE, IMSFT(X_PRINT_SCREEN)); // NA passthrough
 | 
			
		||||
#        endif
 | 
			
		||||
#        ifdef BABL_BROWSER
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -29,10 +29,10 @@ bool babblePaste_linux(uint16_t keycode) {
 | 
			
		|||
    BABLM(BABL_GO_PREV_LINE, SS_TAP(X_UP));
 | 
			
		||||
    BABLM(BABL_GO_PARA_START, IMCTL(X_UP));
 | 
			
		||||
    BABLM(BABL_GO_PARA_END, IMCTL(X_DOWN));
 | 
			
		||||
    BABLM(BABL_PGDN, SS_TAP(X_PGDOWN));
 | 
			
		||||
    BABLM(BABL_PGDN, SS_TAP(X_PGDN));
 | 
			
		||||
    BABLM(BABL_PGUP, SS_TAP(X_PGUP));
 | 
			
		||||
    BABLM(BABL_DEL_RIGHT_1C, SS_TAP(X_DELETE));
 | 
			
		||||
    BABLM(BABL_DEL_LEFT_WORD, IMCTL(X_BSPACE));
 | 
			
		||||
    BABLM(BABL_DEL_LEFT_WORD, IMCTL(X_BACKSPACE));
 | 
			
		||||
    BABLM(BABL_DEL_RIGHT_WORD, IMCTL(X_DELETE));
 | 
			
		||||
    BABLM(BABL_DEL_TO_LINE_END, IMSFT(X_HOME) SS_TAP(X_DELETE));
 | 
			
		||||
    BABLM(BABL_DEL_TO_LINE_START, IMSFT(X_END) SS_TAP(X_DELETE));
 | 
			
		||||
| 
						 | 
				
			
			@ -57,11 +57,11 @@ bool babblePaste_linux(uint16_t keycode) {
 | 
			
		|||
    BABLM(BABL_SWITCH_APP_NEXT, IMALT(X_TAB));
 | 
			
		||||
    BABLM(BABL_SWITCH_APP_LAST, OMSFT(IMALT(X_TAB)));
 | 
			
		||||
    BABLM(BABL_WINDOW_NEXT, OMCTL(IMALT(X_PGUP)));  // Gnome, sometimes
 | 
			
		||||
    BABLM(BABL_WINDOW_PREV, OMCTL(IMALT(X_PGDOWN)));
 | 
			
		||||
    BABLM(BABL_WINDOW_PREV, OMCTL(IMALT(X_PGDN)));
 | 
			
		||||
    BABLM(BABL_WINDOW_NEW, IMCTL(X_N));
 | 
			
		||||
    // BABLM( BABL_HELP,		(SS_TAP(X_F1))	); // NA?
 | 
			
		||||
    BABLM(BABL_LOCK, OMCTL(IMALT(X_L)));
 | 
			
		||||
    BABLM(BABL_SCREENCAPTURE, IMSFT(X_PSCREEN));
 | 
			
		||||
    BABLM(BABL_SCREENCAPTURE, IMSFT(X_PRINT_SCREEN));
 | 
			
		||||
#        endif
 | 
			
		||||
#        ifdef BABL_BROWSER
 | 
			
		||||
    BABLM(BABL_BROWSER_NEW_TAB, SS_LCTL("t"));
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -29,12 +29,12 @@ bool babblePaste_mac(uint16_t keycode) {
 | 
			
		|||
    BABLM(BABL_GO_PARA_START, IMALT(X_UP));
 | 
			
		||||
    BABLM(BABL_DEL_RIGHT_1C, SS_TAP(X_DELETE));
 | 
			
		||||
    BABLM(BABL_GO_PARA_END, IMALT(X_DOWN));
 | 
			
		||||
    BABLM(BABL_PGDN, SS_TAP(X_PGDOWN));
 | 
			
		||||
    BABLM(BABL_PGDN, SS_TAP(X_PGDN));
 | 
			
		||||
    BABLM(BABL_PGUP, SS_TAP(X_PGUP));
 | 
			
		||||
    BABLM(BABL_DEL_LEFT_WORD, IMALT(X_BSPACE));
 | 
			
		||||
    BABLM(BABL_DEL_LEFT_WORD, IMALT(X_BACKSPACE));
 | 
			
		||||
    BABLM(BABL_DEL_RIGHT_WORD, IMALT(X_DELETE));
 | 
			
		||||
    BABLM(BABL_DEL_TO_LINE_END, OMSFT(IMGUI(X_RIGHT)) SS_TAP(X_BSPACE));  // this is more app agnostic than ctrl-k
 | 
			
		||||
    BABLM(BABL_DEL_TO_LINE_START, OMSFT(IMGUI(X_LEFT)) SS_TAP(X_BSPACE));
 | 
			
		||||
    BABLM(BABL_DEL_TO_LINE_END, OMSFT(IMGUI(X_RIGHT)) SS_TAP(X_BACKSPACE));  // this is more app agnostic than ctrl-k
 | 
			
		||||
    BABLM(BABL_DEL_TO_LINE_START, OMSFT(IMGUI(X_LEFT)) SS_TAP(X_BACKSPACE));
 | 
			
		||||
    BABLM(BABL_MODE, "Mac ");
 | 
			
		||||
#        endif
 | 
			
		||||
#        ifdef BABL_OSKEYS
 | 
			
		||||
| 
						 | 
				
			
			@ -55,8 +55,8 @@ bool babblePaste_mac(uint16_t keycode) {
 | 
			
		|||
    BABLM(BABL_SWITCH_APP_LAST, OMSFT(IMGUI(X_TAB)));
 | 
			
		||||
    // Apps vary, but this is  usually tab movement, same as B_NXTB
 | 
			
		||||
    /*
 | 
			
		||||
    BABLM( BABL_WINDOW_NEXT, OMSFT(IMGUI(X_RBRACKET)) ); // GUI Grav isn't everywhere
 | 
			
		||||
    BABLM( BABL_WINDOW_PREV, OMSFT(IMGUI(X_LBRACKET)) );
 | 
			
		||||
    BABLM( BABL_WINDOW_NEXT, OMSFT(IMGUI(X_RIGHT_BRACKET)) ); // GUI Grav isn't everywhere
 | 
			
		||||
    BABLM( BABL_WINDOW_PREV, OMSFT(IMGUI(X_LEFT_BRACKET)) );
 | 
			
		||||
    */
 | 
			
		||||
    BABLM(BABL_WINDOW_NEXT, IMGUI(X_GRAVE));
 | 
			
		||||
    BABLM(BABL_WINDOW_PREV, OMSFT(IMGUI(X_GRAVE)));
 | 
			
		||||
| 
						 | 
				
			
			@ -80,7 +80,7 @@ bool babblePaste_mac(uint16_t keycode) {
 | 
			
		|||
    BABLM(BABL_BROWSER_FIND, SS_LGUI("f"));
 | 
			
		||||
    BABLM(BABL_BROWSER_BOOKMARK, SS_LGUI("d"));
 | 
			
		||||
    BABLM(BABL_BROWSER_RELOAD, OMGUI(SS_LSFT("r")));  // hard reload w/o cache
 | 
			
		||||
    BABLM(BABL_BROWSER_FULLSCREEN, OMGUI(SS_LCTRL("p")));
 | 
			
		||||
    BABLM(BABL_BROWSER_FULLSCREEN, OMGUI(SS_LCTL("p")));
 | 
			
		||||
    BABLM(BABL_BROWSER_ZOOM_IN, IMGUI(X_KP_PLUS));  // ctr+ +
 | 
			
		||||
    BABLM(BABL_BROWSER_ZOOM_OUT, IMGUI(X_KP_MINUS));
 | 
			
		||||
#            ifdef BABL_BROWSER_CHROME
 | 
			
		||||
| 
						 | 
				
			
			@ -106,7 +106,7 @@ bool babblePaste_mac(uint16_t keycode) {
 | 
			
		|||
#                ifdef BABL_APP_MSOFFICE
 | 
			
		||||
    BABLM(BABL_APP_CENTER_ALIGN, IMGUI(X_E));
 | 
			
		||||
    // BABLM( BABL_APP_CLEAR_FORMATTING, 	OMCTL(IMGUI(X_G)) ); // this isn't native. https://support.office.com/en-us/article/Clear-all-text-formatting-C094C4DA-7F09-4CEA-9A8D-C166949C9C80#OfficeVersion=macOS
 | 
			
		||||
    BABLM(BABL_APP_SCROLL_ACTIVE_CELL, IMCTL(X_BSPACE));
 | 
			
		||||
    BABLM(BABL_APP_SCROLL_ACTIVE_CELL, IMCTL(X_BACKSPACE));
 | 
			
		||||
    BABLM(BABL_NEWLINE_IN_CELL, IMALT(X_ENTER));
 | 
			
		||||
    BABLM(BABL_INSERT_COMMENT, IMSFT(X_F2));
 | 
			
		||||
    BABLM(BABL_INSERT_COL_LEFT, IMCTL(X_I));
 | 
			
		||||
| 
						 | 
				
			
			@ -118,10 +118,10 @@ bool babblePaste_mac(uint16_t keycode) {
 | 
			
		|||
 | 
			
		||||
#                ifdef BABL_APP_GOOGLE
 | 
			
		||||
    BABLM(BABL_APP_CENTER_ALIGN, OMSFT(IMGUI(X_E)));
 | 
			
		||||
    BABLM(BABL_APP_SCROLL_ACTIVE_CELL, IMCTL(X_BSPACE));
 | 
			
		||||
    BABLM(BABL_APP_SCROLL_ACTIVE_CELL, IMCTL(X_BACKSPACE));
 | 
			
		||||
    BABLM(BABL_NEWLINE_IN_CELL, IMALT(X_ENTER));
 | 
			
		||||
    BABLM(BABL_INSERT_COMMENT, IMSFT(X_F2));
 | 
			
		||||
    BABLM(BABL_APP_CLEAR_FORMATTING, IMGUI(X_BSLASH));
 | 
			
		||||
    BABLM(BABL_APP_CLEAR_FORMATTING, IMGUI(X_BACKSLASH));
 | 
			
		||||
    BABLM(BABL_DELETE_ROW, OMCTL(IMGUI(X_G)));
 | 
			
		||||
    BABLM(BABL_INSERT_COL_LEFT, OMALT(IMCTL(X_I)) "c");  // o for to the right.
 | 
			
		||||
    BABLM(BABL_INSERT_ROW, OMALT(IMCTL(X_I)) "b");       // r for above.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -21,35 +21,35 @@ https://www.nano-editor.org/dist/latest/cheatsheet.html
 | 
			
		|||
 | 
			
		||||
bool babblePaste_nano(uint16_t keycode) {
 | 
			
		||||
#        ifdef BABL_MOVE
 | 
			
		||||
    BABLM(BABL_GO_LEFT_1C, SS_LCTRL("b"));
 | 
			
		||||
    BABLM(BABL_GO_LEFT_1C, SS_LCTL("b"));
 | 
			
		||||
    BABLM(BABL_GO_RIGHT_1C, SS_LCTL("f"));
 | 
			
		||||
    BABLM(BABL_GO_LEFT_WORD, IMCTL(X_LEFT));
 | 
			
		||||
    BABLM(BABL_GO_RIGHT_WORD, IMCTL(X_RIGHT));
 | 
			
		||||
    BABLM(BABL_GO_START_LINE, SS_LCTRL("a"));
 | 
			
		||||
    BABLM(BABL_GO_END_LINE, SS_LCTRL("e"));
 | 
			
		||||
    BABLM(BABL_GO_START_LINE, SS_LCTL("a"));
 | 
			
		||||
    BABLM(BABL_GO_END_LINE, SS_LCTL("e"));
 | 
			
		||||
    BABLM(BABL_GO_START_DOC, IMALT(X_BSLS));
 | 
			
		||||
    BABLM(BABL_GO_END_DOC, IMALT(X_SLASH));
 | 
			
		||||
    BABLM(BABL_GO_NEXT_LINE, SS_LCTRL("n"));
 | 
			
		||||
    BABLM(BABL_GO_PREV_LINE, SS_LCTRL("p"));
 | 
			
		||||
    BABLM(BABL_GO_NEXT_LINE, SS_LCTL("n"));
 | 
			
		||||
    BABLM(BABL_GO_PREV_LINE, SS_LCTL("p"));
 | 
			
		||||
    BABLM(BABL_GO_PARA_START, IMCTL(X_UP));
 | 
			
		||||
    BABLM(BABL_GO_PARA_END, IMCTL(X_DOWN));
 | 
			
		||||
    BABLM(BABL_PGDN, SS_LCTRL("v"));
 | 
			
		||||
    BABLM(BABL_PGUP, SS_LCTRL("y"));
 | 
			
		||||
    BABLM(BABL_DEL_RIGHT_1C, SS_LCTRL("d"));
 | 
			
		||||
    BABLM(BABL_PGDN, SS_LCTL("v"));
 | 
			
		||||
    BABLM(BABL_PGUP, SS_LCTL("y"));
 | 
			
		||||
    BABLM(BABL_DEL_RIGHT_1C, SS_LCTL("d"));
 | 
			
		||||
    BABLM(BABL_DEL_LEFT_WORD, IMCTL(X_BSPC));
 | 
			
		||||
    BABLM(BABL_DEL_RIGHT_WORD, IMCTL(X_DEL));
 | 
			
		||||
    //   BABLM(BABL_DEL_TO_LINE_END, SS_LCTRL("k"));
 | 
			
		||||
    //   BABLM(BABL_DEL_TO_LINE_START, SS_TAP(X_ESCAPE) "0" SS_LCTRL("k"));
 | 
			
		||||
    //   BABLM(BABL_DEL_TO_LINE_END, SS_LCTL("k"));
 | 
			
		||||
    //   BABLM(BABL_DEL_TO_LINE_START, SS_TAP(X_ESCAPE) "0" SS_LCTL("k"));
 | 
			
		||||
    BABLM(BABL_MODE, "Nano ");
 | 
			
		||||
#        endif
 | 
			
		||||
#        ifdef BABL_OSKEYS
 | 
			
		||||
    BABLM(BABL_UNDO, SS_LALT("u"));
 | 
			
		||||
    BABLM(BABL_REDO, SS_LALT("e"));
 | 
			
		||||
    BABLM(BABL_CUT, SS_LCTRL("k"));  // arguably b/c line based, not selection
 | 
			
		||||
    BABLM(BABL_CUT, SS_LCTL("k"));  // arguably b/c line based, not selection
 | 
			
		||||
    BABLM(BABL_COPY, SS_LALT("6"));  // arguably
 | 
			
		||||
    BABLM(BABL_PASTE, SS_LCTRL("u"));
 | 
			
		||||
    //  BABLM(BABL_SELECT_ALL, SS_LCTRL("x") "h");
 | 
			
		||||
    BABLM(BABL_FIND, SS_LCTRL("w"));
 | 
			
		||||
    BABLM(BABL_PASTE, SS_LCTL("u"));
 | 
			
		||||
    //  BABLM(BABL_SELECT_ALL, SS_LCTL("x") "h");
 | 
			
		||||
    BABLM(BABL_FIND, SS_LCTL("w"));
 | 
			
		||||
    BABLM(BABL_FIND_NEXT, SS_LALT("w"));
 | 
			
		||||
    BABLM(BABL_FIND_PREV, SS_LALT("q"));
 | 
			
		||||
    BABLM(BABL_FIND_REPLACE, SS_LALT("r"));
 | 
			
		||||
| 
						 | 
				
			
			@ -57,8 +57,8 @@ bool babblePaste_nano(uint16_t keycode) {
 | 
			
		|||
    BABLM(BABL_WINDOW_NEXT, OMALT(IMSFT(X_DOT)));
 | 
			
		||||
    BABLM(BABL_WINDOW_PREV, OMALT(IMSFT(X_COMMA)));
 | 
			
		||||
    BABLM(BABL_WINDOW_NEW, IMCTL(X_R) IMALT(X_F));  //
 | 
			
		||||
    BABLM(BABL_CLOSE_APP, SS_LCTRL("x"));
 | 
			
		||||
    BABLM(BABL_HELP, SS_LCTRL("g"));
 | 
			
		||||
    BABLM(BABL_CLOSE_APP, SS_LCTL("x"));
 | 
			
		||||
    BABLM(BABL_HELP, SS_LCTL("g"));
 | 
			
		||||
 | 
			
		||||
    // BABLM( BABL_LOCK,		()	); // lock buffer? Too many options.
 | 
			
		||||
    // BABLM( BABL_SCREENCAPTURE,		()	); // requires plugin?
 | 
			
		||||
| 
						 | 
				
			
			@ -66,7 +66,7 @@ bool babblePaste_nano(uint16_t keycode) {
 | 
			
		|||
#        endif
 | 
			
		||||
 | 
			
		||||
#        ifdef BABL_APP
 | 
			
		||||
    BABLM(BABL_APP_SAVE, SS_LCTRL("s"));  // save file blurs app & os. Move?
 | 
			
		||||
    BABLM(BABL_APP_SAVE, SS_LCTL("s"));  // save file blurs app & os. Move?
 | 
			
		||||
    BABLM(BABL_APP_SET_MARK, SS_LALT("a"));
 | 
			
		||||
#        endif
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -29,7 +29,7 @@ bool babblePaste_readmux(uint16_t keycode) {
 | 
			
		|||
    // BABLM( BABL_GO_PARA_END,	 	// undefinedBABLM( BABL_PGDN ,
 | 
			
		||||
 | 
			
		||||
    BABLM(BABL_PGUP, SS_TAP(X_PGUP));
 | 
			
		||||
    BABLM(BABL_PGDN, SS_TAP(X_PGDOWN));
 | 
			
		||||
    BABLM(BABL_PGDN, SS_TAP(X_PGDN));
 | 
			
		||||
    BABLM(BABL_DEL_RIGHT_1C, SS_LCTL("d"));
 | 
			
		||||
    BABLM(BABL_DEL_LEFT_WORD, SS_LCTL("w"));  // meta-DEL instead?
 | 
			
		||||
    BABLM(BABL_DEL_RIGHT_WORD, SS_LALT("d"));
 | 
			
		||||
| 
						 | 
				
			
			@ -76,7 +76,7 @@ bool babblePaste_readmux(uint16_t keycode) {
 | 
			
		|||
    // This one closes the current pane.
 | 
			
		||||
    BABLM(BABL_UNSPLIT_FRAME_HORIZONTAL, SS_LCTL("b") "x");
 | 
			
		||||
    BABLM(BABL_NEXT_FRAME, SS_LCTL("b") "o");
 | 
			
		||||
    BABLM(BABL_PREV_FRAME, SS_LCTL("w") SS_TAP(X_SCOLON));
 | 
			
		||||
    BABLM(BABL_PREV_FRAME, SS_LCTL("w") SS_TAP(X_SEMICOLON));
 | 
			
		||||
#        endif
 | 
			
		||||
 | 
			
		||||
    // Todo, ring bell, flash light, show user this isn't supported
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -22,10 +22,10 @@ bool babblePaste_vi(uint16_t keycode) {
 | 
			
		|||
    BABLM(BABL_GO_END_DOC, IMSFT(X_G));
 | 
			
		||||
    BABLM(BABL_GO_NEXT_LINE, "j");
 | 
			
		||||
    BABLM(BABL_GO_PREV_LINE, "k");
 | 
			
		||||
    BABLM(BABL_GO_PARA_START, IMSFT(X_LBRACKET));
 | 
			
		||||
    BABLM(BABL_GO_PARA_END, IMSFT(X_RBRACKET));
 | 
			
		||||
    BABLM(BABL_PGDN, SS_LCTRL("f"));
 | 
			
		||||
    BABLM(BABL_PGUP, SS_LCTRL("b"));
 | 
			
		||||
    BABLM(BABL_GO_PARA_START, IMSFT(X_LEFT_BRACKET));
 | 
			
		||||
    BABLM(BABL_GO_PARA_END, IMSFT(X_RIGHT_BRACKET));
 | 
			
		||||
    BABLM(BABL_PGDN, SS_LCTL("f"));
 | 
			
		||||
    BABLM(BABL_PGUP, SS_LCTL("b"));
 | 
			
		||||
    BABLM(BABL_DEL_RIGHT_1C, "x");
 | 
			
		||||
    BABLM(BABL_DEL_LEFT_WORD, "dge");
 | 
			
		||||
    BABLM(BABL_DEL_RIGHT_WORD, "dw");
 | 
			
		||||
| 
						 | 
				
			
			@ -35,11 +35,11 @@ bool babblePaste_vi(uint16_t keycode) {
 | 
			
		|||
#        endif
 | 
			
		||||
#        ifdef BABL_OSKEYS
 | 
			
		||||
    BABLM(BABL_UNDO, "h");
 | 
			
		||||
    BABLM(BABL_REDO, SS_LCTRL("r"));
 | 
			
		||||
    BABLM(BABL_REDO, SS_LCTL("r"));
 | 
			
		||||
    BABLM(BABL_CUT, "x");
 | 
			
		||||
    BABLM(BABL_COPY, "y");
 | 
			
		||||
    BABLM(BABL_PASTE, "p");
 | 
			
		||||
    BABLM(BABL_SELECT_ALL, IMSFT(X_SCOLON) SS_TAP(X_5) "y");  // wrong but helpful?
 | 
			
		||||
    BABLM(BABL_SELECT_ALL, IMSFT(X_SEMICOLON) SS_TAP(X_5) "y");  // wrong but helpful?
 | 
			
		||||
    BABLM(BABL_FIND, SS_TAP(X_SLASH));
 | 
			
		||||
    BABLM(BABL_FIND_NEXT, "n");
 | 
			
		||||
    BABLM(BABL_FIND_PREV, IMSFT(X_N));
 | 
			
		||||
| 
						 | 
				
			
			@ -47,8 +47,8 @@ bool babblePaste_vi(uint16_t keycode) {
 | 
			
		|||
    BABLM(BABL_RUNAPP, ":split");                // requires VIM, is vsplit better?
 | 
			
		||||
    BABLM(BABL_SWITCH_APP_NEXT, IMCTL(X_DOWN));  // Or Right?
 | 
			
		||||
    BABLM(BABL_SWITCH_APP_NEXT, IMCTL(X_UP));    // or Left?
 | 
			
		||||
    BABLM(BABL_CLOSE_APP, IMCTL(X_SCOLON) "q");
 | 
			
		||||
    BABLM(BABL_HELP, SS_LSFT(SS_TAP(X_SCOLON)) "h");  // start search in help
 | 
			
		||||
    BABLM(BABL_CLOSE_APP, IMCTL(X_SEMICOLON) "q");
 | 
			
		||||
    BABLM(BABL_HELP, SS_LSFT(SS_TAP(X_SEMICOLON)) "h");  // start search in help
 | 
			
		||||
                                                      // BABLM( BABL_LOCK,		()	); Perhaps VI is not an OS?
 | 
			
		||||
                                                      // BABLM( BABL_SCREENCAPTURE,		()	); // capture a buffer?
 | 
			
		||||
#        endif
 | 
			
		||||
| 
						 | 
				
			
			@ -65,8 +65,8 @@ bool babblePaste_vi(uint16_t keycode) {
 | 
			
		|||
    BABLM(BABL_UNSPLIT_FRAME_VERT, SS_TAP(X_ESCAPE) ":hide");  // debatable.
 | 
			
		||||
    BABLM(BABL_SPLIT_FRAME_HORIZONTAL, SS_TAP(X_ESCAPE) ":vsplit");
 | 
			
		||||
    BABLM(BABL_UNSPLIT_FRAME_HORIZONTAL, SS_TAP(X_ESCAPE) ":hide");
 | 
			
		||||
    BABLM(BABL_NEXT_FRAME, SS_LCTRL("w") "w");
 | 
			
		||||
    BABLM(BABL_PREV_FRAME, SS_LCTRL("w") SS_LSFT("w"));
 | 
			
		||||
    BABLM(BABL_NEXT_FRAME, SS_LCTL("w") "w");
 | 
			
		||||
    BABLM(BABL_PREV_FRAME, SS_LCTL("w") SS_LSFT("w"));
 | 
			
		||||
#            endif
 | 
			
		||||
#        endif  // app
 | 
			
		||||
    // Todo, ring bell, flash light, show user this isn't supported
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -31,10 +31,10 @@ bool babblePaste_win(uint16_t keycode) {
 | 
			
		|||
    BABLM(BABL_GO_PREV_LINE, SS_TAP(X_UP));
 | 
			
		||||
    BABLM(BABL_GO_PARA_START, IMCTL(X_UP));
 | 
			
		||||
    BABLM(BABL_GO_PARA_END, IMCTL(X_DOWN));
 | 
			
		||||
    BABLM(BABL_PGDN, SS_TAP(X_PGDOWN));
 | 
			
		||||
    BABLM(BABL_PGDN, SS_TAP(X_PGDN));
 | 
			
		||||
    BABLM(BABL_PGUP, SS_TAP(X_PGUP));
 | 
			
		||||
    BABLM(BABL_DEL_RIGHT_1C, SS_TAP(X_DELETE));
 | 
			
		||||
    BABLM(BABL_DEL_LEFT_WORD, IMCTL(X_BSPACE));
 | 
			
		||||
    BABLM(BABL_DEL_LEFT_WORD, IMCTL(X_BACKSPACE));
 | 
			
		||||
    BABLM(BABL_DEL_RIGHT_WORD, IMCTL(X_DELETE));
 | 
			
		||||
    BABLM(BABL_DEL_TO_LINE_END, IMSFT(X_HOME) SS_TAP(X_DELETE));
 | 
			
		||||
    BABLM(BABL_DEL_TO_LINE_START, IMSFT(X_END) SS_TAP(X_DELETE));
 | 
			
		||||
| 
						 | 
				
			
			@ -42,16 +42,16 @@ bool babblePaste_win(uint16_t keycode) {
 | 
			
		|||
#        endif
 | 
			
		||||
 | 
			
		||||
#        ifdef BABL_OSKEYS
 | 
			
		||||
    BABLM(BABL_UNDO, SS_LCTRL("z"));
 | 
			
		||||
    BABLM(BABL_REDO, SS_LCTRL("y"));
 | 
			
		||||
    BABLM(BABL_CUT, SS_LCTRL("x"));
 | 
			
		||||
    BABLM(BABL_COPY, SS_LCTRL("c"));
 | 
			
		||||
    BABLM(BABL_PASTE, SS_LCTRL("v"));
 | 
			
		||||
    BABLM(BABL_SELECT_ALL, SS_LCTRL("a"));
 | 
			
		||||
    BABLM(BABL_FIND, SS_LCTRL("f"));
 | 
			
		||||
    BABLM(BABL_UNDO, SS_LCTL("z"));
 | 
			
		||||
    BABLM(BABL_REDO, SS_LCTL("y"));
 | 
			
		||||
    BABLM(BABL_CUT, SS_LCTL("x"));
 | 
			
		||||
    BABLM(BABL_COPY, SS_LCTL("c"));
 | 
			
		||||
    BABLM(BABL_PASTE, SS_LCTL("v"));
 | 
			
		||||
    BABLM(BABL_SELECT_ALL, SS_LCTL("a"));
 | 
			
		||||
    BABLM(BABL_FIND, SS_LCTL("f"));
 | 
			
		||||
    BABLM(BABL_FIND_NEXT, SS_TAP(X_F3));
 | 
			
		||||
    // BABLM( BABL_FIND_PREV, 	SS_TAP(X_F3) ); // doesn't have a standard one?
 | 
			
		||||
    BABLM(BABL_FIND_REPLACE, SS_LCTRL("h"));
 | 
			
		||||
    BABLM(BABL_FIND_REPLACE, SS_LCTL("h"));
 | 
			
		||||
    BABLM(BABL_RUNAPP, SS_LGUI("r"));
 | 
			
		||||
    BABLM(BABL_SWITCH_APP_NEXT, IMALT(X_TAB));
 | 
			
		||||
    BABLM(BABL_SWITCH_APP_LAST, OMSFT(IMALT(X_TAB)));
 | 
			
		||||
| 
						 | 
				
			
			@ -67,22 +67,22 @@ bool babblePaste_win(uint16_t keycode) {
 | 
			
		|||
#        endif
 | 
			
		||||
 | 
			
		||||
#        ifdef BABL_BROWSER
 | 
			
		||||
    BABLM(BABL_BROWSER_NEW_TAB, SS_LCTRL("t"));
 | 
			
		||||
    BABLM(BABL_BROWSER_CLOSE_TAB, SS_LCTRL("w"));
 | 
			
		||||
    BABLM(BABL_BROWSER_NEW_TAB, SS_LCTL("t"));
 | 
			
		||||
    BABLM(BABL_BROWSER_CLOSE_TAB, SS_LCTL("w"));
 | 
			
		||||
    BABLM(BABL_BROWSER_REOPEN_LAST_TAB, OMSFT(IMCTL(X_T)));
 | 
			
		||||
    BABLM(BABL_BROWSER_NEXT_TAB, IMCTL(X_TAB));
 | 
			
		||||
    BABLM(BABL_BROWSER_PREV_TAB, OMSFT(IMCTL(X_TAB)));
 | 
			
		||||
    BABLM(BABL_BROWSER_URL_BAR, SS_LCTRL("l"));
 | 
			
		||||
    BABLM(BABL_BROWSER_URL_BAR, SS_LCTL("l"));
 | 
			
		||||
    BABLM(BABL_BROWSER_FORWARD, IMALT(X_RIGHT));
 | 
			
		||||
    BABLM(BABL_BROWSER_BACK, OMSFT(IMALT(X_LEFT)));
 | 
			
		||||
    ;
 | 
			
		||||
    BABLM(BABL_BROWSER_FIND, SS_LCTRL("f"));
 | 
			
		||||
    BABLM(BABL_BROWSER_BOOKMARK, SS_LCTRL("d"));
 | 
			
		||||
    BABLM(BABL_BROWSER_FIND, SS_LCTL("f"));
 | 
			
		||||
    BABLM(BABL_BROWSER_BOOKMARK, SS_LCTL("d"));
 | 
			
		||||
#            ifdef BABL_BROWSER_MS
 | 
			
		||||
    BABLM(BABL_BROWSER_DEV_TOOLS, IMCTL(X_F12));  // EDGE
 | 
			
		||||
#            else
 | 
			
		||||
    BABLM(BABL_BROWSER_DEV_TOOLS, SS_LCTRL("t"));  // Chrome
 | 
			
		||||
    BABLM(BABL_BROWSER_VIEWSRC, SS_LCTRL("u"));    // Chrome or firefox
 | 
			
		||||
    BABLM(BABL_BROWSER_DEV_TOOLS, SS_LCTL("t"));  // Chrome
 | 
			
		||||
    BABLM(BABL_BROWSER_VIEWSRC, SS_LCTL("u"));    // Chrome or firefox
 | 
			
		||||
#            endif
 | 
			
		||||
    // chrome
 | 
			
		||||
    BABLM(BABL_BROWSER_RELOAD, IMCTL(X_F5));             // hard reload w/o cache
 | 
			
		||||
| 
						 | 
				
			
			@ -109,7 +109,7 @@ bool babblePaste_win(uint16_t keycode) {
 | 
			
		|||
#                    endif
 | 
			
		||||
    BABLM(BABL_APP_CENTER_ALIGN, IMALT(X_H) "ac");
 | 
			
		||||
    // BABLM( BABL_APP_CLEAR_FORMATTING, 	OMCTL(IMGUI(X_G)) ); // this isn't native. https://support.office.com/en-us/article/Clear-all-text-formatting-C094C4DA-7F09-4CEA-9A8D-C166949C9C80#OfficeVersion=macOS
 | 
			
		||||
    BABLM(BABL_APP_SCROLL_ACTIVE_CELL, IMCTL(X_BSPACE));
 | 
			
		||||
    BABLM(BABL_APP_SCROLL_ACTIVE_CELL, IMCTL(X_BACKSPACE));
 | 
			
		||||
    BABLM(BABL_NEWLINE_IN_CELL, IMALT(X_ENTER));
 | 
			
		||||
    BABLM(BABL_INSERT_COMMENT, IMSFT(X_F2));
 | 
			
		||||
    BABLM(BABL_INSERT_COL_LEFT, OMCTL(IMSFT(X_KP_PLUS)));
 | 
			
		||||
| 
						 | 
				
			
			@ -121,10 +121,10 @@ bool babblePaste_win(uint16_t keycode) {
 | 
			
		|||
 | 
			
		||||
#                ifdef BABL_APP_GOOGLE
 | 
			
		||||
    BABLM(BABL_APP_CENTER_ALIGN, OMSFT(IMCTL(X_E)));
 | 
			
		||||
    BABLM(BABL_APP_SCROLL_ACTIVE_CELL, IMCTL(X_BSPACE));
 | 
			
		||||
    BABLM(BABL_APP_SCROLL_ACTIVE_CELL, IMCTL(X_BACKSPACE));
 | 
			
		||||
    BABLM(BABL_NEWLINE_IN_CELL, IMALT(X_ENTER));
 | 
			
		||||
    BABLM(BABL_INSERT_COMMENT, IMSFT(X_F2));
 | 
			
		||||
    BABLM(BABL_APP_CLEAR_FORMATTING, IMCTL(X_BSLASH));
 | 
			
		||||
    BABLM(BABL_APP_CLEAR_FORMATTING, IMCTL(X_BACKSLASH));
 | 
			
		||||
    BABLM(BABL_DELETE_ROW, IMALT(X_E) "d");
 | 
			
		||||
    BABLM(BABL_INSERT_COL_LEFT, OMALT(IMCTL(X_I)) "c");  // o for to the right.
 | 
			
		||||
    BABLM(BABL_INSERT_ROW, IMALT(IMCTL(X_I)) "w");       // r for above.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -45,7 +45,7 @@ bool process_record_gdb(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
            break;
 | 
			
		||||
        case M_GDB_RESTART:
 | 
			
		||||
            if (record->event.pressed) {
 | 
			
		||||
                SEND_STRING(SS_LCTRL(SS_LSFT(SS_TAP(X_F5))));
 | 
			
		||||
                SEND_STRING(SS_LCTL(SS_LSFT(SS_TAP(X_F5))));
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
        case M_GDB_STOP:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -21,67 +21,67 @@ bool process_record_vsc(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
    switch (keycode) {
 | 
			
		||||
        case M_VSC_TERMFOCUS:
 | 
			
		||||
            if (record->event.pressed) {
 | 
			
		||||
                SEND_STRING(SS_LCTRL("`"));
 | 
			
		||||
                SEND_STRING(SS_LCTL("`"));
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
        case M_VSC_SIDEBARFOCUS:
 | 
			
		||||
            if (record->event.pressed) {
 | 
			
		||||
                SEND_STRING(SS_LCTRL("0"));
 | 
			
		||||
                SEND_STRING(SS_LCTL("0"));
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
        case M_VSC_SIDEBARCLOSE:
 | 
			
		||||
            if (record->event.pressed) {
 | 
			
		||||
                SEND_STRING(SS_LCTRL("b"));
 | 
			
		||||
                SEND_STRING(SS_LCTL("b"));
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
        case M_VSC_FILECLOSE:
 | 
			
		||||
            if (record->event.pressed) {
 | 
			
		||||
                SEND_STRING(SS_LCTRL("w"));
 | 
			
		||||
                SEND_STRING(SS_LCTL("w"));
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
        case M_VSC_FILENXT:
 | 
			
		||||
            if (record->event.pressed) {
 | 
			
		||||
                SEND_STRING(SS_DOWN(X_LCTRL) SS_TAP(X_K) SS_TAP(X_PGDOWN) SS_UP(X_LCTRL));
 | 
			
		||||
                SEND_STRING(SS_DOWN(X_LEFT_CTRL) SS_TAP(X_K) SS_TAP(X_PAGE_DOWN) SS_UP(X_LEFT_CTRL));
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
        case M_VSC_FILEPRV:
 | 
			
		||||
            if (record->event.pressed) {
 | 
			
		||||
                SEND_STRING(SS_DOWN(X_LCTRL) SS_TAP(X_K) SS_TAP(X_PGUP) SS_UP(X_LCTRL));
 | 
			
		||||
                SEND_STRING(SS_DOWN(X_LEFT_CTRL) SS_TAP(X_K) SS_TAP(X_PGUP) SS_UP(X_LEFT_CTRL));
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
        case M_VSC_DBGCNSLFOCUS:
 | 
			
		||||
            if (record->event.pressed) {
 | 
			
		||||
                SEND_STRING(SS_LCTRL(SS_LALT(SS_TAP(X_D))));
 | 
			
		||||
                SEND_STRING(SS_LCTL(SS_LALT(SS_TAP(X_D))));
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
        case M_VSC_MVEDTRNXTGRP:
 | 
			
		||||
            if (record->event.pressed) {
 | 
			
		||||
                SEND_STRING(SS_LCTRL(SS_LALT(SS_TAP(X_RIGHT))));
 | 
			
		||||
                SEND_STRING(SS_LCTL(SS_LALT(SS_TAP(X_RIGHT))));
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
        case M_VSC_MVEDTRPRVGRP:
 | 
			
		||||
            if (record->event.pressed) {
 | 
			
		||||
                SEND_STRING(SS_LCTRL(SS_LALT(SS_TAP(X_LEFT))));
 | 
			
		||||
                SEND_STRING(SS_LCTL(SS_LALT(SS_TAP(X_LEFT))));
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
        case M_VSC_EDGRPNXT:
 | 
			
		||||
            if (record->event.pressed) {
 | 
			
		||||
                SEND_STRING(SS_LCTRL(SS_LALT(SS_TAP(X_L))));
 | 
			
		||||
                SEND_STRING(SS_LCTL(SS_LALT(SS_TAP(X_L))));
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
        case M_VSC_EDGRPPRV:
 | 
			
		||||
            if (record->event.pressed) {
 | 
			
		||||
                SEND_STRING(SS_LCTRL(SS_LALT(SS_TAP(X_K))));
 | 
			
		||||
                SEND_STRING(SS_LCTL(SS_LALT(SS_TAP(X_K))));
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
        case M_VSC_VIEWSIZEINC:
 | 
			
		||||
            if (record->event.pressed) {
 | 
			
		||||
                SEND_STRING(SS_LCTRL(SS_LALT(SS_TAP(X_P))));
 | 
			
		||||
                SEND_STRING(SS_LCTL(SS_LALT(SS_TAP(X_P))));
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
        case M_VSC_VIEWSIZEDEC:
 | 
			
		||||
            if (record->event.pressed) {
 | 
			
		||||
                SEND_STRING(SS_LCTRL(SS_LALT(SS_TAP(X_O))));
 | 
			
		||||
                SEND_STRING(SS_LCTL(SS_LALT(SS_TAP(X_O))));
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -32,52 +32,52 @@ switch (keycode) {
 | 
			
		|||
    break;
 | 
			
		||||
	case CSPEAK:
 | 
			
		||||
	if (record->event.pressed) {
 | 
			
		||||
		SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN));
 | 
			
		||||
		SEND_STRING(SS_TAP(X_PAGE_DOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PAGE_DOWN));
 | 
			
		||||
	}
 | 
			
		||||
	break;
 | 
			
		||||
	case SPEAK1:
 | 
			
		||||
	if (record->event.pressed) {
 | 
			
		||||
		SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN) SS_LCTRL(SS_TAP(X_1)));
 | 
			
		||||
		SEND_STRING(SS_TAP(X_PAGE_DOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PAGE_DOWN) SS_LCTL(SS_TAP(X_1)));
 | 
			
		||||
	}
 | 
			
		||||
	break;
 | 
			
		||||
	case SPEAK2:
 | 
			
		||||
	if (record->event.pressed) {
 | 
			
		||||
		SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN) SS_LCTRL(SS_TAP(X_2)));
 | 
			
		||||
		SEND_STRING(SS_TAP(X_PAGE_DOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PAGE_DOWN) SS_LCTL(SS_TAP(X_2)));
 | 
			
		||||
	 }
 | 
			
		||||
	break;
 | 
			
		||||
	case SPEAK3:
 | 
			
		||||
	if (record->event.pressed) {
 | 
			
		||||
		SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN) SS_LCTRL(SS_TAP(X_3)));
 | 
			
		||||
		SEND_STRING(SS_TAP(X_PAGE_DOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PAGE_DOWN) SS_LCTL(SS_TAP(X_3)));
 | 
			
		||||
	}
 | 
			
		||||
	break;
 | 
			
		||||
	case SPEAK4:
 | 
			
		||||
	if (record->event.pressed) {
 | 
			
		||||
		SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN) SS_LCTRL(SS_TAP(X_4)));
 | 
			
		||||
		SEND_STRING(SS_TAP(X_PAGE_DOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PAGE_DOWN) SS_LCTL(SS_TAP(X_4)));
 | 
			
		||||
	}
 | 
			
		||||
	break;
 | 
			
		||||
	case PARADOWN:
 | 
			
		||||
	if (record->event.pressed) {
 | 
			
		||||
		SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN));
 | 
			
		||||
		SEND_STRING(SS_TAP(X_PAGE_DOWN) SS_TAP(X_ENTER) SS_TAP(X_PAGE_DOWN));
 | 
			
		||||
	}
 | 
			
		||||
	break;
 | 
			
		||||
	case PMERGE:
 | 
			
		||||
	if (record->event.pressed) {
 | 
			
		||||
		SEND_STRING(SS_TAP(X_HOME) SS_TAP(X_BSPACE) SS_TAP(X_SPACE) SS_LCTRL(SS_TAP(X_BSPACE)) SS_TAP(X_SPACE));
 | 
			
		||||
		SEND_STRING(SS_TAP(X_HOME) SS_TAP(X_BACKSPACE) SS_TAP(X_SPACE) SS_LCTL(SS_TAP(X_BACKSPACE)) SS_TAP(X_SPACE));
 | 
			
		||||
	}
 | 
			
		||||
	break;
 | 
			
		||||
	case WREFRESH:
 | 
			
		||||
	if (record->event.pressed) {
 | 
			
		||||
		SEND_STRING(SS_TAP(X_SPACE) SS_TAP(X_BSPACE));
 | 
			
		||||
		SEND_STRING(SS_TAP(X_SPACE) SS_TAP(X_BACKSPACE));
 | 
			
		||||
	}
 | 
			
		||||
	break;
 | 
			
		||||
	case REMCAPS:
 | 
			
		||||
	if (record->event.pressed) {
 | 
			
		||||
		SEND_STRING(SS_TAP(X_LEFT) SS_TAP(X_LEFT) SS_LCTRL(SS_TAP(X_LEFT)) SS_TAP(X_DELETE));
 | 
			
		||||
		SEND_STRING(SS_TAP(X_LEFT) SS_TAP(X_LEFT) SS_LCTL(SS_TAP(X_LEFT)) SS_TAP(X_DELETE));
 | 
			
		||||
	}
 | 
			
		||||
	break;
 | 
			
		||||
	case EMDASH:
 | 
			
		||||
	if (record->event.pressed) {
 | 
			
		||||
		SEND_STRING(SS_LCTRL(SS_LSFT(SS_TAP(X_U))) SS_TAP(X_2) SS_TAP(X_0) SS_TAP(X_1) SS_TAP(X_4) SS_TAP(X_SPACE) SS_TAP(X_SPACE));
 | 
			
		||||
		SEND_STRING(SS_LCTL(SS_LSFT(SS_TAP(X_U))) SS_TAP(X_2) SS_TAP(X_0) SS_TAP(X_1) SS_TAP(X_4) SS_TAP(X_SPACE) SS_TAP(X_SPACE));
 | 
			
		||||
	}
 | 
			
		||||
	break;
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -172,7 +172,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
      break;
 | 
			
		||||
    default:
 | 
			
		||||
      if (pressed)
 | 
			
		||||
        SEND_STRING(SS_LCTRL("x"));
 | 
			
		||||
        SEND_STRING(SS_LCTL("x"));
 | 
			
		||||
      break;
 | 
			
		||||
    }
 | 
			
		||||
    break;
 | 
			
		||||
| 
						 | 
				
			
			@ -190,7 +190,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
      break;
 | 
			
		||||
    default:
 | 
			
		||||
      if (pressed)
 | 
			
		||||
        SEND_STRING(SS_LCTRL("c"));
 | 
			
		||||
        SEND_STRING(SS_LCTL("c"));
 | 
			
		||||
      break;
 | 
			
		||||
    }
 | 
			
		||||
    break;
 | 
			
		||||
| 
						 | 
				
			
			@ -208,7 +208,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
      break;
 | 
			
		||||
    default:
 | 
			
		||||
      if (pressed)
 | 
			
		||||
        SEND_STRING(SS_LCTRL("v"));
 | 
			
		||||
        SEND_STRING(SS_LCTL("v"));
 | 
			
		||||
      break;
 | 
			
		||||
    }
 | 
			
		||||
    break;
 | 
			
		||||
| 
						 | 
				
			
			@ -226,7 +226,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
      break;
 | 
			
		||||
    default:
 | 
			
		||||
      if (pressed)
 | 
			
		||||
        SEND_STRING(SS_LCTRL("z"));
 | 
			
		||||
        SEND_STRING(SS_LCTL("z"));
 | 
			
		||||
      break;
 | 
			
		||||
    }
 | 
			
		||||
    break;
 | 
			
		||||
| 
						 | 
				
			
			@ -244,7 +244,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
      break;
 | 
			
		||||
    default:
 | 
			
		||||
      if (pressed)
 | 
			
		||||
        SEND_STRING(SS_LCTRL(SS_LSFT("z")));
 | 
			
		||||
        SEND_STRING(SS_LCTL(SS_LSFT("z")));
 | 
			
		||||
      break;
 | 
			
		||||
    }
 | 
			
		||||
    break;
 | 
			
		||||
| 
						 | 
				
			
			@ -253,7 +253,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
    switch (os_target) {
 | 
			
		||||
    case _OS_MACOS:
 | 
			
		||||
      if (pressed)
 | 
			
		||||
        SEND_STRING(SS_LGUI(SS_LCTRL("q")));
 | 
			
		||||
        SEND_STRING(SS_LGUI(SS_LCTL("q")));
 | 
			
		||||
      break;
 | 
			
		||||
    case _OS_LINUX:
 | 
			
		||||
      pressed ?
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -22,13 +22,13 @@ void ctl_copy_finished (qk_tap_dance_state_t *state, void *user_data) {
 | 
			
		|||
  td_state = cur_dance(state);
 | 
			
		||||
  switch (td_state) {
 | 
			
		||||
    case SINGLE_TAP:
 | 
			
		||||
      SEND_STRING(SS_LCTRL("c"));
 | 
			
		||||
      SEND_STRING(SS_LCTL("c"));
 | 
			
		||||
      break;
 | 
			
		||||
    case SINGLE_HOLD:
 | 
			
		||||
      register_mods(MOD_BIT(KC_RCTL));
 | 
			
		||||
      break;
 | 
			
		||||
    case DOUBLE_TAP:
 | 
			
		||||
      SEND_STRING(SS_LCTRL("v"));
 | 
			
		||||
      SEND_STRING(SS_LCTL("v"));
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -27,13 +27,13 @@ ostype_t get_os() {
 | 
			
		|||
 | 
			
		||||
#define IS_OSX() (get_os() == MACOSX)
 | 
			
		||||
 | 
			
		||||
#define MOD_SEND(KEY) (IS_OSX() ? SEND_STRING(SS_LCMD(KEY)) : SEND_STRING(SS_LCTRL(KEY)))
 | 
			
		||||
#define MOD_SEND(KEY) (IS_OSX() ? SEND_STRING(SS_LCMD(KEY)) : SEND_STRING(SS_LCTL(KEY)))
 | 
			
		||||
 | 
			
		||||
void macro_copy() { MOD_SEND("c"); }
 | 
			
		||||
void macro_paste() { MOD_SEND("v"); }
 | 
			
		||||
void macro_lock() {
 | 
			
		||||
  if (IS_OSX()) {
 | 
			
		||||
    SEND_STRING(SS_LCTRL(SS_LCMD("q")));
 | 
			
		||||
    SEND_STRING(SS_LCTL(SS_LCMD("q")));
 | 
			
		||||
  } else {
 | 
			
		||||
    SEND_STRING(SS_LGUI("l"));
 | 
			
		||||
  }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -502,10 +502,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
/*
 | 
			
		||||
 * Obsoleted by making tmux understand Ctrl-(Shift)-Tab natively.
 | 
			
		||||
    case TM_NEXT:
 | 
			
		||||
        if (record->event.pressed) SEND_STRING(SS_LCTRL("a") "n");
 | 
			
		||||
        if (record->event.pressed) SEND_STRING(SS_LCTL("a") "n");
 | 
			
		||||
        break;
 | 
			
		||||
    case TM_PREV:
 | 
			
		||||
        if (record->event.pressed) SEND_STRING(SS_LCTRL("a") "p");
 | 
			
		||||
        if (record->event.pressed) SEND_STRING(SS_LCTL("a") "p");
 | 
			
		||||
        break;
 | 
			
		||||
*/
 | 
			
		||||
        // TODO: use key overrides to turn, e.g. Win+Ctrl-Tab into VIM_NEXT.
 | 
			
		||||
| 
						 | 
				
			
			@ -517,16 +517,16 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
        if (record->event.pressed) SEND_STRING(SS_TAP(X_ESC) SS_TAP(X_G) SS_LSFT("t"));
 | 
			
		||||
        break;
 | 
			
		||||
    case WIN_LEFT:
 | 
			
		||||
        if (record->event.pressed) SEND_STRING(SS_LCTRL("w") SS_TAP(X_H));
 | 
			
		||||
        if (record->event.pressed) SEND_STRING(SS_LCTL("w") SS_TAP(X_H));
 | 
			
		||||
        break;
 | 
			
		||||
    case WIN_DN:
 | 
			
		||||
        if (record->event.pressed) SEND_STRING(SS_LCTRL("w") SS_TAP(X_J));
 | 
			
		||||
        if (record->event.pressed) SEND_STRING(SS_LCTL("w") SS_TAP(X_J));
 | 
			
		||||
        break;
 | 
			
		||||
    case WIN_UP:
 | 
			
		||||
        if (record->event.pressed) SEND_STRING(SS_LCTRL("w") SS_TAP(X_K));
 | 
			
		||||
        if (record->event.pressed) SEND_STRING(SS_LCTL("w") SS_TAP(X_K));
 | 
			
		||||
        break;
 | 
			
		||||
    case WIN_RGHT:
 | 
			
		||||
        if (record->event.pressed) SEND_STRING(SS_LCTRL("w") SS_TAP(X_L));
 | 
			
		||||
        if (record->event.pressed) SEND_STRING(SS_LCTL("w") SS_TAP(X_L));
 | 
			
		||||
        break;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -72,15 +72,15 @@ void CAD_finished (qk_tap_dance_state_t *state, void *user_data) {
 | 
			
		|||
    case SINGLE_HOLD:
 | 
			
		||||
		//register_code(KC_NO);
 | 
			
		||||
		//take a screenshot of a single window, open Paint and paste
 | 
			
		||||
		SEND_STRING(SS_LALT(SS_TAP(X_PSCREEN)) SS_LGUI("r"));
 | 
			
		||||
		SEND_STRING(SS_LALT(SS_TAP(X_PRINT_SCREEN)) SS_LGUI("r"));
 | 
			
		||||
        wait_ms(500);
 | 
			
		||||
        SEND_STRING("mspaint" SS_TAP(X_ENTER));
 | 
			
		||||
        wait_ms(700);
 | 
			
		||||
        SEND_STRING(SS_LCTRL("v"));
 | 
			
		||||
        SEND_STRING(SS_LCTL("v"));
 | 
			
		||||
		break; //register this keycode when button is held
 | 
			
		||||
    case DOUBLE_TAP:
 | 
			
		||||
		//register_code(KC_ENT);
 | 
			
		||||
		SEND_STRING(SS_LCTRL(SS_LALT(SS_TAP(X_DELETE))));
 | 
			
		||||
		SEND_STRING(SS_LCTL(SS_LALT(SS_TAP(X_DELETE))));
 | 
			
		||||
		#ifdef BACKLIGHT_ENABLE
 | 
			
		||||
    backlight_level(0);
 | 
			
		||||
		#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue