|
|
|
@ -1,20 +1,20 @@ |
|
|
|
|
#include QMK_KEYBOARD_H |
|
|
|
|
|
|
|
|
|
/**************** SOME GLOBALS *********************/ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool onMac = false; |
|
|
|
|
bool isLeader = false; |
|
|
|
|
bool isBlinking = false; |
|
|
|
|
bool isRecording = false; |
|
|
|
|
bool isPlaying = false; |
|
|
|
|
const float led_dim_ratio = 0.50;
|
|
|
|
|
static uint16_t blink_cycle_timer,
|
|
|
|
|
blink_fade_in_timer,
|
|
|
|
|
blink_fade_out_timer,
|
|
|
|
|
const float led_dim_ratio = 0.50; |
|
|
|
|
static uint16_t blink_cycle_timer, |
|
|
|
|
blink_fade_in_timer, |
|
|
|
|
blink_fade_out_timer, |
|
|
|
|
macro_one_play_timer, |
|
|
|
|
macro_two_play_timer, |
|
|
|
|
macro_play_blink_timer = 2000; |
|
|
|
|
static uint8_t fade_in_step_counter,
|
|
|
|
|
static uint8_t fade_in_step_counter, |
|
|
|
|
fade_out_step_counter, |
|
|
|
|
blink_hsv_value; |
|
|
|
|
|
|
|
|
@ -26,13 +26,13 @@ Function to set color with hsv arguments |
|
|
|
|
- "val_ratio" is used to adjust brightness ratio |
|
|
|
|
*/ |
|
|
|
|
void rgb_matrix_set_color_hsv(uint8_t led, uint16_t hue, uint16_t sat, uint16_t val, float val_ratio) { |
|
|
|
|
const uint8_t h = hue <= 255 ? hue : rgb_matrix_config.hsv.h;
|
|
|
|
|
const uint8_t h = hue <= 255 ? hue : rgb_matrix_config.hsv.h; |
|
|
|
|
const uint8_t s = sat <= 255 ? sat : rgb_matrix_config.hsv.s; |
|
|
|
|
const uint8_t v = val <= 255 ? val * val_ratio : rgb_matrix_config.hsv.v * val_ratio; |
|
|
|
|
HSV hsv_in = {h, s, v}; |
|
|
|
|
RGB rgb_out = hsv_to_rgb(hsv_in); |
|
|
|
|
rgb_matrix_set_color(led, rgb_out.r, rgb_out.g, rgb_out.b); |
|
|
|
|
}
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void reset_blink_cycle(void) { |
|
|
|
|
blink_cycle_timer = timer_read(); |
|
|
|
@ -110,31 +110,31 @@ const layers_leds_map[] = { |
|
|
|
|
|
|
|
|
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
|
|
|
|
[_MAIN] = LAYOUT_65_ansi( |
|
|
|
|
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS,
|
|
|
|
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
|
|
|
|
|
KC_LEAD, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
|
|
|
|
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL,
|
|
|
|
|
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, |
|
|
|
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, |
|
|
|
|
KC_LEAD, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, |
|
|
|
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL, |
|
|
|
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT |
|
|
|
|
), |
|
|
|
|
[_MAC] = LAYOUT_65_ansi( |
|
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
|
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
|
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
|
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
|
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
|
KC_TRNS, KC_LALT, KC_LGUI, KC_TRNS, KC_TRNS, MO(_FN), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS |
|
|
|
|
), |
|
|
|
|
[_FN] = LAYOUT_65_ansi( |
|
|
|
|
DYN_REC_STOP, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO,
|
|
|
|
|
KC_TRNS, KC_MUTE, KC_VOLU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_SAD, RGB_SAI, DYN_MACRO_PLAY2, DYN_REC_START2,
|
|
|
|
|
KC_TRNS, KC_BRID, KC_VOLD, KC_BRIU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_HUD, RGB_HUI, DYN_MACRO_PLAY1, DYN_REC_START1,
|
|
|
|
|
KC_TRNS, TO(_MAIN), TO(_MAC), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_SPD, RGB_SPI, KC_TRNS, RGB_VAI, KC_NO,
|
|
|
|
|
DYN_REC_STOP, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, |
|
|
|
|
KC_TRNS, KC_MUTE, KC_VOLU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_SAD, RGB_SAI, DYN_MACRO_PLAY2, DYN_REC_START2, |
|
|
|
|
KC_TRNS, KC_BRID, KC_VOLD, KC_BRIU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_HUD, RGB_HUI, DYN_MACRO_PLAY1, DYN_REC_START1, |
|
|
|
|
KC_TRNS, TO(_MAIN), TO(_MAC), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_SPD, RGB_SPI, KC_TRNS, RGB_VAI, KC_NO, |
|
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_RMOD, RGB_VAD, RGB_MOD |
|
|
|
|
), |
|
|
|
|
};
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
//**************** MATRIX SCANS *********************//
|
|
|
|
|
|
|
|
|
|
void rgb_matrix_indicators_user(void) {
|
|
|
|
|
void rgb_matrix_indicators_user(void) { |
|
|
|
|
|
|
|
|
|
#ifdef RGB_MATRIX_ENABLE |
|
|
|
|
|
|
|
|
@ -144,7 +144,7 @@ void rgb_matrix_indicators_user(void) { |
|
|
|
|
/* CapsLock LED indicator */ |
|
|
|
|
if (IS_HOST_LED_ON(USB_LED_CAPS_LOCK)) { |
|
|
|
|
rgb_matrix_set_color_hsv(30, 999, 0, led_constant_val, 0.75); // WHITE
|
|
|
|
|
}
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* Current layer LED indicator */ |
|
|
|
|
rgb_matrix_set_color_hsv(layers_leds_map[get_highest_layer(layer_state)], 999, 0, led_constant_val, led_dim_ratio); // WHITE
|
|
|
|
@ -155,7 +155,7 @@ void rgb_matrix_indicators_user(void) { |
|
|
|
|
rgb_matrix_set_color_hsv(30, 999, 999, 999, 1); // CONFIG
|
|
|
|
|
} else { |
|
|
|
|
rgb_matrix_set_color_hsv(14, 999, 999, 999, led_dim_ratio); // CONFIG
|
|
|
|
|
}
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* Blinking LED indicator when recording Dynamic Macro */ |
|
|
|
|
if (isRecording && isBlinking) { |
|
|
|
@ -174,7 +174,7 @@ void rgb_matrix_indicators_user(void) { |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
switch (biton32(layer_state)) { |
|
|
|
|
switch (get_highest_layer(layer_state)) { |
|
|
|
|
case _FN: |
|
|
|
|
/* Dynamic Macro LED indicator */ |
|
|
|
|
if (isRecording) { |
|
|
|
@ -188,12 +188,12 @@ void rgb_matrix_indicators_user(void) { |
|
|
|
|
/* Layer LED indicators */ |
|
|
|
|
rgb_matrix_set_color_hsv(45, 999, 0, led_constant_val, led_dim_ratio); /* WHITE Layer _MAIN */ |
|
|
|
|
rgb_matrix_set_color_hsv(46, 999, 0, led_constant_val, led_dim_ratio); /* WHITE Layer _MAC */ |
|
|
|
|
break;
|
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#endif /* RGB_MATRIX */ |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) { |
|
|
|
|
bool pressed = record->event.pressed; |
|
|
|
|
if (pressed) { |
|
|
|
@ -202,12 +202,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { |
|
|
|
|
onMac = true; |
|
|
|
|
break; |
|
|
|
|
case TO(_MAIN): |
|
|
|
|
onMac = false;
|
|
|
|
|
onMac = false; |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return true; |
|
|
|
|
}
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
//**************** LEADER *********************//
|
|
|
|
|
|
|
|
|
@ -244,7 +244,7 @@ const uint8_t french_accent_index[3] = { |
|
|
|
|
[_ACUTE] = 2 |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
/*
|
|
|
|
|
This represent unicode decimal values |
|
|
|
|
Each index will be mapped to numpad keycode to out put the correct sequence |
|
|
|
|
All codes in this array should be of size 3 |
|
|
|
@ -272,8 +272,8 @@ const uint8_t french_decimal_unicodes[5][3][2] = { /*[Letter][Accent][Case]*/ |
|
|
|
|
} |
|
|
|
|
},{ |
|
|
|
|
{ |
|
|
|
|
140, // î
|
|
|
|
|
206 // Î
|
|
|
|
|
140, // î
|
|
|
|
|
206 // Î
|
|
|
|
|
} |
|
|
|
|
},{ |
|
|
|
|
{ |
|
|
|
@ -306,7 +306,7 @@ This is designed and work on an English language keyboard setting on both Window |
|
|
|
|
=> accept french_letter and french_accent enum's as argument |
|
|
|
|
*/ |
|
|
|
|
void send_french_accent(uint8_t letter, uint8_t accent) { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool isCaps; |
|
|
|
|
uint8_t decimal_unicode_in; |
|
|
|
|
uint8_t decimal_unicode_size = 3; |
|
|
|
@ -330,7 +330,7 @@ void send_french_accent(uint8_t letter, uint8_t accent) { |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
Function to tap the correct keycodes in sequence for the
|
|
|
|
|
Function to tap the correct keycodes in sequence for the |
|
|
|
|
"Windows Alt Code" requested, aka Decimal Unicodes |
|
|
|
|
*/ |
|
|
|
|
void tap_win_alt_code(void) { |
|
|
|
@ -341,7 +341,7 @@ void send_french_accent(uint8_t letter, uint8_t accent) { |
|
|
|
|
tap_code(numpad_key_map[decimal_unicode_out[i]]); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
isCaps = IS_HOST_LED_ON(USB_LED_CAPS_LOCK) ? true : false; |
|
|
|
|
|
|
|
|
|
if (onMac) { |
|
|
|
@ -372,7 +372,7 @@ void send_french_accent(uint8_t letter, uint8_t accent) { |
|
|
|
|
|
|
|
|
|
/*Couple functions used to output the same macro on two different sequences*/ |
|
|
|
|
|
|
|
|
|
/* (|) */
|
|
|
|
|
/* (|) */ |
|
|
|
|
void ldrkey_send_paranthesis_wrap_ini(void) { |
|
|
|
|
SEND_STRING("()" SS_TAP(X_LEFT)); |
|
|
|
|
} |
|
|
|
@ -382,7 +382,7 @@ void ldrkey_send_paranthesis_wrap_word(void) { |
|
|
|
|
onMac ? SEND_STRING(SS_LALT(SS_TAP(X_LEFT)) "(" SS_LALT(SS_TAP(X_RIGHT)) ")") : SEND_STRING(SS_LCTL(SS_TAP(X_LEFT)) "(" SS_LCTL(SS_TAP(X_RIGHT)) ")"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* (selection) */
|
|
|
|
|
/* (selection) */ |
|
|
|
|
void ldrkey_send_paranthesis_wrap_selection(void) { |
|
|
|
|
onMac ? SEND_STRING(SS_LGUI(SS_TAP(X_X)) "()" SS_TAP(X_LEFT) SS_LGUI(SS_TAP(X_V)) SS_TAP(X_RIGHT)) : SEND_STRING(SS_LCTL(SS_TAP(X_X)) "()" SS_TAP(X_LEFT) SS_LCTL(SS_TAP(X_V)) SS_TAP(X_RIGHT)); |
|
|
|
|
} |
|
|
|
@ -419,9 +419,9 @@ void ldrkey_send_curlybrace_wrap_selection(void) { |
|
|
|
|
|
|
|
|
|
LEADER_EXTERNS(); |
|
|
|
|
|
|
|
|
|
void matrix_scan_user(void)
|
|
|
|
|
void matrix_scan_user(void) |
|
|
|
|
{ |
|
|
|
|
LEADER_DICTIONARY()
|
|
|
|
|
LEADER_DICTIONARY() |
|
|
|
|
{ |
|
|
|
|
leading = false; |
|
|
|
|
leader_end(); |
|
|
|
@ -476,49 +476,49 @@ void matrix_scan_user(void) |
|
|
|
|
tap_code(KC_CAPS); |
|
|
|
|
} |
|
|
|
|
/* ± => LdrKey > = > - */ |
|
|
|
|
SEQ_TWO_KEYS(KC_EQL, KC_MINS) {
|
|
|
|
|
onMac ? SEND_STRING(SS_LALT(SS_LSFT(SS_TAP(X_EQL)))) : SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_P2) SS_TAP(X_P4) SS_TAP(X_P1) SS_UP(X_LALT));
|
|
|
|
|
SEQ_TWO_KEYS(KC_EQL, KC_MINS) { |
|
|
|
|
onMac ? SEND_STRING(SS_LALT(SS_LSFT(SS_TAP(X_EQL)))) : SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_P2) SS_TAP(X_P4) SS_TAP(X_P1) SS_UP(X_LALT)); |
|
|
|
|
} |
|
|
|
|
/* ≤ => LdrKey > - > = */ |
|
|
|
|
SEQ_TWO_KEYS(KC_MINS, KC_EQL) {
|
|
|
|
|
onMac ? SEND_STRING(SS_LALT(SS_TAP(X_COMM))) : SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_P2) SS_TAP(X_P4) SS_TAP(X_P3) SS_UP(X_LALT));
|
|
|
|
|
SEQ_TWO_KEYS(KC_MINS, KC_EQL) { |
|
|
|
|
onMac ? SEND_STRING(SS_LALT(SS_TAP(X_COMM))) : SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_P2) SS_TAP(X_P4) SS_TAP(X_P3) SS_UP(X_LALT)); |
|
|
|
|
} |
|
|
|
|
/* ≥ => LdrKey > = > = */ |
|
|
|
|
SEQ_TWO_KEYS(KC_EQL, KC_EQL) {
|
|
|
|
|
onMac ? SEND_STRING(SS_LALT(SS_TAP(X_DOT))) : SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_P2) SS_TAP(X_P4) SS_TAP(X_P2) SS_UP(X_LALT));
|
|
|
|
|
SEQ_TWO_KEYS(KC_EQL, KC_EQL) { |
|
|
|
|
onMac ? SEND_STRING(SS_LALT(SS_TAP(X_DOT))) : SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_P2) SS_TAP(X_P4) SS_TAP(X_P2) SS_UP(X_LALT)); |
|
|
|
|
} |
|
|
|
|
/* <= => LdrKey > , > , */ |
|
|
|
|
SEQ_TWO_KEYS(KC_COMM, KC_COMM) {
|
|
|
|
|
SEND_STRING(SS_LSFT(SS_TAP(X_COMM)) SS_TAP(X_SPC) SS_TAP(X_EQL) SS_TAP(X_LEFT) SS_TAP(X_BSPC) SS_TAP(X_RIGHT));
|
|
|
|
|
SEQ_TWO_KEYS(KC_COMM, KC_COMM) { |
|
|
|
|
SEND_STRING(SS_LSFT(SS_TAP(X_COMM)) SS_TAP(X_SPC) SS_TAP(X_EQL) SS_TAP(X_LEFT) SS_TAP(X_BSPC) SS_TAP(X_RIGHT)); |
|
|
|
|
} |
|
|
|
|
/* => => LdrKey > . > . */ |
|
|
|
|
SEQ_TWO_KEYS(KC_DOT, KC_DOT) {
|
|
|
|
|
SEND_STRING("=>");
|
|
|
|
|
SEQ_TWO_KEYS(KC_DOT, KC_DOT) { |
|
|
|
|
SEND_STRING("=>"); |
|
|
|
|
} |
|
|
|
|
/* ", " => LdrKey > " " */ |
|
|
|
|
SEQ_ONE_KEY(KC_SPC) {
|
|
|
|
|
SEND_STRING(", ");
|
|
|
|
|
SEQ_ONE_KEY(KC_SPC) { |
|
|
|
|
SEND_STRING(", "); |
|
|
|
|
} |
|
|
|
|
/* ". " => LdrKey > " " > " " */ |
|
|
|
|
SEQ_TWO_KEYS(KC_SPC, KC_SPC) {
|
|
|
|
|
SEND_STRING(". ");
|
|
|
|
|
SEQ_TWO_KEYS(KC_SPC, KC_SPC) { |
|
|
|
|
SEND_STRING(". "); |
|
|
|
|
} |
|
|
|
|
/* Backward delete current word (on cursor) */ |
|
|
|
|
SEQ_TWO_KEYS(KC_BSPC, KC_BSPC) {
|
|
|
|
|
onMac ? SEND_STRING(SS_LALT(SS_TAP(X_RIGHT)) SS_LALT(SS_LSFT(SS_TAP(X_LEFT))) SS_TAP(X_BSPC)) : SEND_STRING(SS_LCTL(SS_TAP(X_RIGHT)) SS_LCTL(SS_LSFT(SS_TAP(X_LEFT))) SS_TAP(X_BSPC));
|
|
|
|
|
SEQ_TWO_KEYS(KC_BSPC, KC_BSPC) { |
|
|
|
|
onMac ? SEND_STRING(SS_LALT(SS_TAP(X_RIGHT)) SS_LALT(SS_LSFT(SS_TAP(X_LEFT))) SS_TAP(X_BSPC)) : SEND_STRING(SS_LCTL(SS_TAP(X_RIGHT)) SS_LCTL(SS_LSFT(SS_TAP(X_LEFT))) SS_TAP(X_BSPC)); |
|
|
|
|
} |
|
|
|
|
/* Previous word delete */ |
|
|
|
|
SEQ_ONE_KEY(KC_BSPC) {
|
|
|
|
|
onMac ? SEND_STRING(SS_LALT(SS_LSFT(SS_TAP(X_LEFT))) SS_TAP(X_BSPC)) : SEND_STRING(SS_LCTL(SS_LSFT(SS_TAP(X_LEFT))) SS_TAP(X_BSPC));
|
|
|
|
|
SEQ_ONE_KEY(KC_BSPC) { |
|
|
|
|
onMac ? SEND_STRING(SS_LALT(SS_LSFT(SS_TAP(X_LEFT))) SS_TAP(X_BSPC)) : SEND_STRING(SS_LCTL(SS_LSFT(SS_TAP(X_LEFT))) SS_TAP(X_BSPC)); |
|
|
|
|
} |
|
|
|
|
/* Forward delete current word (on cursor) */ |
|
|
|
|
SEQ_TWO_KEYS(KC_DEL, KC_DEL) {
|
|
|
|
|
SEQ_TWO_KEYS(KC_DEL, KC_DEL) { |
|
|
|
|
|
|
|
|
|
onMac ? SEND_STRING(SS_LALT(SS_TAP(X_LEFT)) SS_LALT(SS_LSFT(SS_TAP(X_RIGHT))) SS_TAP(X_DEL)) : SEND_STRING(SS_LCTL(SS_TAP(X_LEFT)) SS_LCTL(SS_LSFT(SS_TAP(X_RIGHT))) SS_TAP(X_DEL));
|
|
|
|
|
onMac ? SEND_STRING(SS_LALT(SS_TAP(X_LEFT)) SS_LALT(SS_LSFT(SS_TAP(X_RIGHT))) SS_TAP(X_DEL)) : SEND_STRING(SS_LCTL(SS_TAP(X_LEFT)) SS_LCTL(SS_LSFT(SS_TAP(X_RIGHT))) SS_TAP(X_DEL)); |
|
|
|
|
} |
|
|
|
|
/* Next word delete */ |
|
|
|
|
SEQ_ONE_KEY(KC_DEL) {
|
|
|
|
|
onMac ? SEND_STRING(SS_LALT(SS_LSFT(SS_TAP(X_RIGHT))) SS_TAP(X_DEL)): SEND_STRING(SS_LCTL(SS_LSFT(SS_TAP(X_RIGHT))) SS_TAP(X_DEL));
|
|
|
|
|
SEQ_ONE_KEY(KC_DEL) { |
|
|
|
|
onMac ? SEND_STRING(SS_LALT(SS_LSFT(SS_TAP(X_RIGHT))) SS_TAP(X_DEL)): SEND_STRING(SS_LCTL(SS_LSFT(SS_TAP(X_RIGHT))) SS_TAP(X_DEL)); |
|
|
|
|
} |
|
|
|
|
/* ` => LdrKey > Escape */ |
|
|
|
|
SEQ_ONE_KEY(KC_GESC) { |
|
|
|
@ -548,7 +548,7 @@ void matrix_scan_user(void) |
|
|
|
|
SEQ_ONE_KEY(KC_Q) { |
|
|
|
|
onMac ? SEND_STRING(SS_LGUI(SS_TAP(X_Q))) : SEND_STRING(SS_LALT(SS_TAP(X_F4))); |
|
|
|
|
} |
|
|
|
|
/* " => LdrKey > ' */
|
|
|
|
|
/* " => LdrKey > ' */ |
|
|
|
|
SEQ_ONE_KEY(KC_QUOT) { |
|
|
|
|
SEND_STRING("\""); |
|
|
|
|
} |
|
|
|
@ -657,48 +657,48 @@ void matrix_scan_user(void) |
|
|
|
|
ldrkey_send_curlybrace_wrap_selection(); |
|
|
|
|
} |
|
|
|
|
/* Select everything on this line before cursor => LdrKey > Left */ |
|
|
|
|
SEQ_ONE_KEY(KC_LEFT) {
|
|
|
|
|
SEQ_ONE_KEY(KC_LEFT) { |
|
|
|
|
onMac ? SEND_STRING(SS_LSFT(SS_LGUI(SS_TAP(X_LEFT)))) : SEND_STRING(SS_LSFT(SS_TAP(X_HOME))); |
|
|
|
|
} |
|
|
|
|
/* Select everything on this line after cursor => LdrKey > Right */ |
|
|
|
|
SEQ_ONE_KEY(KC_RIGHT) {
|
|
|
|
|
SEQ_ONE_KEY(KC_RIGHT) { |
|
|
|
|
onMac ? SEND_STRING(SS_LSFT(SS_LGUI(SS_TAP(X_RIGHT)))) : SEND_STRING(SS_LSFT(SS_TAP(X_END))); |
|
|
|
|
} |
|
|
|
|
/* Select everything on this line before cursor and bring on previous line => LdrKey > Left > Left */ |
|
|
|
|
SEQ_TWO_KEYS(KC_LEFT, KC_LEFT) {
|
|
|
|
|
onMac ? SEND_STRING(SS_LSFT(SS_TAP(X_UP) SS_LGUI(SS_TAP(X_RIGHT)))) : SEND_STRING(SS_LSFT(SS_TAP(X_UP) SS_TAP(X_END)));
|
|
|
|
|
SEQ_TWO_KEYS(KC_LEFT, KC_LEFT) { |
|
|
|
|
onMac ? SEND_STRING(SS_LSFT(SS_TAP(X_UP) SS_LGUI(SS_TAP(X_RIGHT)))) : SEND_STRING(SS_LSFT(SS_TAP(X_UP) SS_TAP(X_END))); |
|
|
|
|
} |
|
|
|
|
/* Select everything on this line => LdrKey > Right > Left */ |
|
|
|
|
SEQ_TWO_KEYS(KC_RIGHT, KC_LEFT) {
|
|
|
|
|
onMac ? SEND_STRING(SS_LGUI(SS_TAP(X_RIGHT) SS_LSFT(SS_LGUI(SS_TAP(X_LEFT))))) : SEND_STRING(SS_TAP(X_END) SS_LSFT(SS_TAP(X_HOME)));
|
|
|
|
|
SEQ_TWO_KEYS(KC_RIGHT, KC_LEFT) { |
|
|
|
|
onMac ? SEND_STRING(SS_LGUI(SS_TAP(X_RIGHT) SS_LSFT(SS_LGUI(SS_TAP(X_LEFT))))) : SEND_STRING(SS_TAP(X_END) SS_LSFT(SS_TAP(X_HOME))); |
|
|
|
|
} |
|
|
|
|
/* Select 1x Page Up on the page before the cursor => LdrKey > Up */ |
|
|
|
|
SEQ_ONE_KEY(KC_UP) {
|
|
|
|
|
SEQ_ONE_KEY(KC_UP) { |
|
|
|
|
SEND_STRING(SS_LSFT(SS_TAP(X_PGUP))); |
|
|
|
|
} |
|
|
|
|
/* Select 1x Page Down on the page after the cursor => LdrKey > Down */ |
|
|
|
|
SEQ_ONE_KEY(KC_DOWN) {
|
|
|
|
|
SEND_STRING(SS_LSFT(SS_TAP(X_PGDN)));
|
|
|
|
|
SEQ_ONE_KEY(KC_DOWN) { |
|
|
|
|
SEND_STRING(SS_LSFT(SS_TAP(X_PGDN))); |
|
|
|
|
} |
|
|
|
|
/* Select everything on the page before the cursor => LdrKey > Up > Up */ |
|
|
|
|
SEQ_TWO_KEYS(KC_UP, KC_UP) {
|
|
|
|
|
SEQ_TWO_KEYS(KC_UP, KC_UP) { |
|
|
|
|
onMac ? SEND_STRING(SS_LSFT(SS_LGUI(SS_TAP(X_UP)))) : SEND_STRING(SS_LSFT(SS_LCTL(SS_TAP(X_HOME)))); |
|
|
|
|
} |
|
|
|
|
/* Select everything on the page after the cursor => LdrKey > Down > Down */ |
|
|
|
|
SEQ_TWO_KEYS(KC_DOWN, KC_DOWN) {
|
|
|
|
|
SEQ_TWO_KEYS(KC_DOWN, KC_DOWN) { |
|
|
|
|
onMac ? SEND_STRING(SS_LSFT(SS_LGUI(SS_TAP(X_DOWN)))) : SEND_STRING(SS_LSFT(SS_LCTL(SS_TAP(X_END)))); |
|
|
|
|
} |
|
|
|
|
/* HELPER => spit out the url of the layout description page on github */ |
|
|
|
|
SEQ_FIVE_KEYS(KC_GESC, KC_GESC, KC_GESC, KC_GESC, KC_GESC) {
|
|
|
|
|
SEQ_FIVE_KEYS(KC_GESC, KC_GESC, KC_GESC, KC_GESC, KC_GESC) { |
|
|
|
|
SEND_STRING("https://github.com/qmk/qmk_firmware/tree/master/keyboards/dztech/dz65rgb/keymaps/drootz"); |
|
|
|
|
} |
|
|
|
|
/* google.ca => LdrKey > G > G */ |
|
|
|
|
SEQ_TWO_KEYS(KC_G, KC_G) {
|
|
|
|
|
SEND_STRING("https://google.ca" SS_TAP(X_ENT));
|
|
|
|
|
SEQ_TWO_KEYS(KC_G, KC_G) { |
|
|
|
|
SEND_STRING("https://google.ca" SS_TAP(X_ENT)); |
|
|
|
|
} |
|
|
|
|
/* @gmail => LdrKey > M > L > T */ |
|
|
|
|
SEQ_THREE_KEYS(KC_M, KC_L, KC_T) {
|
|
|
|
|
SEND_STRING("mailto." SS_TAP(X_D) SS_TAP(X_A) SS_TAP(X_N) SS_TAP(X_I) SS_TAP(X_E) SS_TAP(X_L) SS_TAP(X_R) SS_TAP(X_A) SS_TAP(X_C) SS_TAP(X_I) SS_TAP(X_N) SS_TAP(X_E) "@gmail.com");
|
|
|
|
|
SEQ_THREE_KEYS(KC_M, KC_L, KC_T) { |
|
|
|
|
SEND_STRING("mailto." SS_TAP(X_D) SS_TAP(X_A) SS_TAP(X_N) SS_TAP(X_I) SS_TAP(X_E) SS_TAP(X_L) SS_TAP(X_R) SS_TAP(X_A) SS_TAP(X_C) SS_TAP(X_I) SS_TAP(X_N) SS_TAP(X_E) "@gmail.com"); |
|
|
|
|
} |
|
|
|
|
/* Show Desktop => LdrKey > D */ |
|
|
|
|
SEQ_ONE_KEY(KC_D) { |
|
|
|
|