summaryrefslogtreecommitdiff
path: root/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features')
-rw-r--r--keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/auto_shift.c639
-rw-r--r--keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/combo.c435
-rw-r--r--keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/leader.c436
3 files changed, 865 insertions, 645 deletions
diff --git a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/auto_shift.c b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/auto_shift.c
index d6bd3818b4..d5bf9f0223 100644
--- a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/auto_shift.c
+++ b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/auto_shift.c
@@ -7,193 +7,498 @@
/* Only for basis letters
Exceptions like Tab or Enter */
bool get_auto_shifted_key(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case KC_TAB:
+ // case KC_ENT:
- switch (keycode) {
-
- case KC_TAB:
- case KC_ENT:
-
- // --
- case KC_A:
- case KC_B:
- case KC_C:
- case KC_D:
- case KC_E:
- case KC_F:
- case KC_G:
- case KC_H:
- case KC_I:
- case KC_J:
- case KC_K:
- case KC_L:
- case KC_M:
- case KC_N:
- case KC_O:
- case KC_P:
- case KC_Q:
- case KC_R:
- case KC_S:
- case KC_T:
- case KC_U:
- case KC_V:
- case KC_W:
- case KC_X:
- case KC_Y:
- case KC_Z:
-
- return true;
- }
-
- return get_custom_auto_shifted_key(keycode, record);
-}
+ case US_EACU:
+ case US_CCED:
+ case US_AE:
+ case US_OE:
+
+ // --
+ case KC_A:
+ case KC_B:
+ case KC_C:
+ case KC_D:
+ case KC_E:
+ case KC_F:
+ case KC_G:
+ case KC_H:
+ case KC_I:
+ case KC_J:
+ case KC_K:
+ case KC_L:
+ case KC_M:
+ case KC_N:
+ case KC_O:
+ case KC_P:
+ case KC_Q:
+ case KC_R:
+ case KC_S:
+ case KC_T:
+ case KC_U:
+ case KC_V:
+ case KC_W:
+ case KC_X:
+ case KC_Y:
+ case KC_Z:
+ return true;
+ }
+
+ return get_custom_auto_shifted_key(keycode, record);
+}
/* Custom auto shift
I use this instead of tap dance because double tap is horrible
Add here the letter or the custom enum, then add in press_user and press_release the actions */
bool get_custom_auto_shifted_key(uint16_t keycode, keyrecord_t *record) {
- switch(keycode) {
+ switch (keycode) {
+ case KC_BSPC:
- case KC_BSPC:
- case KC_LABK: // Easy indent with vim
- case KC_RABK:
+ // Double them !!!
+ case KC_AMPERSAND:
+ case KC_AT:
+ case KC_BACKSLASH:
+ case KC_CIRCUMFLEX:
+ case KC_COLON:
+ case KC_DOLLAR:
+ case KC_EQUAL:
+ case KC_EXCLAIM:
+ case KC_GRAVE:
+ case KC_HASH:
+ case KC_MINUS:
+ case KC_PERC:
+ case KC_PIPE:
+ case KC_PLUS:
+ case KC_QUESTION:
+ case KC_QUOTE:
+ case KC_DOUBLE_QUOTE:
+ case KC_SEMICOLON:
+ case KC_SLASH:
+ case KC_ASTERISK:
+ case KC_TILDE:
+ case KC_UNDERSCORE:
- /* French */
- case CS_E_ACUTE:
+ case KC_LEFT_ANGLE_BRACKET: // Easy indent with vim
+ case KC_RIGHT_ANGLE_BRACKET:
- case CS_A_GRAVE:
- case CS_E_GRAVE:
- case CS_I_GRAVE:
- case CS_O_GRAVE:
- case CS_U_GRAVE:
+ case KC_LEFT_BRACKET:
+ case KC_RIGHT_BRACKET:
+ case KC_LEFT_CURLY_BRACE:
+ case KC_RIGHT_CURLY_BRACE:
+ case KC_LEFT_PAREN:
+ case KC_RIGHT_PAREN:
- case CS_A_CIRCUMFLEX:
- case CS_E_CIRCUMFLEX:
- case CS_I_CIRCUMFLEX:
- case CS_O_CIRCUMFLEX:
- case CS_U_CIRCUMFLEX:
+ /* French */
+ case CS_A_GRAVE:
+ case CS_E_GRAVE:
+ case CS_U_GRAVE:
- case CS_A_DIAERESIS:
- case CS_E_DIAERESIS:
- case CS_I_DIAERESIS:
- case CS_O_DIAERESIS:
- case CS_U_DIAERESIS:
- case CS_Y_DIAERESIS:
+ case CS_A_CIRCUMFLEX:
+ case CS_E_CIRCUMFLEX:
+ case CS_I_CIRCUMFLEX:
+ case CS_O_CIRCUMFLEX:
+ case CS_U_CIRCUMFLEX:
- case CS_C_CEDILLA:
- case CS_AE:
- case CS_OE:
+ case CS_E_DIAERESIS:
+ case CS_I_DIAERESIS:
+ case CS_U_DIAERESIS:
+ case CS_Y_DIAERESIS:
+ return true;
- return true;
-
- default:
- return false;
- }
+ default:
+ return false;
+ }
}
void autoshift_press_user(uint16_t keycode, bool shifted, keyrecord_t *record) {
- switch(keycode) {
-
- case KC_BSPC:
- register_code16((!shifted) ? KC_BSPC : KC_DEL);
- break;
-
- case KC_LABK:
- if (shifted) { send_unicode_string("<<"); }
- else { send_unicode_string("<"); } break;
-
- case KC_RABK:
- if (shifted) { send_unicode_string(">>"); }
- else { send_unicode_string(">"); } break;
-
- /* French
- Release is not necessary with 'send_unicode_string()' */
- case CS_E_ACUTE:
- if (shifted) { send_unicode_string("É"); }
- else { send_unicode_string("é"); } break;
-
- case CS_A_GRAVE:
- if (shifted) { send_unicode_string("À"); }
- else { send_unicode_string("à"); } break;
- case CS_E_GRAVE:
- if (shifted) { send_unicode_string("È"); }
- else { send_unicode_string("è"); } break;
- case CS_I_GRAVE:
- if (shifted) { send_unicode_string("Ì"); }
- else { send_unicode_string("ì"); } break;
- case CS_O_GRAVE:
- if (shifted) { send_unicode_string("Ò"); }
- else { send_unicode_string("ò"); } break;
- case CS_U_GRAVE:
- if (shifted) { send_unicode_string("Ù"); }
- else { send_unicode_string("ù"); } break;
-
- case CS_A_CIRCUMFLEX:
- if (shifted) { send_unicode_string("Â"); }
- else { send_unicode_string("â"); } break;
- case CS_E_CIRCUMFLEX:
- if (shifted) { send_unicode_string("Ê"); }
- else { send_unicode_string("ê"); } break;
- case CS_I_CIRCUMFLEX:
- if (shifted) { send_unicode_string("Î"); }
- else { send_unicode_string("î"); } break;
- case CS_O_CIRCUMFLEX:
- if (shifted) { send_unicode_string("Ô"); }
- else { send_unicode_string("ô"); } break;
- case CS_U_CIRCUMFLEX:
- if (shifted) { send_unicode_string("Û"); }
- else { send_unicode_string("û"); } break;
-
- case CS_A_DIAERESIS:
- if (shifted) { send_unicode_string("Ä"); }
- else { send_unicode_string("ä"); } break;
- case CS_E_DIAERESIS:
- if (shifted) { send_unicode_string("Ë"); }
- else { send_unicode_string("ë"); } break;
- case CS_I_DIAERESIS:
- if (shifted) { send_unicode_string("Ï"); }
- else { send_unicode_string("ï"); } break;
- case CS_O_DIAERESIS:
- if (shifted) { send_unicode_string("Ö"); }
- else { send_unicode_string("ö"); } break;
- case CS_U_DIAERESIS:
- if (shifted) { send_unicode_string("Ü"); }
- else { send_unicode_string("ü"); } break;
- case CS_Y_DIAERESIS:
- if (shifted) { send_unicode_string("Ÿ"); }
- else { send_unicode_string("ÿ"); } break;
-
- case CS_C_CEDILLA:
- if (shifted) { send_unicode_string("Ç"); }
- else { send_unicode_string("ç"); } break;
- case CS_AE:
- if (shifted) { send_unicode_string("Æ"); }
- else { send_unicode_string("æ"); } break;
- case CS_OE:
- if (shifted) { send_unicode_string("Œ"); }
- else { send_unicode_string("œ"); } break;
-
-
- default:
- if (shifted) {
- add_weak_mods(MOD_BIT(KC_LSFT));
- }
- /* & 0xFF gets the Tap key for Tap Holds, required when using Retro Shift */
- register_code16((IS_RETRO(keycode)) ? keycode & 0xFF : keycode);
+ switch (keycode) {
+ case KC_BSPC:
+ if (shifted) {
+ tap_code16(KC_DEL);
+ } else {
+ tap_code16(KC_BSPC);
}
-}
+ break;
+ break;
-void autoshift_release_user(uint16_t keycode, bool shifted, keyrecord_t *record) {
- switch(keycode) {
+ case KC_AMPERSAND:
+ if (shifted) {
+ tap_code16(KC_AMPERSAND);
+ tap_code16(KC_AMPERSAND);
+ } else {
+ tap_code16(KC_AMPERSAND);
+ }
+ break;
+ case KC_AT:
+ if (shifted) {
+ tap_code16(KC_AT);
+ tap_code16(KC_AT);
+ } else {
+ tap_code16(KC_AT);
+ }
+ break;
+ case KC_BACKSLASH:
+ if (shifted) {
+ tap_code16(KC_BACKSLASH);
+ tap_code16(KC_BACKSLASH);
+ } else {
+ tap_code16(KC_BACKSLASH);
+ }
+ break;
+ case KC_CIRCUMFLEX:
+ if (shifted) {
+ tap_code16(KC_CIRCUMFLEX);
+ tap_code16(KC_CIRCUMFLEX);
+ } else {
+ tap_code16(KC_CIRCUMFLEX);
+ }
+ break;
+ case KC_COLON:
+ if (shifted) {
+ tap_code16(KC_COLON);
+ tap_code16(KC_COLON);
+ } else {
+ tap_code16(KC_COLON);
+ }
+ break;
+ case KC_DOLLAR:
+ if (shifted) {
+ tap_code16(KC_DOLLAR);
+ tap_code16(KC_DOLLAR);
+ } else {
+ tap_code16(KC_DOLLAR);
+ }
+ break;
+ case KC_EQUAL:
+ if (shifted) {
+ tap_code16(KC_EQUAL);
+ tap_code16(KC_EQUAL);
+ } else {
+ tap_code16(KC_EQUAL);
+ }
+ break;
+ case KC_EXCLAIM:
+ if (shifted) {
+ tap_code16(KC_EXCLAIM);
+ tap_code16(KC_EXCLAIM);
+ } else {
+ tap_code16(KC_EXCLAIM);
+ }
+ break;
+ case KC_GRAVE:
+ if (shifted) {
+ tap_code16(KC_GRAVE);
+ tap_code16(KC_GRAVE);
+ } else {
+ tap_code16(KC_GRAVE);
+ }
+ break;
+ case KC_HASH:
+ if (shifted) {
+ tap_code16(KC_HASH);
+ tap_code16(KC_HASH);
+ } else {
+ tap_code16(KC_HASH);
+ }
+ break;
+ case KC_MINUS:
+ if (shifted) {
+ tap_code16(KC_MINUS);
+ tap_code16(KC_MINUS);
+ } else {
+ tap_code16(KC_MINUS);
+ }
+ break;
+ case KC_PERCENT:
+ if (shifted) {
+ tap_code16(KC_PERCENT);
+ tap_code16(KC_PERCENT);
+ } else {
+ tap_code16(KC_PERCENT);
+ }
+ break;
+ case KC_PIPE:
+ if (shifted) {
+ tap_code16(KC_PIPE);
+ tap_code16(KC_PIPE);
+ } else {
+ tap_code16(KC_PIPE);
+ }
+ break;
+ case KC_PLUS:
+ if (shifted) {
+ tap_code16(KC_PLUS);
+ tap_code16(KC_PLUS);
+ } else {
+ tap_code16(KC_PLUS);
+ }
+ break;
+ case KC_QUESTION:
+ if (shifted) {
+ tap_code16(KC_QUESTION);
+ tap_code16(KC_QUESTION);
+ } else {
+ tap_code16(KC_QUESTION);
+ }
+ break;
+ case KC_QUOTE:
+ if (shifted) {
+ tap_code16(KC_QUOTE);
+ tap_code16(KC_QUOTE);
+ } else {
+ tap_code16(KC_QUOTE);
+ }
+ break;
+ case KC_DOUBLE_QUOTE:
+ if (shifted) {
+ tap_code16(KC_DOUBLE_QUOTE);
+ tap_code16(KC_DOUBLE_QUOTE);
+ } else {
+ tap_code16(KC_DOUBLE_QUOTE);
+ }
+ break;
+ case KC_SEMICOLON:
+ if (shifted) {
+ tap_code16(KC_SEMICOLON);
+ tap_code16(KC_SEMICOLON);
+ } else {
+ tap_code16(KC_SEMICOLON);
+ }
+ break;
+ case KC_SLASH:
+ if (shifted) {
+ tap_code16(KC_SLASH);
+ tap_code16(KC_SLASH);
+ } else {
+ tap_code16(KC_SLASH);
+ }
+ break;
+ case KC_ASTERISK:
+ if (shifted) {
+ tap_code16(KC_ASTERISK);
+ tap_code16(KC_ASTERISK);
+ } else {
+ tap_code16(KC_ASTERISK);
+ }
+ break;
+ case KC_TILDE:
+ if (shifted) {
+ tap_code16(KC_TILDE);
+ tap_code16(KC_TILDE);
+ } else {
+ tap_code16(KC_TILDE);
+ }
+ break;
+ case KC_UNDERSCORE:
+ if (shifted) {
+ tap_code16(KC_UNDERSCORE);
+ tap_code16(KC_UNDERSCORE);
+ } else {
+ tap_code16(KC_UNDERSCORE);
+ }
+ break;
- case KC_BSPC:
- unregister_code16((!shifted) ? KC_BSPC : KC_DEL);
- break;
+ case KC_LEFT_ANGLE_BRACKET:
+ if (shifted) {
+ tap_code16(KC_LEFT_ANGLE_BRACKET);
+ tap_code16(KC_LEFT_ANGLE_BRACKET);
+ } else {
+ tap_code16(KC_LEFT_ANGLE_BRACKET);
+ }
+ break;
+ case KC_RIGHT_ANGLE_BRACKET:
+ if (shifted) {
+ tap_code16(KC_RIGHT_ANGLE_BRACKET);
+ tap_code16(KC_RIGHT_ANGLE_BRACKET);
+ } else {
+ tap_code16(KC_RIGHT_ANGLE_BRACKET);
+ }
+ break;
- default:
- /* & 0xFF gets the Tap key for Tap Holds, required when using Retro Shift
- The IS_RETRO check isn't really necessary here, always using
- keycode & 0xFF would be fine. */
- unregister_code16((IS_RETRO(keycode)) ? keycode & 0xFF : keycode);
+ case KC_LEFT_BRACKET:
+ if (shifted) {
+ tap_code16(KC_LEFT_BRACKET);
+ tap_code16(KC_LEFT_BRACKET);
+ } else {
+ tap_code16(KC_LEFT_BRACKET);
+ }
+ break;
+ case KC_RIGHT_BRACKET:
+ if (shifted) {
+ tap_code16(KC_RIGHT_BRACKET);
+ tap_code16(KC_RIGHT_BRACKET);
+ } else {
+ tap_code16(KC_RIGHT_BRACKET);
+ }
+ break;
+ case KC_LEFT_CURLY_BRACE:
+ if (shifted) {
+ tap_code16(KC_LEFT_CURLY_BRACE);
+ tap_code16(KC_LEFT_CURLY_BRACE);
+ } else {
+ tap_code16(KC_LEFT_CURLY_BRACE);
+ }
+ break;
+ case KC_RIGHT_CURLY_BRACE:
+ if (shifted) {
+ tap_code16(KC_RIGHT_CURLY_BRACE);
+ tap_code16(KC_RIGHT_CURLY_BRACE);
+ } else {
+ tap_code16(KC_RIGHT_CURLY_BRACE);
+ }
+ break;
+ case KC_LEFT_PAREN:
+ if (shifted) {
+ tap_code16(KC_LEFT_PAREN);
+ tap_code16(KC_LEFT_PAREN);
+ } else {
+ tap_code16(KC_LEFT_PAREN);
+ }
+ break;
+ case KC_RIGHT_PAREN:
+ if (shifted) {
+ tap_code16(KC_RIGHT_PAREN);
+ tap_code16(KC_RIGHT_PAREN);
+ } else {
+ tap_code16(KC_RIGHT_PAREN);
+ }
+ break;
+
+ /* French
+ Release is not necessary with 'send_unicode_string()' */
+ case CS_A_GRAVE:
+ if (shifted) {
+ tap_code16(US_DGRV);
+ tap_code16(S(KC_A));
+ } else {
+ tap_code16(US_DGRV);
+ tap_code16(KC_A);
+ }
+ break;
+ case CS_E_GRAVE:
+ if (shifted) {
+ tap_code16(US_DGRV);
+ tap_code16(S(KC_E));
+ } else {
+ tap_code16(US_DGRV);
+ tap_code16(KC_E);
+ }
+ break;
+ case CS_U_GRAVE:
+ if (shifted) {
+ tap_code16(US_DGRV);
+ tap_code16(S(KC_U));
+ } else {
+ tap_code16(US_DGRV);
+ tap_code16(KC_U);
+ }
+ break;
+
+ case CS_A_CIRCUMFLEX:
+ if (shifted) {
+ tap_code16(US_DCIR);
+ tap_code16(S(KC_A));
+ } else {
+ tap_code16(US_DCIR);
+ tap_code16(KC_A);
+ }
+ break;
+ case CS_E_CIRCUMFLEX:
+ if (shifted) {
+ tap_code16(US_DCIR);
+ tap_code16(S(KC_E));
+ } else {
+ tap_code16(US_DCIR);
+ tap_code16(KC_E);
}
+ break;
+ case CS_I_CIRCUMFLEX:
+ if (shifted) {
+ tap_code16(US_DCIR);
+ tap_code16(S(KC_I));
+ } else {
+ tap_code16(US_DCIR);
+ tap_code16(KC_I);
+ }
+ break;
+ case CS_O_CIRCUMFLEX:
+ if (shifted) {
+ tap_code16(US_DCIR);
+ tap_code16(S(KC_O));
+ } else {
+ tap_code16(US_DCIR);
+ tap_code16(KC_O);
+ }
+ break;
+ case CS_U_CIRCUMFLEX:
+ if (shifted) {
+ tap_code16(US_DCIR);
+ tap_code16(S(KC_U));
+ } else {
+ tap_code16(US_DCIR);
+ tap_code16(KC_U);
+ }
+ break;
+
+ case CS_E_DIAERESIS:
+ if (shifted) {
+ tap_code16(US_DIAE);
+ tap_code16(S(KC_E));
+ } else {
+ tap_code16(US_DIAE);
+ tap_code16(KC_E);
+ }
+ break;
+ case CS_I_DIAERESIS:
+ if (shifted) {
+ tap_code16(US_DIAE);
+ tap_code16(S(KC_I));
+ } else {
+ tap_code16(US_DIAE);
+ tap_code16(KC_I);
+ }
+ break;
+ case CS_U_DIAERESIS:
+ if (shifted) {
+ tap_code16(US_DIAE);
+ tap_code16(S(KC_U));
+ } else {
+ tap_code16(US_DIAE);
+ tap_code16(KC_U);
+ }
+ break;
+ case CS_Y_DIAERESIS:
+ if (shifted) {
+ tap_code16(US_DIAE);
+ tap_code16(S(KC_Y));
+ } else {
+ tap_code16(US_DIAE);
+ tap_code16(KC_Y);
+ }
+ break;
+
+ default:
+ if (shifted) {
+ add_weak_mods(MOD_BIT(KC_LSFT));
+ }
+ /* & 0xFF gets the Tap key for Tap Holds, required when using Retro Shift */
+ register_code16((IS_RETRO(keycode)) ? keycode & 0xFF : keycode);
+ }
+}
+
+void autoshift_release_user(uint16_t keycode, bool shifted, keyrecord_t *record) {
+ switch (keycode) {
+ case KC_BSPC:
+ unregister_code16((!shifted) ? KC_BSPC : KC_DEL);
+ break;
+
+ default:
+ /* & 0xFF gets the Tap key for Tap Holds, required when using Retro Shift
+ The IS_RETRO check isn't really necessary here, always using
+ keycode & 0xFF would be fine. */
+ unregister_code16((IS_RETRO(keycode)) ? keycode & 0xFF : keycode);
+ }
}
diff --git a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/combo.c b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/combo.c
index c382eedddc..de0436b361 100644
--- a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/combo.c
+++ b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/combo.c
@@ -15,256 +15,231 @@
*/
enum combos {
- LEADER,
- BOOTLOADER,
-
- LAYER_ADJUST,
- LAYER_FN,
- LAYER_LEFT_HAND,
-
- /* French */
- E_ACUTE,
- C_CEDILLA,
- E_A,
- E_O,
-
- A_GRAVE,
- E_GRAVE,
- I_GRAVE,
- O_GRAVE,
- U_GRAVE,
-
- A_CIRCUMFLEX,
- E_CIRCUMFLEX,
- I_CIRCUMFLEX,
- O_CIRCUMFLEX,
- U_CIRCUMFLEX,
-
- A_DIAERESIS,
- E_DIAERESIS,
- I_DIAERESIS,
- O_DIAERESIS,
- U_DIAERESIS,
- Y_DIAERESIS,
-
- /* -- */
- AMPERSAND,
- AT_SIGN,
- BACKSLASH,
- CIRCUMFLEX,
- COLON,
- DOLLAR,
- EQUAL,
- EXCLAMATION_MARK,
- GRAVE,
- HASH,
- MINUS,
- PERCENT,
- PIPE,
- PLUS,
- QUESTION_MARK,
- QUOTE,
- QUOTE_DOUBLE,
- SEMICOLON,
- SLASH,
- STAR,
- TILDE,
- UNDERSCORE,
-
- ANGLE_BRACKET_LEFT,
- ANGLE_BRACKET_RIGHT,
-
- BRACKET_LEFT,
- BRACKET_RIGHT,
- CURLY_BRACKET_LEFT,
- CURLY_BRACKET_RIGHT,
- PARENTHESIS_LEFT,
- PARENTHESIS_RIGHT,
-
- /* -- */
- ALT_SHIFT,
- CONTROL_SHIFT,
- CONTROL_ALT,
- CONTROL_SHIFT_ALT,
- RIGHT_ALT,
-
- /* One hand special */
- CONTROL_RIGHT,
- CONTROL_SHIFT_RIGHT,
-
- // DEL_LEFT,
- SHIFT_LEFT,
- ALTGR_LEFT,
- CONTROL_SHIFT_LEFT,
+ LEADER,
+ BOOTLOADER,
+
+ LAYER_ADJ,
+ LAYER_FN,
+ LAYER_LEFT_HAND,
+ LAYER_MOUSE,
+ LAYER_MOUSE_BACK,
+
+ /* French */
+ C_CEDILLA,
+ E_A,
+ E_O,
+
+ A_GRAVE,
+ E_GRAVE,
+ U_GRAVE,
+
+ A_CIRCUMFLEX,
+ E_CIRCUMFLEX,
+ I_CIRCUMFLEX,
+ O_CIRCUMFLEX,
+ U_CIRCUMFLEX,
+
+ E_DIAERESIS,
+ I_DIAERESIS,
+ U_DIAERESIS,
+ Y_DIAERESIS,
+
+ /* -- */
+ AMPERSAND,
+ AT_SIGN,
+ BACKSLASH,
+ CIRCUMFLEX,
+ COLON,
+ DOLLAR,
+ EQUAL,
+ EXCLAMATION_MARK,
+ GRAVE,
+ HASH,
+ MINUS,
+ PERCENT,
+ PIPE,
+ PLUS,
+ QUESTION_MARK,
+ QUOTE,
+ QUOTE_DOUBLE,
+ SEMICOLON,
+ SLASH,
+ STAR,
+ TILDE,
+ UNDERSCORE,
+
+ ANGLE_BRACKET_LEFT,
+ ANGLE_BRACKET_RIGHT,
+
+ BRACKET_LEFT,
+ BRACKET_RIGHT,
+ CURLY_BRACKET_LEFT,
+ CURLY_BRACKET_RIGHT,
+ PARENTHESIS_LEFT,
+ PARENTHESIS_RIGHT,
+
+ /* Non qwerty */
+ EURO,
+
+ /* One hand special */
+ CONTROL_RIGHT,
+ CONTROL_SHIFT_RIGHT,
+
+ ALT_LEFT,
+ SHIFT_LEFT,
+ CONTROL_SHIFT_LEFT,
+
+ /* Just to replace the define in config.h */
+ COMBO_LENGTH,
};
+uint16_t COMBO_LEN = COMBO_LENGTH;
/* Sequences fo keys */
-const uint16_t PROGMEM combo_leader[] = {LT(_MOUSE, KC_COMM), LT(_ARROWS, KC_DOT), COMBO_END};
-const uint16_t PROGMEM combo_bootloader[] = {KC_K, KC_TAB, KC_Z, KC_BSPC, KC_V, KC_J, COMBO_END};
+const uint16_t PROGMEM combo_leader[] = {LT(_MOUSE, KC_COMM), LT(_ARROWS, KC_DOT), COMBO_END};
+const uint16_t PROGMEM combo_bootloader[] = {KC_K, KC_TAB, KC_Z, KC_BSPC, KC_V, KC_J, COMBO_END};
+
+const uint16_t PROGMEM combo_ADJ[] = {CTL_T(KC_SPACE), LT(_NUMERIC, KC_ENT), COMBO_END};
+const uint16_t PROGMEM combo_fn[] = {LT(_NUMERIC, KC_ENT), KC_N, COMBO_END};
+const uint16_t PROGMEM combo_left_hand[] = {LT(_MOUSE, KC_COMM), GUI_T(KC_ESC), COMBO_END};
+const uint16_t PROGMEM combo_mouse[] = {KC_A, KC_I, KC_E, KC_U, COMBO_END};
+const uint16_t PROGMEM combo_mouse_back[] = {KC_MS_LEFT, KC_MS_UP, KC_MS_DOWN, KC_MS_RIGHT, COMBO_END};
+/* -- */
+const uint16_t PROGMEM combo_c_cedilla[] = {LT(_ARROWS, KC_DOT), KC_C, COMBO_END};
+const uint16_t PROGMEM combo_ea[] = {US_EACU, KC_A, COMBO_END};
+const uint16_t PROGMEM combo_eo[] = {US_EACU, KC_O, COMBO_END};
-const uint16_t PROGMEM combo_adjust[] = {KC_LCPO, LT(_NUMERIC, KC_ENT), COMBO_END};
-const uint16_t PROGMEM combo_fn[] = {LT(_NUMERIC, KC_ENT), KC_N, COMBO_END};
-const uint16_t PROGMEM combo_left_hand[] = {KC_LCPO, GUI_T(KC_ESC), COMBO_END};
+const uint16_t PROGMEM combo_a_grave[] = {CTL_T(KC_SPACE), KC_A, COMBO_END};
+const uint16_t PROGMEM combo_e_grave[] = {CTL_T(KC_SPACE), KC_E, COMBO_END};
+const uint16_t PROGMEM combo_u_grave[] = {CTL_T(KC_SPACE), KC_U, COMBO_END};
-/* -- */
-// const uint16_t PROGMEM combo_enter_shifted[] = {LT(_NUMERIC, KC_ENT), KC_S, COMBO_END};
-const uint16_t PROGMEM combo_control_shift[] = {KC_LCPO, KC_S, COMBO_END};
-const uint16_t PROGMEM combo_control_alt[] = {KC_LCPO, KC_LALT, COMBO_END};
-const uint16_t PROGMEM combo_control_shift_alt[] = {KC_LCPO, KC_S, KC_A, COMBO_END};
-const uint16_t PROGMEM combo_right_alt[] = {KC_LAPO, KC_G, COMBO_END};
-const uint16_t PROGMEM combo_alt_shift[] = {KC_LALT, KC_S, COMBO_END};
+const uint16_t PROGMEM combo_a_circumflex[] = {LT(_MOUSE, KC_COMM), KC_A, COMBO_END};
+const uint16_t PROGMEM combo_e_circumflex[] = {LT(_MOUSE, KC_COMM), KC_E, COMBO_END};
+const uint16_t PROGMEM combo_i_circumflex[] = {LT(_MOUSE, KC_COMM), KC_I, COMBO_END};
+const uint16_t PROGMEM combo_o_circumflex[] = {LT(_MOUSE, KC_COMM), KC_O, COMBO_END};
+const uint16_t PROGMEM combo_u_circumflex[] = {LT(_MOUSE, KC_COMM), KC_U, COMBO_END};
-/* -- */
-const uint16_t PROGMEM combo_e_acute[] = {KC_LCPO, KC_E, COMBO_END};
-const uint16_t PROGMEM combo_c_cedilla[] = {KC_LCPO, KC_I, COMBO_END};
-const uint16_t PROGMEM combo_ea[] = {KC_LCPO, KC_A, COMBO_END};
-const uint16_t PROGMEM combo_eo[] = {KC_LCPO, KC_O, COMBO_END};
-
-const uint16_t PROGMEM combo_a_grave[] = {LT(_MOUSE, KC_COMM), KC_A, COMBO_END};
-const uint16_t PROGMEM combo_e_grave[] = {LT(_MOUSE, KC_COMM), KC_E, COMBO_END};
-const uint16_t PROGMEM combo_i_grave[] = {LT(_MOUSE, KC_COMM), KC_I, COMBO_END};
-const uint16_t PROGMEM combo_o_grave[] = {LT(_MOUSE, KC_COMM), KC_O, COMBO_END};
-const uint16_t PROGMEM combo_u_grave[] = {LT(_MOUSE, KC_COMM), KC_U, COMBO_END};
-
-const uint16_t PROGMEM combo_a_circumflex[] = {KC_C, KC_A, COMBO_END};
-const uint16_t PROGMEM combo_e_circumflex[] = {KC_C, KC_E, COMBO_END};
-const uint16_t PROGMEM combo_i_circumflex[] = {KC_C, KC_I, COMBO_END};
-const uint16_t PROGMEM combo_o_circumflex[] = {KC_C, KC_O, COMBO_END};
-const uint16_t PROGMEM combo_u_circumflex[] = {KC_C, KC_U, COMBO_END};
-
-const uint16_t PROGMEM combo_a_diaeresis[] = {KC_T, KC_A, COMBO_END};
-const uint16_t PROGMEM combo_e_diaeresis[] = {KC_T, KC_E, COMBO_END};
-const uint16_t PROGMEM combo_i_diaeresis[] = {KC_T, KC_I, COMBO_END};
-const uint16_t PROGMEM combo_o_diaeresis[] = {KC_T, KC_O, COMBO_END};
-const uint16_t PROGMEM combo_u_diaeresis[] = {KC_T, KC_U, COMBO_END};
-const uint16_t PROGMEM combo_y_diaeresis[] = {KC_T, KC_Y, COMBO_END};
+const uint16_t PROGMEM combo_e_diaeresis[] = {US_EACU, KC_E, COMBO_END};
+const uint16_t PROGMEM combo_i_diaeresis[] = {US_EACU, KC_I, COMBO_END};
+const uint16_t PROGMEM combo_u_diaeresis[] = {US_EACU, KC_U, COMBO_END};
+const uint16_t PROGMEM combo_y_diaeresis[] = {US_EACU, KC_Y, COMBO_END};
/* -- */
-const uint16_t PROGMEM combo_ampersand[] = {KC_I, KC_E, COMBO_END};
-const uint16_t PROGMEM combo_at_sign[] = {KC_Q, KC_Y, COMBO_END};
-const uint16_t PROGMEM combo_backslash[] = {KC_D, KC_R, COMBO_END};
-const uint16_t PROGMEM combo_circumflex[] = {KC_T, KC_D, COMBO_END};
-const uint16_t PROGMEM combo_colon[] = {KC_C, KC_G, COMBO_END};
-const uint16_t PROGMEM combo_dollar[] = {KC_D, KC_L, COMBO_END};
-const uint16_t PROGMEM combo_equal[] = {KC_T, KC_H, COMBO_END};
-const uint16_t PROGMEM combo_exclamation_mark[] = {KC_O, KC_W, COMBO_END};
-const uint16_t PROGMEM combo_grave[] = {KC_T, KC_G, COMBO_END};
-const uint16_t PROGMEM combo_hash[] = {KC_I, KC_O, COMBO_END};
-const uint16_t PROGMEM combo_minus[] = {KC_T, KC_R, COMBO_END};
-const uint16_t PROGMEM combo_percent[] = {KC_O, KC_U, COMBO_END};
-const uint16_t PROGMEM combo_pipe[] = {KC_E, KC_U, COMBO_END};
-const uint16_t PROGMEM combo_plus[] = {KC_T, KC_L, COMBO_END};
-const uint16_t PROGMEM combo_question_mark[] = {KC_B, KC_O, COMBO_END};
-const uint16_t PROGMEM combo_quote[] = {KC_T, KC_N, COMBO_END};
-const uint16_t PROGMEM combo_quote_double[] = {KC_A, KC_U, COMBO_END};
-const uint16_t PROGMEM combo_semicolon[] = {KC_G, KC_H, COMBO_END};
-const uint16_t PROGMEM combo_slash[] = {KC_S, KC_L, COMBO_END};
-const uint16_t PROGMEM combo_star[] = {KC_S, KC_T, COMBO_END};
-const uint16_t PROGMEM combo_tilde[] = {KC_I, KC_U, COMBO_END};
-const uint16_t PROGMEM combo_underscore[] = {KC_S, KC_R, COMBO_END};
-
-const uint16_t PROGMEM combo_angle_bracket_left[] = {KC_C, KC_S, COMBO_END};
-const uint16_t PROGMEM combo_angle_bracket_right[] = {KC_S, KC_H, COMBO_END};
-
-const uint16_t PROGMEM combo_bracket_left[] = {KC_Q, KC_U, COMBO_END};
-const uint16_t PROGMEM combo_bracket_right[] = {KC_E, KC_Y, COMBO_END};
-const uint16_t PROGMEM combo_curly_bracket_left[] = {KC_X, KC_E, COMBO_END};
-const uint16_t PROGMEM combo_curly_bracket_right[] = {KC_I, KC_Q, COMBO_END};
-const uint16_t PROGMEM combo_parenthesis_left[] = {KC_X, KC_U, COMBO_END};
-const uint16_t PROGMEM combo_parenthesis_right[] = {KC_I, KC_Y, COMBO_END};
+const uint16_t PROGMEM combo_ampersand[] = {KC_E, KC_U, COMBO_END};
+const uint16_t PROGMEM combo_at_sign[] = {KC_D, KC_L, COMBO_END};
+const uint16_t PROGMEM combo_backslash[] = {KC_B, KC_E, COMBO_END};
+const uint16_t PROGMEM combo_circumflex[] = {KC_B, KC_O, COMBO_END};
+const uint16_t PROGMEM combo_colon[] = {KC_C, KC_G, COMBO_END};
+const uint16_t PROGMEM combo_dollar[] = {KC_O, KC_W, COMBO_END};
+const uint16_t PROGMEM combo_equal[] = {KC_T, KC_H, COMBO_END};
+const uint16_t PROGMEM combo_exclamation_mark[] = {KC_Q, KC_Y, COMBO_END};
+const uint16_t PROGMEM combo_grave[] = {KC_T, KC_G, COMBO_END};
+const uint16_t PROGMEM combo_hash[] = {KC_X, KC_U, COMBO_END};
+const uint16_t PROGMEM combo_minus[] = {KC_T, KC_R, COMBO_END};
+const uint16_t PROGMEM combo_percent[] = {KC_B, KC_U, COMBO_END};
+const uint16_t PROGMEM combo_pipe[] = {KC_I, KC_E, COMBO_END};
+const uint16_t PROGMEM combo_plus[] = {KC_T, KC_L, COMBO_END};
+const uint16_t PROGMEM combo_question_mark[] = {KC_P, KC_D, COMBO_END};
+const uint16_t PROGMEM combo_quote[] = {KC_T, KC_N, COMBO_END};
+const uint16_t PROGMEM combo_quote_double[] = {KC_A, KC_U, COMBO_END};
+const uint16_t PROGMEM combo_semicolon[] = {KC_G, KC_H, COMBO_END};
+const uint16_t PROGMEM combo_slash[] = {KC_S, KC_L, COMBO_END};
+const uint16_t PROGMEM combo_star[] = {KC_S, KC_T, COMBO_END};
+const uint16_t PROGMEM combo_tilde[] = {KC_I, KC_U, COMBO_END};
+const uint16_t PROGMEM combo_underscore[] = {KC_S, KC_R, COMBO_END};
+
+const uint16_t PROGMEM combo_angle_bracket_left[] = {KC_C, KC_S, COMBO_END};
+const uint16_t PROGMEM combo_angle_bracket_right[] = {KC_S, KC_H, COMBO_END};
+const uint16_t PROGMEM combo_bracket_left[] = {KC_I, KC_O, COMBO_END};
+const uint16_t PROGMEM combo_bracket_right[] = {KC_O, KC_U, COMBO_END};
+const uint16_t PROGMEM combo_curly_bracket_left[] = {KC_X, KC_E, COMBO_END};
+const uint16_t PROGMEM combo_curly_bracket_right[] = {KC_E, KC_Y, COMBO_END};
+const uint16_t PROGMEM combo_parenthesis_left[] = {KC_T, KC_D, COMBO_END};
+const uint16_t PROGMEM combo_parenthesis_right[] = {KC_D, KC_R, COMBO_END};
+
+/* Non qwerty */
+const uint16_t PROGMEM combo_euro[] = {KC_X, KC_Q, COMBO_END};
/* One hand special */
-const uint16_t PROGMEM combo_control_right[] = {LT(_NUMERIC, KC_ENT), KC_R, COMBO_END};
-const uint16_t PROGMEM combo_control_shift_right[] = {LT(_NUMERIC, KC_ENT), KC_S, COMBO_END};
-
-const uint16_t PROGMEM combo_shift_left[] = {KC_LCPO, KC_LALT, COMBO_END};
-// const uint16_t PROGMEM combo_altgr_left[] = {LT(_MOUSE, KC_COMM), KC_LALT, COMBO_END};
-// const uint16_t PROGMEM combo_del_left[] = {GUI_T(KC_ESC), KC_K, COMBO_END};
-const uint16_t PROGMEM combo_control_shift_left[] = {LT(_MOUSE, KC_COMM), KC_LALT, COMBO_END};
+const uint16_t PROGMEM combo_control_right[] = {LT(_NUMERIC, KC_ENT), KC_R, COMBO_END};
+const uint16_t PROGMEM combo_control_shift_right[] = {LT(_NUMERIC, KC_ENT), KC_S, COMBO_END};
+const uint16_t PROGMEM combo_shift_left[] = {LT(_MOUSE, KC_COMM), US_EACU, COMBO_END};
+const uint16_t PROGMEM combo_alt_left[] = {CTL_T(KC_SPACE), US_EACU, COMBO_END};
+const uint16_t PROGMEM combo_control_shift_left[] = {CTL_T(KC_SPACE), GUI_T(KC_ESC), COMBO_END};
/* Sequences fo keys */
combo_t key_combos[] = {
- [LEADER] = COMBO(combo_leader, KC_LEAD),
- [BOOTLOADER] = COMBO(combo_bootloader, QK_BOOTLOADER),
+ [LEADER] = COMBO(combo_leader, QK_LEAD),
+ [BOOTLOADER] = COMBO(combo_bootloader, QK_BOOTLOADER),
- [LAYER_ADJUST] = COMBO(combo_adjust, OSL(_ADJUST)),
- [LAYER_FN] = COMBO(combo_fn, OSL(_FN)),
- [LAYER_LEFT_HAND] = COMBO(combo_left_hand, OSL(_LEFT_HAND)),
-
- /* -- */
- // [ENTER_SHIFTED] = COMBO(combo_enter_shifted, S(KC_ENT)),
- [ALT_SHIFT] = COMBO(combo_alt_shift, A(S(XXXXXXX))),
- [CONTROL_SHIFT] = COMBO(combo_control_shift, C(S(XXXXXXX))),
- [CONTROL_ALT] = COMBO(combo_control_alt, C(A(XXXXXXX))),
- [CONTROL_SHIFT_ALT] = COMBO(combo_control_shift_alt, C(S(A(XXXXXXX)))),
- [RIGHT_ALT] = COMBO(combo_right_alt, KC_RALT),
+ [LAYER_ADJ] = COMBO(combo_ADJ, OSL(_ADJ)),
+ [LAYER_FN] = COMBO(combo_fn, OSL(_FN)),
+ [LAYER_LEFT_HAND] = COMBO(combo_left_hand, OSL(_LEFT_HAND)),
+ [LAYER_MOUSE] = COMBO(combo_mouse, TG(_MOUSE)),
+ [LAYER_MOUSE_BACK] = COMBO(combo_mouse_back, TG(_MOUSE)),
/* French */
- [E_ACUTE] = COMBO(combo_e_acute, CS_E_ACUTE),
- [C_CEDILLA] = COMBO(combo_c_cedilla, CS_C_CEDILLA),
- [E_A] = COMBO(combo_ea, CS_AE),
- [E_O] = COMBO(combo_eo, CS_OE),
-
- [A_GRAVE] = COMBO(combo_a_grave, CS_A_GRAVE),
- [E_GRAVE] = COMBO(combo_e_grave, CS_E_GRAVE),
- [I_GRAVE] = COMBO(combo_i_grave, CS_I_GRAVE),
- [O_GRAVE] = COMBO(combo_o_grave, CS_O_GRAVE),
- [U_GRAVE] = COMBO(combo_u_grave, CS_U_GRAVE),
-
- [A_CIRCUMFLEX] = COMBO(combo_a_circumflex, CS_A_CIRCUMFLEX),
- [E_CIRCUMFLEX] = COMBO(combo_e_circumflex, CS_E_CIRCUMFLEX),
- [I_CIRCUMFLEX] = COMBO(combo_i_circumflex, CS_I_CIRCUMFLEX),
- [O_CIRCUMFLEX] = COMBO(combo_o_circumflex, CS_O_CIRCUMFLEX),
- [U_CIRCUMFLEX] = COMBO(combo_u_circumflex, CS_U_CIRCUMFLEX),
-
- [A_DIAERESIS] = COMBO(combo_a_diaeresis, CS_A_DIAERESIS),
- [E_DIAERESIS] = COMBO(combo_e_diaeresis, CS_E_DIAERESIS),
- [I_DIAERESIS] = COMBO(combo_i_diaeresis, CS_I_DIAERESIS),
- [O_DIAERESIS] = COMBO(combo_o_diaeresis, CS_O_DIAERESIS),
- [U_DIAERESIS] = COMBO(combo_u_diaeresis, CS_U_DIAERESIS),
- [Y_DIAERESIS] = COMBO(combo_y_diaeresis, CS_Y_DIAERESIS),
+ [C_CEDILLA] = COMBO(combo_c_cedilla, US_CCED),
+ [E_A] = COMBO(combo_ea, US_AE),
+ [E_O] = COMBO(combo_eo, US_OE),
+
+ [A_GRAVE] = COMBO(combo_a_grave, CS_A_GRAVE),
+ [E_GRAVE] = COMBO(combo_e_grave, CS_E_GRAVE),
+ [U_GRAVE] = COMBO(combo_u_grave, CS_U_GRAVE),
+
+ [A_CIRCUMFLEX] = COMBO(combo_a_circumflex, CS_A_CIRCUMFLEX),
+ [E_CIRCUMFLEX] = COMBO(combo_e_circumflex, CS_E_CIRCUMFLEX),
+ [I_CIRCUMFLEX] = COMBO(combo_i_circumflex, CS_I_CIRCUMFLEX),
+ [O_CIRCUMFLEX] = COMBO(combo_o_circumflex, CS_O_CIRCUMFLEX),
+ [U_CIRCUMFLEX] = COMBO(combo_u_circumflex, CS_U_CIRCUMFLEX),
+
+ [E_DIAERESIS] = COMBO(combo_e_diaeresis, CS_E_DIAERESIS),
+ [I_DIAERESIS] = COMBO(combo_i_diaeresis, CS_I_DIAERESIS),
+ [U_DIAERESIS] = COMBO(combo_u_diaeresis, CS_U_DIAERESIS),
+ [Y_DIAERESIS] = COMBO(combo_y_diaeresis, CS_Y_DIAERESIS),
/* -- */
- [AMPERSAND] = COMBO(combo_ampersand, KC_AMPR),
- [AT_SIGN] = COMBO(combo_at_sign, KC_AT),
- [BACKSLASH] = COMBO(combo_backslash, KC_BSLS),
- [CIRCUMFLEX] = COMBO(combo_circumflex, KC_CIRC),
- [COLON] = COMBO(combo_colon, KC_COLON),
- [DOLLAR] = COMBO(combo_dollar, KC_DLR),
- [EQUAL] = COMBO(combo_equal, KC_EQL),
- [EXCLAMATION_MARK] = COMBO(combo_exclamation_mark, KC_EXCLAIM),
- [GRAVE] = COMBO(combo_grave, KC_GRV),
- [HASH] = COMBO(combo_hash, KC_HASH),
- [MINUS] = COMBO(combo_minus, KC_MINS),
- [PERCENT] = COMBO(combo_percent, KC_PERC),
- [PIPE] = COMBO(combo_pipe, KC_PIPE),
- [PLUS] = COMBO(combo_plus, KC_PLUS),
- [QUESTION_MARK] = COMBO(combo_question_mark, KC_QUESTION),
- [QUOTE] = COMBO(combo_quote, KC_QUOTE),
- [QUOTE_DOUBLE] = COMBO(combo_quote_double, KC_DOUBLE_QUOTE),
- [SEMICOLON] = COMBO(combo_semicolon, KC_SEMICOLON),
- [SLASH] = COMBO(combo_slash, KC_SLSH),
- [STAR] = COMBO(combo_star, KC_ASTR),
- [TILDE] = COMBO(combo_tilde, KC_TILD),
- [UNDERSCORE] = COMBO(combo_underscore, KC_UNDS),
-
- [ANGLE_BRACKET_LEFT] = COMBO(combo_angle_bracket_left, KC_LABK),
- [ANGLE_BRACKET_RIGHT] = COMBO(combo_angle_bracket_right, KC_RABK),
-
- [BRACKET_LEFT] = COMBO(combo_bracket_left, KC_LEFT_BRACKET),
- [BRACKET_RIGHT] = COMBO(combo_bracket_right, KC_RIGHT_BRACKET),
- [CURLY_BRACKET_LEFT] = COMBO(combo_curly_bracket_left, KC_LEFT_CURLY_BRACE),
- [CURLY_BRACKET_RIGHT] = COMBO(combo_curly_bracket_right, KC_RIGHT_CURLY_BRACE),
- [PARENTHESIS_LEFT] = COMBO(combo_parenthesis_left, KC_LEFT_PAREN),
- [PARENTHESIS_RIGHT] COMBO(combo_parenthesis_right, KC_RIGHT_PAREN),
+ [AMPERSAND] = COMBO(combo_ampersand, KC_AMPERSAND),
+ [AT_SIGN] = COMBO(combo_at_sign, KC_AT),
+ [BACKSLASH] = COMBO(combo_backslash, KC_BACKSLASH),
+ [CIRCUMFLEX] = COMBO(combo_circumflex, KC_CIRCUMFLEX),
+ [COLON] = COMBO(combo_colon, KC_COLON),
+ [DOLLAR] = COMBO(combo_dollar, KC_DOLLAR),
+ [EQUAL] = COMBO(combo_equal, KC_EQUAL),
+ [EXCLAMATION_MARK] = COMBO(combo_exclamation_mark, KC_EXCLAIM),
+ [GRAVE] = COMBO(combo_grave, KC_GRAVE),
+ [HASH] = COMBO(combo_hash, KC_HASH),
+ [MINUS] = COMBO(combo_minus, KC_MINUS),
+ [PERCENT] = COMBO(combo_percent, KC_PERCENT),
+ [PIPE] = COMBO(combo_pipe, KC_PIPE),
+ [PLUS] = COMBO(combo_plus, KC_PLUS),
+ [QUESTION_MARK] = COMBO(combo_question_mark, KC_QUESTION),
+ [QUOTE] = COMBO(combo_quote, KC_QUOTE),
+ [QUOTE_DOUBLE] = COMBO(combo_quote_double, KC_DOUBLE_QUOTE),
+ [SEMICOLON] = COMBO(combo_semicolon, KC_SEMICOLON),
+ [SLASH] = COMBO(combo_slash, KC_SLASH),
+ [STAR] = COMBO(combo_star, KC_ASTERISK),
+ [TILDE] = COMBO(combo_tilde, KC_TILDE),
+ [UNDERSCORE] = COMBO(combo_underscore, KC_UNDERSCORE),
+
+ [ANGLE_BRACKET_LEFT] = COMBO(combo_angle_bracket_left, KC_LEFT_ANGLE_BRACKET),
+ [ANGLE_BRACKET_RIGHT] = COMBO(combo_angle_bracket_right, KC_RIGHT_ANGLE_BRACKET),
+
+ [BRACKET_LEFT] = COMBO(combo_bracket_left, KC_LEFT_BRACKET),
+ [BRACKET_RIGHT] = COMBO(combo_bracket_right, KC_RIGHT_BRACKET),
+ [CURLY_BRACKET_LEFT] = COMBO(combo_curly_bracket_left, KC_LEFT_CURLY_BRACE),
+ [CURLY_BRACKET_RIGHT] = COMBO(combo_curly_bracket_right, KC_RIGHT_CURLY_BRACE),
+ [PARENTHESIS_LEFT] = COMBO(combo_parenthesis_left, KC_LEFT_PAREN),
+ [PARENTHESIS_RIGHT] COMBO(combo_parenthesis_right, KC_RIGHT_PAREN),
+
+ /* Non qwerty */
+ [EURO] COMBO(combo_euro, US_EURO),
/* One hand special */
- [CONTROL_RIGHT] = COMBO(combo_control_right, KC_RCTL),
- [CONTROL_SHIFT_RIGHT] = COMBO(combo_control_shift_right, C(S(XXXXXXX))),
+ [CONTROL_RIGHT] = COMBO(combo_control_right, KC_RCTL),
+ [CONTROL_SHIFT_RIGHT] = COMBO(combo_control_shift_right, C(S(XXXXXXX))),
- [SHIFT_LEFT] = COMBO(combo_shift_left, KC_LSFT),
- // [ALTGR_LEFT] = COMBO(combo_altgr_left, KC_ALGR),
- [CONTROL_SHIFT_LEFT] = COMBO(combo_control_shift_left, C(S(XXXXXXX))),
- // [DEL_LEFT] = COMBO(combo_del_left, KC_BSPC),
+ [ALT_LEFT] = COMBO(combo_alt_left, KC_LALT),
+ [SHIFT_LEFT] = COMBO(combo_shift_left, KC_LSFT),
+ [CONTROL_SHIFT_LEFT] = COMBO(combo_control_shift_left, C(S(XXXXXXX))),
};
diff --git a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/leader.c b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/leader.c
index 7cfd30af6d..1964fb428f 100644
--- a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/leader.c
+++ b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/leader.c
@@ -2,267 +2,207 @@
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
-
-LEADER_EXTERNS();
-
-void matrix_scan_user(void) {
- LEADER_DICTIONARY() {
- leading = false;
- leader_end();
-
- // SEQ_ONE_KEY(KC_F) {
- // // Anything you can do in a macro.
- // SEND_STRING("QMK is awesome."); }
-
-
- SEQ_TWO_KEYS(KC_M, KC_S) {
- SEND_STRING("f@linguenheld.fr"); }
- SEQ_TWO_KEYS(KC_M, KC_L) {
- SEND_STRING("florent@linguenheld.fr"); }
- SEQ_TWO_KEYS(KC_F, KC_L) {
- SEND_STRING("FLinguenheld"); }
-
- SEQ_THREE_KEYS(KC_T, KC_E, KC_S) {
- SEND_STRING("test01234"); }
- SEQ_THREE_KEYS(KC_A, KC_D, KC_M) {
- SEND_STRING("admin01234"); }
-
- SEQ_ONE_KEY(KC_C) {
- SEND_STRING(" | xclip -r -selection clipboard"); }
-
- /* Degree */
- SEQ_THREE_KEYS(KC_D, KC_E, KC_G) {
- send_unicode_string("°"); }
+#include "keycodes.h"
+#include <stdlib.h>
+
+void leader_end_user(void) {
+ if (leader_sequence_two_keys(KC_M, KC_S)) {
+ SEND_STRING("f@linguenheld.fr");
+ } else if (leader_sequence_two_keys(KC_M, KC_L)) {
+ SEND_STRING("florent@linguenheld.fr");
+ } else if (leader_sequence_two_keys(KC_F, KC_L)) {
+ SEND_STRING("flinguenheld");
+
+ } else if (leader_sequence_three_keys(KC_D, KC_O, KC_T)) {
+ SEND_STRING("https://github.com/flinguenheld/dotfiles");
+ } else if (leader_sequence_three_keys(KC_H, KC_U, KC_B)) {
+ SEND_STRING("https://github.com/flinguenheld/");
+ } else if (leader_sequence_three_keys(KC_Q, KC_M, KC_K)) {
+ SEND_STRING("$HOME/qmk_firmware/keyboards/splitkb/aurora/sweep/keymaps/sweep_keymap");
+ } else if (leader_sequence_three_keys(KC_Q, KC_M, KC_C)) {
+ SEND_STRING("qmk compile && qmk flash");
+
+ } else if (leader_sequence_three_keys(KC_T, KC_E, KC_S)) {
+ SEND_STRING("test01234");
+ } else if (leader_sequence_three_keys(KC_A, KC_D, KC_M)) {
+ SEND_STRING("admin01234");
+
+ } else if (leader_sequence_one_key(KC_C)) {
+ SEND_STRING(" | xclip -r -selection clipboard");
+
+ /* Keyring requests, improbable combinaisons used by i3 */
+ } else if (leader_sequence_three_keys(KC_G, KC_I, KC_T)) {
+ register_code(KC_LEFT_GUI);
+ register_code(KC_LEFT_SHIFT);
+ register_code(KC_LEFT_CTRL);
+ register_code(KC_0);
+ unregister_code(KC_0);
+ unregister_code(KC_LEFT_GUI);
+ unregister_code(KC_LEFT_SHIFT);
+ unregister_code(KC_LEFT_CTRL);
+
+ } else if (leader_sequence_three_keys(KC_M, KC_A, KC_I)) {
+ register_code(KC_LEFT_GUI);
+ register_code(KC_LEFT_SHIFT);
+ register_code(KC_LEFT_CTRL);
+ register_code(KC_1);
+ unregister_code(KC_1);
+ unregister_code(KC_LEFT_GUI);
+ unregister_code(KC_LEFT_SHIFT);
+ unregister_code(KC_LEFT_CTRL);
+
+ } else if (leader_sequence_three_keys(KC_P, KC_A, KC_S)) {
+ register_code(KC_LEFT_GUI);
+ register_code(KC_LEFT_SHIFT);
+ register_code(KC_LEFT_CTRL);
+ register_code(KC_2);
+ unregister_code(KC_2);
+ unregister_code(KC_LEFT_GUI);
+ unregister_code(KC_LEFT_SHIFT);
+ unregister_code(KC_LEFT_CTRL);
+
+ /* ----- */
+ } else if (leader_sequence_three_keys(KC_D, KC_E, KC_G)) {
+ tap_code16(US_DEG); // °
+ } else if (leader_sequence_three_keys(KC_D, KC_I, KC_A)) {
+ tap_code16(US_OSTR); // ø
+ } else if (leader_sequence_three_keys(KC_S, KC_E, KC_C)) {
+ tap_code16(US_SECT); // §
/* Copyright / Register */
- SEQ_THREE_KEYS(KC_C, KC_O, KC_P) {
- send_unicode_string("©"); }
- SEQ_THREE_KEYS(KC_R, KC_E, KC_G) {
- send_unicode_string("®"); }
-
- /* Diameter */
- SEQ_THREE_KEYS(KC_D, KC_I, KC_A) {
- send_unicode_string("ø"); }
- SEQ_FOUR_KEYS(KC_D, KC_I, KC_A, KC_M) {
- send_unicode_string("Ø"); }
+ } else if (leader_sequence_three_keys(KC_C, KC_O, KC_P)) {
+ tap_code16(US_COPY); // ©
+ } else if (leader_sequence_three_keys(KC_R, KC_E, KC_G)) {
+ tap_code16(US_REGD); // ®
/* Currency */
- SEQ_THREE_KEYS(KC_E, KC_U, KC_R) {
- send_unicode_string("€"); }
- SEQ_THREE_KEYS(KC_P, KC_O, KC_U) {
- send_unicode_string("£"); }
- SEQ_THREE_KEYS(KC_Y, KC_E, KC_N) {
- send_unicode_string("¥"); }
- SEQ_THREE_KEYS(KC_C, KC_E, KC_N) {
- send_unicode_string("¢"); }
+ } else if (leader_sequence_three_keys(KC_E, KC_U, KC_R)) {
+ tap_code16(US_EURO); // €
+ } else if (leader_sequence_three_keys(KC_P, KC_O, KC_U)) {
+ tap_code16(US_PND); // £
+ } else if (leader_sequence_three_keys(KC_Y, KC_E, KC_N)) {
+ tap_code16(US_YEN); // ¥
+ } else if (leader_sequence_three_keys(KC_C, KC_E, KC_N)) {
+ tap_code16(US_CENT); // ¢
/* Fractions */
- SEQ_THREE_KEYS(KC_F, KC_C, KC_T) {
- send_unicode_string("¼"); }
- SEQ_THREE_KEYS(KC_F, KC_C, KC_G) {
- send_unicode_string("½"); }
- SEQ_THREE_KEYS(KC_F, KC_H, KC_T) {
- send_unicode_string("¾"); }
+ } else if (leader_sequence_three_keys(KC_F, KC_C, KC_T)) {
+ tap_code16(US_QRTR); // ¼
+ } else if (leader_sequence_three_keys(KC_F, KC_C, KC_G)) {
+ tap_code16(US_HALF); // ½
+ } else if (leader_sequence_three_keys(KC_F, KC_H, KC_T)) {
+ tap_code16(US_TQTR); // ¾
/* Maths */
- SEQ_THREE_KEYS(KC_M, KC_U, KC_L) {
- send_unicode_string("×"); }
- SEQ_THREE_KEYS(KC_D, KC_I, KC_V) {
- send_unicode_string("÷"); }
- SEQ_TWO_KEYS(KC_P, KC_M) {
- send_unicode_string("±"); }
- SEQ_THREE_KEYS(KC_I, KC_N, KC_E) {
- send_unicode_string("≠"); }
- SEQ_THREE_KEYS(KC_A, KC_L, KC_M) {
- send_unicode_string("≈"); }
- SEQ_THREE_KEYS(KC_S, KC_Q, KC_U) {
- send_unicode_string("√"); }
- SEQ_THREE_KEYS(KC_I, KC_N, KC_F) {
- send_unicode_string("∞"); }
- SEQ_TWO_KEYS(KC_LABK, KC_LABK) {
- send_unicode_string("≤"); }
- SEQ_TWO_KEYS(KC_RABK, KC_RABK) {
- send_unicode_string("≥"); }
+ } else if (leader_sequence_three_keys(KC_M, KC_U, KC_L)) {
+ tap_code16(US_MUL); // ×
+ } else if (leader_sequence_three_keys(KC_D, KC_I, KC_V)) {
+ tap_code16(US_DIV); // ÷
+ } else if (leader_sequence_two_keys(KC_P, KC_M)) {
+ send_unicode_string("±");
+ } else if (leader_sequence_three_keys(KC_I, KC_N, KC_E)) {
+ send_unicode_string("≠");
+ } else if (leader_sequence_three_keys(KC_A, KC_L, KC_M)) {
+ send_unicode_string("≈");
+ } else if (leader_sequence_three_keys(KC_S, KC_Q, KC_U)) {
+ send_unicode_string("√");
+ } else if (leader_sequence_three_keys(KC_I, KC_N, KC_F)) {
+ send_unicode_string("∞");
+ } else if (leader_sequence_two_keys(KC_LABK, KC_LABK)) {
+ send_unicode_string("≤");
+ } else if (leader_sequence_two_keys(KC_RABK, KC_RABK)) {
+ send_unicode_string("≥");
/* Greek */
- SEQ_TWO_KEYS(KC_P, KC_I) {
- send_unicode_string("π"); }
- SEQ_THREE_KEYS(KC_P, KC_I, KC_I) {
- send_unicode_string("Π"); }
-
- SEQ_THREE_KEYS(KC_O, KC_M, KC_E) {
- send_unicode_string("ω"); }
- SEQ_FOUR_KEYS(KC_O, KC_M, KC_E, KC_G) {
- send_unicode_string("Ω"); }
+ } else if (leader_sequence_three_keys(KC_B, KC_E, KC_T)) {
+ tap_code16(US_SS); // ß
+ } else if (leader_sequence_three_keys(KC_M, KC_I, KC_C)) {
+ tap_code16(US_MICR); // µ
+ } else if (leader_sequence_two_keys(KC_P, KC_I)) {
+ send_unicode_string("π");
+ } else if (leader_sequence_three_keys(KC_P, KC_I, KC_I)) {
+ send_unicode_string("Π");
+
+ } else if (leader_sequence_three_keys(KC_O, KC_M, KC_E)) {
+ send_unicode_string("ω");
+ } else if (leader_sequence_four_keys(KC_O, KC_M, KC_E, KC_G)) {
+ send_unicode_string("Ω");
/* Icons */
- SEQ_THREE_KEYS(KC_F, KC_L, KC_A) {
- send_unicode_string("⚡"); }
- SEQ_THREE_KEYS(KC_S, KC_T, KC_A) {
- send_unicode_string("⭐"); }
- SEQ_THREE_KEYS(KC_S, KC_P, KC_A) {
- send_unicode_string("✨"); }
- SEQ_THREE_KEYS(KC_P, KC_O, KC_P) {
- send_unicode_string("🎉"); }
- SEQ_THREE_KEYS(KC_R, KC_E, KC_C) {
- send_unicode_string("♻️"); }
- SEQ_THREE_KEYS(KC_L, KC_O, KC_V) {
- send_unicode_string("❤️"); }
- SEQ_THREE_KEYS(KC_F, KC_I, KC_R) {
- send_unicode_string("🔥"); }
- SEQ_THREE_KEYS(KC_B, KC_O, KC_M) {
- send_unicode_string("💣"); }
- SEQ_FOUR_KEYS(KC_B, KC_O, KC_U, KC_M) {
- send_unicode_string("💥"); }
- SEQ_THREE_KEYS(KC_R, KC_O, KC_C) {
- send_unicode_string("🚀"); }
- SEQ_THREE_KEYS(KC_T, KC_E, KC_L) {
- send_unicode_string("🔭"); }
- SEQ_THREE_KEYS(KC_M, KC_A, KC_G) {
- send_unicode_string("🔎"); }
- SEQ_THREE_KEYS(KC_W, KC_A, KC_R) {
- send_unicode_string("⚠️"); }
-
- SEQ_THREE_KEYS(KC_B, KC_U, KC_L) {
- send_unicode_string("💡"); }
- SEQ_FOUR_KEYS(KC_I, KC_N, KC_F, KC_O) {
- send_unicode_string("ℹ️"); }
- SEQ_THREE_KEYS(KC_G, KC_E, KC_A) {
- send_unicode_string("⚙️"); }
- SEQ_THREE_KEYS(KC_L, KC_I, KC_N) {
- send_unicode_string("🔗"); }
- SEQ_THREE_KEYS(KC_P, KC_I, KC_N) {
- send_unicode_string("📌"); }
- SEQ_FOUR_KEYS(KC_F, KC_L, KC_A, KC_G) {
- send_unicode_string("🚩"); }
- SEQ_THREE_KEYS(KC_B, KC_A, KC_L) {
- send_unicode_string("🎈"); }
- SEQ_THREE_KEYS(KC_G, KC_I, KC_F) {
- send_unicode_string("🎁"); }
-
- SEQ_THREE_KEYS(KC_P, KC_E, KC_N) {
- send_unicode_string("✏️"); }
- SEQ_THREE_KEYS(KC_K, KC_E, KC_Y) {
- send_unicode_string("🔑"); }
- SEQ_THREE_KEYS(KC_B, KC_O, KC_X) {
- send_unicode_string("🧰"); }
-
- SEQ_TWO_KEYS(KC_O, KC_K) {
- send_unicode_string("👌"); }
- SEQ_THREE_KEYS(KC_O, KC_W, KC_D) {
- send_unicode_string("⛔"); }
-
- SEQ_ONE_KEY(KC_V) {
- send_unicode_string("✓"); }
- SEQ_TWO_KEYS(KC_V, KC_B) {
- send_unicode_string("☑"); }
- SEQ_TWO_KEYS(KC_V, KC_G) {
- send_unicode_string("✅"); }
-
- SEQ_ONE_KEY(KC_X) {
- send_unicode_string("✗"); }
- SEQ_TWO_KEYS(KC_X, KC_B) {
- send_unicode_string("☒"); }
- SEQ_TWO_KEYS(KC_X, KC_G) {
- send_unicode_string("❎"); }
- SEQ_TWO_KEYS(KC_X, KC_R) {
- send_unicode_string("❌"); }
-
- SEQ_ONE_KEY(KC_QUESTION) {
- send_unicode_string("❔"); }
- SEQ_ONE_KEY(KC_EXCLAIM) {
- send_unicode_string("❕"); }
- SEQ_TWO_KEYS(KC_QUESTION, KC_QUESTION) {
- send_unicode_string("❓"); }
- SEQ_TWO_KEYS(KC_EXCLAIM, KC_EXCLAIM) {
- send_unicode_string("❗"); }
-
- SEQ_THREE_KEYS(KC_C, KC_O, KC_F) {
- send_unicode_string("☕"); }
- SEQ_THREE_KEYS(KC_U, KC_M, KC_B) {
- send_unicode_string("☔"); }
-
- SEQ_THREE_KEYS(KC_L, KC_O, KC_L) {
- send_unicode_string("😀"); }
- SEQ_THREE_KEYS(KC_M, KC_D, KC_R) {
- send_unicode_string("🤣"); }
- SEQ_THREE_KEYS(KC_K, KC_I, KC_S) {
- send_unicode_string("😙"); }
- SEQ_THREE_KEYS(KC_A, KC_N, KC_G) {
- send_unicode_string("😇"); }
- SEQ_THREE_KEYS(KC_G, KC_L, KC_A) {
- send_unicode_string("😎"); }
- SEQ_THREE_KEYS(KC_A, KC_N, KC_G) {
- send_unicode_string("🤬"); }
- SEQ_THREE_KEYS(KC_F, KC_E, KC_A) {
- send_unicode_string("😱"); }
- SEQ_THREE_KEYS(KC_N, KC_E, KC_U) {
- send_unicode_string("😐"); }
- SEQ_THREE_KEYS(KC_T, KC_H, KC_I) {
- send_unicode_string("🤔"); }
- SEQ_THREE_KEYS(KC_Z, KC_I, KC_P) {
- send_unicode_string("🤐"); }
- SEQ_THREE_KEYS(KC_S, KC_U, KC_R) {
- send_unicode_string("😯"); }
- SEQ_THREE_KEYS(KC_R, KC_O, KC_L) {
- send_unicode_string("🙄"); }
- SEQ_THREE_KEYS(KC_M, KC_O, KC_O) {
- send_unicode_string("🌝"); }
- SEQ_THREE_KEYS(KC_H, KC_U, KC_G) {
- send_unicode_string("🫂"); }
-
- SEQ_THREE_KEYS(KC_H, KC_E, KC_N) {
- send_unicode_string("🐔"); }
- SEQ_THREE_KEYS(KC_R, KC_O, KC_O) {
- send_unicode_string("🐓"); }
- SEQ_THREE_KEYS(KC_D, KC_U, KC_C) {
- send_unicode_string("🦆"); }
- SEQ_THREE_KEYS(KC_P, KC_E, KC_A) {
- send_unicode_string("🦚"); }
- SEQ_THREE_KEYS(KC_B, KC_I, KC_R) {
- send_unicode_string("🐦"); }
+ } else if (leader_sequence_three_keys(KC_L, KC_O, KC_V)) {
+ send_unicode_string("♥");
+ } else if (leader_sequence_three_keys(KC_F, KC_L, KC_A)) {
+ send_unicode_string("⚡");
+ } else if (leader_sequence_three_keys(KC_S, KC_T, KC_A)) {
+ send_unicode_string("✶");
+ } else if (leader_sequence_three_keys(KC_B, KC_U, KC_L)) {
+ send_unicode_string("💡");
+ } else if (leader_sequence_four_keys(KC_I, KC_N, KC_F, KC_O)) {
+ send_unicode_string("ℹ️");
+ } else if (leader_sequence_three_keys(KC_G, KC_E, KC_A)) {
+ send_unicode_string("⚙️");
+
+ } else if (leader_sequence_one_key(KC_V)) {
+ send_unicode_string("✓");
+ } else if (leader_sequence_two_keys(KC_V, KC_B)) {
+ send_unicode_string("✔");
+ } else if (leader_sequence_two_keys(KC_V, KC_V)) {
+ send_unicode_string("✅");
+
+ } else if (leader_sequence_one_key(KC_X)) {
+ send_unicode_string("✗");
+ } else if (leader_sequence_two_keys(KC_X, KC_B)) {
+ send_unicode_string("✘");
+
+ } else if (leader_sequence_one_key(KC_QUESTION)) {
+ send_unicode_string("❔");
+ } else if (leader_sequence_one_key(KC_EXCLAIM)) {
+ send_unicode_string("❗");
+ } else if (leader_sequence_two_keys(KC_QUESTION, KC_QUESTION)) {
+ send_unicode_string("❓");
+ } else if (leader_sequence_two_keys(KC_EXCLAIM, KC_EXCLAIM)) {
+ send_unicode_string("❕");
/* Subscript / superscript */
- SEQ_THREE_KEYS(KC_U, KC_P, KC_F) {
- send_unicode_string("⁰"); }
- SEQ_THREE_KEYS(KC_D, KC_N, KC_F) {
- send_unicode_string("₀"); }
- SEQ_THREE_KEYS(KC_U, KC_P, KC_C) {
- send_unicode_string("¹"); }
- SEQ_THREE_KEYS(KC_D, KC_N, KC_C) {
- send_unicode_string("₁"); }
- SEQ_THREE_KEYS(KC_U, KC_P, KC_G) {
- send_unicode_string("²"); }
- SEQ_THREE_KEYS(KC_D, KC_N, KC_G) {
- send_unicode_string("₂"); }
- SEQ_THREE_KEYS(KC_U, KC_P, KC_H) {
- send_unicode_string("³"); }
- SEQ_THREE_KEYS(KC_D, KC_N, KC_H) {
- send_unicode_string("₃"); }
- SEQ_THREE_KEYS(KC_U, KC_P, KC_T) {
- send_unicode_string("⁴"); }
- SEQ_THREE_KEYS(KC_D, KC_N, KC_T) {
- send_unicode_string("₄"); }
- SEQ_THREE_KEYS(KC_U, KC_P, KC_S) {
- send_unicode_string("⁵"); }
- SEQ_THREE_KEYS(KC_D, KC_N, KC_S) {
- send_unicode_string("₅"); }
- SEQ_THREE_KEYS(KC_U, KC_P, KC_R) {
- send_unicode_string("⁶"); }
- SEQ_THREE_KEYS(KC_D, KC_N, KC_R) {
- send_unicode_string("₆"); }
- SEQ_THREE_KEYS(KC_U, KC_P, KC_P) {
- send_unicode_string("⁷"); }
- SEQ_THREE_KEYS(KC_D, KC_N, KC_P) {
- send_unicode_string("₇"); }
- SEQ_THREE_KEYS(KC_U, KC_P, KC_D) {
- send_unicode_string("⁸"); }
- SEQ_THREE_KEYS(KC_D, KC_N, KC_D) {
- send_unicode_string("₈"); }
- SEQ_THREE_KEYS(KC_U, KC_P, KC_L) {
- send_unicode_string("⁹"); }
- SEQ_THREE_KEYS(KC_D, KC_N, KC_L) {
- send_unicode_string("₉"); }
-
+ } else if (leader_sequence_three_keys(KC_U, KC_P, KC_N)) {
+ send_unicode_string("⁰");
+ } else if (leader_sequence_three_keys(KC_D, KC_N, KC_N)) {
+ send_unicode_string("₀");
+ } else if (leader_sequence_three_keys(KC_U, KC_P, KC_C)) {
+ tap_code16(US_SUP1); // ¹
+ } else if (leader_sequence_three_keys(KC_D, KC_N, KC_C)) {
+ send_unicode_string("₁");
+ } else if (leader_sequence_three_keys(KC_U, KC_P, KC_G)) {
+ tap_code16(US_SUP2); // ²
+ } else if (leader_sequence_three_keys(KC_D, KC_N, KC_G)) {
+ send_unicode_string("₂");
+ } else if (leader_sequence_three_keys(KC_U, KC_P, KC_H)) {
+ tap_code16(US_SUP3); // ³
+ } else if (leader_sequence_three_keys(KC_D, KC_N, KC_H)) {
+ send_unicode_string("₃");
+ } else if (leader_sequence_three_keys(KC_U, KC_P, KC_T)) {
+ send_unicode_string("⁴");
+ } else if (leader_sequence_three_keys(KC_D, KC_N, KC_T)) {
+ send_unicode_string("₄");
+ } else if (leader_sequence_three_keys(KC_U, KC_P, KC_S)) {
+ send_unicode_string("⁵");
+ } else if (leader_sequence_three_keys(KC_D, KC_N, KC_S)) {
+ send_unicode_string("₅");
+ } else if (leader_sequence_three_keys(KC_U, KC_P, KC_R)) {
+ send_unicode_string("⁶");
+ } else if (leader_sequence_three_keys(KC_D, KC_N, KC_R)) {
+ send_unicode_string("₆");
+ } else if (leader_sequence_three_keys(KC_U, KC_P, KC_P)) {
+ send_unicode_string("⁷");
+ } else if (leader_sequence_three_keys(KC_D, KC_N, KC_P)) {
+ send_unicode_string("₇");
+ } else if (leader_sequence_three_keys(KC_U, KC_P, KC_D)) {
+ send_unicode_string("⁸");
+ } else if (leader_sequence_three_keys(KC_D, KC_N, KC_D)) {
+ send_unicode_string("₈");
+ } else if (leader_sequence_three_keys(KC_U, KC_P, KC_L)) {
+ send_unicode_string("⁹");
+ } else if (leader_sequence_three_keys(KC_D, KC_N, KC_L)) {
+ send_unicode_string("₉");
};
}