diff options
11 files changed, 1505 insertions, 1473 deletions
| diff --git a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/.clang-format b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/.clang-format new file mode 100644 index 0000000000..f87f20d8b6 --- /dev/null +++ b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/.clang-format @@ -0,0 +1 @@ +ColumnLimit: 110 diff --git a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/config.h b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/config.h index c147d5e67f..f14e2b17e1 100644 --- a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/config.h +++ b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/config.h @@ -18,23 +18,21 @@  /* Flash */  #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET              // Activates the double-tap behavior -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U // Timeout window in ms in which the double tap can occur. +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U // In ms in which the double tap can occur  /* OLED */  #undef OLED_FONT_H  #define OLED_FONT_H "./oled/glcdfont.c" -#define  OLED_TIMEOUT 25000 -#define OLED_BRIGHTNESS 60 // Protect my eyesss +#define OLED_TIMEOUT 25000 +#define OLED_BRIGHTNESS 50 // Protect my eyesss  #define SPLIT_LAYER_STATE_ENABLE  #define SPLIT_MODS_ENABLE  #define SPLIT_OLED_ENABLE  /* Auto shift ♥ */  #define AUTO_SHIFT_TIMEOUT 115 - -/* Redefine CTRL + space (See space cadet shift) */ -#define LCPO_KEYS KC_LCTL, KC_TRNS, KC_SPC +#define TAPPING_TERM 155  /* Unicode */  // #define UNICODE_SELECTED_MODES UC_LNX @@ -61,7 +59,6 @@  #define MK_C_OFFSET_2 25  #define MK_C_INTERVAL_2 10 -  #define MK_W_OFFSET_0 1  #define MK_W_INTERVAL_0 160 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("[email protected]"); } -    SEQ_TWO_KEYS(KC_M, KC_L) { -      SEND_STRING("[email protected]"); } -    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("[email protected]"); +  } else if (leader_sequence_two_keys(KC_M, KC_L)) { +    SEND_STRING("[email protected]"); +  } 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("₉");    };  } diff --git a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/keycodes.h b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/keycodes.h index b90b28fda4..4439f958b7 100644 --- a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/keycodes.h +++ b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/keycodes.h @@ -2,43 +2,34 @@  // SPDX-License-Identifier: GPL-2.0-or-later  #pragma once - -enum layers { -    _BASE, -    _NUMERIC, -    _ARROWS, -    _MOUSE, -    _ADJUST, -    _FN, -    _LEFT_HAND, +#include "keymap_us_extended.h" + +enum custom_layers { +  _BASE, +  _NUMERIC, +  _ARROWS, +  _MOUSE, +  _ADJ, +  _FN, +  _LEFT_HAND,  };  enum custom_keys { -    UNICODE = SAFE_RANGE, // Shortcut to write unicodes, see numeric layer - -    /* See auto-shift */ -    CS_E_ACUTE, - -    CS_A_GRAVE, -    CS_E_GRAVE, -    CS_I_GRAVE, -    CS_O_GRAVE, -    CS_U_GRAVE, - -    CS_C_CEDILLA, -    CS_AE, -    CS_OE, - -    CS_A_CIRCUMFLEX, -    CS_E_CIRCUMFLEX, -    CS_I_CIRCUMFLEX, -    CS_O_CIRCUMFLEX, -    CS_U_CIRCUMFLEX, - -    CS_A_DIAERESIS, -    CS_E_DIAERESIS, -    CS_I_DIAERESIS, -    CS_O_DIAERESIS, -    CS_U_DIAERESIS, -    CS_Y_DIAERESIS, +  UNICODE = QK_KB_0, // Replace SAFE_RANGE, see pr #19909 + +  /* See auto-shift */ +  CS_A_GRAVE, +  CS_E_GRAVE, +  CS_U_GRAVE, + +  CS_A_CIRCUMFLEX, +  CS_E_CIRCUMFLEX, +  CS_I_CIRCUMFLEX, +  CS_O_CIRCUMFLEX, +  CS_U_CIRCUMFLEX, + +  CS_E_DIAERESIS, +  CS_I_DIAERESIS, +  CS_U_DIAERESIS, +  CS_Y_DIAERESIS,  }; diff --git a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/keymap.c b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/keymap.c index 50fb7909f3..f024859e7c 100644 --- a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/keymap.c +++ b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/keymap.c @@ -17,7 +17,7 @@  #include QMK_KEYBOARD_H  #include "keycodes.h" - +// clang-format off  bool process_record_user(uint16_t keycode, keyrecord_t *record) {      /* Macros */ @@ -25,14 +25,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {          case UNICODE:              if (record->event.pressed) { -                register_code(KC_LCTL); -                register_code(KC_LSFT); -                tap_code16(KC_U); -            } else { -                unregister_code(KC_LCTL); -                unregister_code(KC_LSFT); -            } -            break; +                tap_code16(C(S(KC_U))); +            } break;      }      return true; @@ -46,11 +40,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {      //|---------------+---------------+---------------+---------------+---------------|       |---------------+---------------+---------------+---------------+---------------|              KC_A      ,     KC_I      ,     KC_E      ,     KC_U      ,     KC_TAB    ,             KC_V      ,      KC_T     ,      KC_S     ,      KC_R     ,      KC_N     ,      //|---------------+---------------+---------------+---------------+---------------|       |---------------+---------------+---------------+---------------+---------------| -           KC_LALT    ,     KC_X      ,     KC_Q      ,     KC_Y      ,      KC_K     ,             KC_Z      ,      KC_C     ,      KC_G     ,      KC_H     ,      KC_M     , +           US_EACU    ,     KC_X      ,     KC_Q      ,     KC_Y      ,      KC_K     ,             KC_Z      ,      KC_C     ,      KC_G     ,      KC_H     ,      KC_M     ,      //|---------------+---------------+---------------+---------------+---------------|       |---------------+---------------+---------------+---------------+---------------|      //                               |-------------------------+-------------------------| |-------------------------+-------------------------| -                                          LT(_MOUSE, KC_COMM)  ,        KC_LCPO          ,    LT(_NUMERIC, KC_ENT)   ,  LT(_ARROWS, KC_DOT) -    //                               |-------------------------+----/* Space ctl */------| |-------------------------+-------------------------| +                                          LT(_MOUSE, KC_COMM)  ,     CTL_T(KC_SPACE)     ,    LT(_NUMERIC, KC_ENT)   ,  LT(_ARROWS, KC_DOT) +    //                               |-------------------------+-------------------------| |-------------------------+-------------------------|      ),      [_NUMERIC] = LAYOUT( @@ -59,7 +53,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {      //|---------------+---------------+---------------+---------------+---------------|       |---------------+---------------+---------------+---------------+---------------|             XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,    _______    ,            XXXXXXX    ,     KC_4      ,     KC_5      ,     KC_6      ,     KC_0      ,      //|---------------+---------------+---------------+---------------+---------------|       |---------------+---------------+---------------+---------------+---------------| -           _______    ,    XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,            XXXXXXX    ,     KC_1      ,     KC_2      ,     KC_3      ,    KC_COMM    , +           XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,            XXXXXXX    ,     KC_1      ,     KC_2      ,     KC_3      ,    KC_COMM    ,      //|---------------+---------------+---------------+---------------+---------------|       |---------------+---------------+---------------+---------------+---------------|      //                               |-------------------------+-------------------------| |-------------------------+-------------------------|                                                  XXXXXXX        ,         UNICODE         ,          XXXXXXX          ,       XXXXXXX @@ -85,21 +79,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {      //|---------------+---------------+---------------+---------------+---------------|       |---------------+---------------+---------------+---------------+---------------|             XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,    _______    ,            XXXXXXX    ,    KC_LEFT    ,    KC_DOWN    ,     KC_UP     ,    KC_RIGHT   ,      //|---------------+---------------+---------------+---------------+---------------|       |---------------+---------------+---------------+---------------+---------------| -           _______    ,    XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,            XXXXXXX    ,    XXXXXXX    ,    C(KC_D)    ,    C(KC_U)    ,    XXXXXXX    , +           XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,            XXXXXXX    ,    XXXXXXX    ,    C(KC_D)    ,    C(KC_U)    ,    XXXXXXX    ,      //|---------------+---------------+---------------+---------------+---------------|       |---------------+---------------+---------------+---------------+---------------|      //                               |-------------------------+-------------------------| |-------------------------+-------------------------|                                                  XXXXXXX        ,        _______          ,           XXXXXXX         ,       XXXXXXX      //                               |-------------------------+-------------------------| |-------------------------+-------------------------|      ), -    [_ADJUST] = LAYOUT( -    //|---------------+---------------+---------------+---------------+------------------|       |---------------+---------------+---------------+---------------+-----------------| -           XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,  KC_PRINT_SCREEN ,            XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    , KC_AUDIO_VOL_UP , -    //|---------------+---------------+---------------+---------------+------------------|       |---------------+---------------+---------------+---------------+-----------------| -           XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,S(KC_PRINT_SCREEN),            XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,KC_AUDIO_VOL_DOWN, -    //|---------------+---------------+---------------+---------------+------------------|       |---------------+---------------+---------------+---------------+-----------------| -           XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,     XXXXXXX      ,            XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,  KC_AUDIO_MUTE  , -    //|---------------+---------------+---------------+---------------+------------------|       |---------------+---------------+---------------+---------------+-----------------| +    [_ADJ] = LAYOUT( +    //|---------------+---------------+---------------+---------------+------------------|       |---------------+---------------+---------------+-----------------+----------| +           XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,  KC_PRINT_SCREEN ,            XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    , KC_AUDIO_VOL_UP ,  XXXXXXX , +    //|---------------+---------------+---------------+---------------+------------------|       |---------------+---------------+---------------+-----------------+----------| +           XXXXXXX    ,  G(C(S(KC_G))),    XXXXXXX    ,    XXXXXXX    ,S(KC_PRINT_SCREEN),            XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,KC_AUDIO_VOL_DOWN,  XXXXXXX , +    //|---------------+---------------+---------------+---------------+------------------|       |---------------+---------------+---------------+-----------------+----------| +           XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,     XXXXXXX      ,            XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,  KC_AUDIO_MUTE  ,  XXXXXXX , +    //|---------------+---------------+---------------+---------------+------------------|       |---------------+---------------+---------------+-----------------+----------|      //                                  |-------------------------+-------------------------| |-------------------------+-------------------------|                                                     XXXXXXX        ,        _______          ,           XXXXXXX         ,       XXXXXXX      //                                  |-------------------------+-------------------------| |-------------------------+-------------------------| @@ -122,12 +116,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {      //|---------------+---------------+---------------+---------------+---------------|       |---------------+---------------+---------------+---------------+---------------|             _______    ,    XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,    _______    ,            XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,      //|---------------+---------------+---------------+---------------+---------------|       |---------------+---------------+---------------+---------------+---------------| -           XXXXXXX    ,    C(KC_X)    ,    C(KC_C)    ,    C(KC_V)    ,    _______    ,            XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    , +           XXXXXXX    ,    KC_CUT     ,    KC_COPY    ,    KC_PASTE   ,    _______    ,            XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,      //|---------------+---------------+---------------+---------------+---------------|       |---------------+---------------+---------------+---------------+---------------| -           _______    ,    XXXXXXX    ,    XXXXXXX    ,    C(KC_Z)    ,    XXXXXXX    ,            XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    , +           XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,    C(KC_Z)    ,    XXXXXXX    ,            XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,      //|---------------+---------------+---------------+---------------+---------------|       |---------------+---------------+---------------+---------------+---------------|      //                               |-------------------------+-------------------------| |-------------------------+-------------------------| -                                                XXXXXXX        ,        _______          ,           XXXXXXX         ,       XXXXXXX +                                                XXXXXXX        ,       KC_ENTER          ,           XXXXXXX         ,       XXXXXXX      //                               |-------------------------+-------------------------| |-------------------------+-------------------------|      ),  }; diff --git a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/oled/glcdfont.c b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/oled/glcdfont.c index ad4448993f..8ca414fdd0 100644 --- a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/oled/glcdfont.c +++ b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/oled/glcdfont.c @@ -5,228 +5,84 @@  /* Online editor: https://joric.github.io/qle/ */  static const unsigned char PROGMEM font[] = { -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0xFC, 0xFE, 0x0E, 0x06, 0xE6, 0xE6, -    0xE6, 0xE6, 0xE6, 0xFE, 0xFE, 0xE6, -    0xE6, 0xE6, 0x06, 0x06, 0xE6, 0xE6, -    0xE6, 0xFE, 0xFE, 0x06, 0x06, 0xFE, -    0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFC, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x3F, 0x7F, 0x70, 0x60, 0x67, 0x67, -    0x67, 0x67, 0x67, 0x7F, 0x7F, 0x7F, -    0x7F, 0x7F, 0x60, 0x60, 0x7F, 0x7F, -    0x7F, 0x7F, 0x7F, 0x60, 0x60, 0x67, -    0x67, 0x67, 0x67, 0x67, 0x7F, 0x3F, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0xFC, 0xFE, 0x0E, 0x06, 0xE6, 0xE6, -    0xE6, 0xE6, 0x06, 0x0E, 0xFE, 0xFE, -    0x06, 0x06, 0xFE, 0xFE, 0xFE, 0xFE, -    0xFE, 0xFE, 0xE6, 0xE6, 0xE6, 0x06, -    0x06, 0xE6, 0xE6, 0xE6, 0xFE, 0xFC, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0xFC, 0xFE, 0x0E, 0x06, 0x66, 0x66, -    0x66, 0x66, 0xE6, 0xFE, 0xFE, 0x06, -    0x06, 0x66, 0x66, 0x66, 0xE6, 0xE6, -    0xFE, 0xFE, 0xE6, 0xE6, 0xE6, 0x06, -    0x06, 0xE6, 0xE6, 0xE6, 0xFE, 0xFC, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x3F, 0x7F, 0x60, 0x60, 0x7C, 0x7C, -    0x7C, 0x7C, 0x60, 0x60, 0x7F, 0x7F, -    0x60, 0x60, 0x67, 0x67, 0x67, 0x67, -    0x67, 0x7F, 0x7F, 0x7F, 0x7F, 0x60, -    0x60, 0x7F, 0x7F, 0x7F, 0x7F, 0x3F, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x3F, 0x7F, 0x67, 0x66, 0x66, 0x66, -    0x66, 0x60, 0x70, 0x7F, 0x7F, 0x60, -    0x60, 0x7E, 0x7E, 0x7E, 0x7F, 0x7F, -    0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x60, -    0x60, 0x7F, 0x7F, 0x7F, 0x7F, 0x3F, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0xFC, 0xFE, 0x0E, 0x06, 0xE6, 0xE6, -    0xE6, 0x06, 0x0E, 0xFE, 0xFE, 0x0E, -    0x06, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, -    0xFE, 0xFE, 0x06, 0x06, 0x66, 0x66, -    0x66, 0x66, 0x06, 0x0E, 0xFE, 0xFC, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0xFC, 0xFE, 0x0E, 0x06, 0xE6, 0xE6, -    0xE6, 0xE6, 0xE6, 0xFE, 0xFE, 0x06, -    0x06, 0xCE, 0x9E, 0x9E, 0xCE, 0x06, -    0x06, 0xFE, 0xFE, 0x06, 0x06, 0xE6, -    0xE6, 0xE6, 0x0E, 0x1E, 0xFE, 0xFC, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x3F, 0x7F, 0x60, 0x60, 0x7C, 0x7C, -    0x7C, 0x60, 0x60, 0x7F, 0x7F, 0x70, -    0x60, 0x67, 0x67, 0x64, 0x60, 0x70, -    0x7F, 0x7F, 0x60, 0x60, 0x7E, 0x7E, -    0x78, 0x70, 0x62, 0x67, 0x7F, 0x3F, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x3F, 0x7F, 0x70, 0x60, 0x67, 0x67, -    0x67, 0x67, 0x67, 0x7F, 0x7F, 0x60, -    0x60, 0x7F, 0x7F, 0x7F, 0x7F, 0x60, -    0x60, 0x7F, 0x7F, 0x60, 0x60, 0x67, -    0x67, 0x67, 0x70, 0x78, 0x7F, 0x3F, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFE, 0x0E, 0x06, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xFE, 0xFE, +    0xE6, 0xE6, 0xE6, 0x06, 0x06, 0xE6, 0xE6, 0xE6, 0xFE, 0xFE, 0x06, 0x06, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, +    0xFE, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x7F, 0x70, 0x60, 0x67, 0x67, +    0x67, 0x67, 0x67, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x60, 0x60, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x60, 0x60, +    0x67, 0x67, 0x67, 0x67, 0x67, 0x7F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, +    0xFE, 0x0E, 0x06, 0xE6, 0xE6, 0xE6, 0xE6, 0x06, 0x0E, 0xFE, 0xFE, 0x06, 0x06, 0xFE, 0xFE, 0xFE, 0xFE, +    0xFE, 0xFE, 0xE6, 0xE6, 0xE6, 0x06, 0x06, 0xE6, 0xE6, 0xE6, 0xFE, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFE, 0x0E, 0x06, 0x66, 0x66, 0x66, 0x66, 0xE6, +    0xFE, 0xFE, 0x06, 0x06, 0x66, 0x66, 0x66, 0xE6, 0xE6, 0xFE, 0xFE, 0xE6, 0xE6, 0xE6, 0x06, 0x06, 0xE6, +    0xE6, 0xE6, 0xFE, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x3F, 0x7F, 0x60, 0x60, 0x7C, 0x7C, 0x7C, 0x7C, 0x60, 0x60, 0x7F, 0x7F, 0x60, +    0x60, 0x67, 0x67, 0x67, 0x67, 0x67, 0x7F, 0x7F, 0x7F, 0x7F, 0x60, 0x60, 0x7F, 0x7F, 0x7F, 0x7F, 0x3F, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x7F, 0x67, 0x66, +    0x66, 0x66, 0x66, 0x60, 0x70, 0x7F, 0x7F, 0x60, 0x60, 0x7E, 0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, +    0x7F, 0x7F, 0x60, 0x60, 0x7F, 0x7F, 0x7F, 0x7F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFE, 0x0E, 0x06, 0xE6, 0xE6, 0xE6, 0x06, +    0x0E, 0xFE, 0xFE, 0x0E, 0x06, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xFE, 0xFE, 0x06, 0x06, 0x66, 0x66, 0x66, +    0x66, 0x06, 0x0E, 0xFE, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0xFC, 0xFE, 0x0E, 0x06, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xFE, 0xFE, 0x06, 0x06, 0xCE, 0x9E, 0x9E, +    0xCE, 0x06, 0x06, 0xFE, 0xFE, 0x06, 0x06, 0xE6, 0xE6, 0xE6, 0x0E, 0x1E, 0xFE, 0xFC, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x7F, 0x60, +    0x60, 0x7C, 0x7C, 0x7C, 0x60, 0x60, 0x7F, 0x7F, 0x70, 0x60, 0x67, 0x67, 0x64, 0x60, 0x70, 0x7F, 0x7F, +    0x60, 0x60, 0x7E, 0x7E, 0x78, 0x70, 0x62, 0x67, 0x7F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x7F, 0x70, 0x60, 0x67, 0x67, 0x67, 0x67, 0x67, 0x7F, 0x7F, +    0x60, 0x60, 0x7F, 0x7F, 0x7F, 0x7F, 0x60, 0x60, 0x7F, 0x7F, 0x60, 0x60, 0x67, 0x67, 0x67, 0x70, 0x78, +    0x7F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, +    0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00,  }; diff --git a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/oled/oled.c b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/oled/oled.c index 5b177acc7c..2d00ef4e3a 100644 --- a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/oled/oled.c +++ b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/oled/oled.c @@ -4,454 +4,463 @@  #include QMK_KEYBOARD_H  #include "keycodes.h" -/* Leader state */ -static bool is_leader_active = false; -void leader_start(void) { -    is_leader_active = true; +/* Blank space to place modifiers */ +void add_blank(void) { + +  oled_write_char(0x10, false); +  oled_write_char(0x11, false); +  oled_write_char(0x12, false); +  oled_write_char(0x13, false); +  oled_write_char(0x14, false); + +  oled_write_char(0x30, false); +  oled_write_char(0x31, false); +  oled_write_char(0x32, false); +  oled_write_char(0x33, false); +  oled_write_char(0x34, false);  } -void leader_end(void) { -    is_leader_active = false; -} -  void oled_display(void) { -    /* Layers */ -    switch (get_highest_layer(layer_state)) { - -        case _BASE: ; -            if (is_keyboard_master()) { -                static const char PROGMEM qmk_logo_master[] = { -                    // 'raven', 32x128px -                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, -                    0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x8f, 0x5f, 0x31, 0x79, 0x33, 0x7f, -                    0x3b, 0x71, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                    0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x4c, 0x02, 0x01, 0x95, 0xff, 0xb5, 0x05, 0x02, 0x4c, 0x30, -                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x01, 0x01, 0x01, 0x7e, 0x40, 0x00, 0x00, -                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xe0, -                    0xf0, 0xf8, 0xfc, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0xfc, 0x7c, 0x7c, 0xf8, 0xf0, 0xe0, 0x80, 0x00, -                    0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe, 0xcf, 0xef, 0xe7, 0xf3, 0xfb, 0xf9, -                    0xfd, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0x7f, 0x3f, 0x0f, 0x0e, 0x1a, 0x23, 0x43, 0x3f, 0x03, 0x00, -                    0x00, 0x0c, 0x1e, 0x1f, 0x3f, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x80, 0x40, 0xe0, 0xbf, 0x33, -                    0x30, 0x60, 0x20, 0x21, 0xff, 0x20, 0x60, 0x20, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, -                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0xf8, -                    0xfc, 0xfc, 0x7c, 0x00, 0x00, 0x00, 0x7c, 0xfc, 0xfc, 0xf8, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, -                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x04, 0x08, 0x08, 0x30, -                    0x20, 0x30, 0x20, 0x32, 0x20, 0x32, 0x20, 0x30, 0x20, 0x1c, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, -                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -                }; -                oled_write_raw_P(qmk_logo_master, sizeof(qmk_logo_master)); - -            } else { -                static const char PROGMEM qmk_logo_slave[] = { -                    // 'birds', 32x128px -                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                    0x00, 0x40, 0xc0, 0xe0, 0xd0, 0x88, 0x84, 0x04, 0x04, 0xc4, 0xc4, 0x08, 0x08, 0x10, 0x60, 0x80, -                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                    0x00, 0x00, 0xf8, 0x46, 0x81, 0x02, 0x02, 0x06, 0x04, 0x04, 0x04, 0x74, 0x84, 0x06, 0x03, 0x81, -                    0x42, 0x24, 0x18, 0x10, 0xa0, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                    0x00, 0x00, 0x01, 0x06, 0x08, 0x11, 0x12, 0x24, 0x24, 0x48, 0xc8, 0x48, 0x48, 0xc9, 0x49, 0x4a, -                    0x4a, 0x26, 0x25, 0x25, 0x14, 0x14, 0x14, 0x1d, 0x15, 0x2e, 0x54, 0x60, 0x40, 0x00, 0x00, 0x00, -                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x05, 0x02, 0x03, 0x02, 0x00, -                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                    0x80, 0x40, 0x20, 0x10, 0x08, 0x08, 0x08, 0x08, 0x88, 0xc8, 0x08, 0x30, 0xc0, 0xc0, 0x80, 0x00, -                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x18, 0x04, 0x03, -                    0x00, 0x00, 0x00, 0x80, 0x80, 0x70, 0x18, 0x00, 0x00, 0x00, 0x80, 0x70, 0x0f, 0x00, 0x00, 0x00, -                    0x00, 0x00, 0x70, 0x50, 0x48, 0x48, 0x24, 0x24, 0x12, 0x0a, 0x05, 0x09, 0x13, 0x12, 0x22, 0x22, -                    0xe1, 0x21, 0x21, 0x20, 0xe0, 0x20, 0x20, 0x10, 0x08, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, -                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                    0x04, 0x07, 0x04, 0x00, 0x04, 0x07, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -                }; -                oled_write_raw_P(qmk_logo_slave, sizeof(qmk_logo_slave)); -            } -            break; - -        case _NUMERIC: ; -            static const char PROGMEM qmk_numeric[] = { -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x01, 0x03, 0x07, 0x0f, 0x1e, -                0x3c, 0x78, 0xf0, 0xe0, 0xc0, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x87, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x01, 0x03, 0x87, 0x87, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0f, 0x0f, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, -                0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0f, 0x0f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x0e, 0x1c, 0x38, 0x70, 0xe0, -                0xe0, 0x70, 0x38, 0x1c, 0x0e, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, -                0xc7, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x3f, 0x3f, 0x38, 0x38, 0x38, 0x38, 0x38, -                0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0xfc, 0x00, 0x1c, 0x1c, 0x1c, 0x1c, -                0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0xfc, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x06, 0x06, 0x06, 0x06, -                0x06, 0x06, 0x0e, 0x1e, 0x3e, 0x77, 0xe7, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x70, 0x70, 0x70, 0xf0, 0xf0, -                0xf0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0xff, 0xff, -                0xff, 0xff, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, -                0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, -                0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0f, 0x0f, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, -                0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -            }; - -            oled_write_raw_P(qmk_numeric, sizeof(qmk_numeric)); -            break; - -        case _MOUSE: ; -            static const char PROGMEM qmk_mouse[] = { -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x3e, 0x3c, 0x78, 0xf0, 0xe0, 0xc0, -                0xc0, 0xe0, 0xf0, 0x78, 0x3c, 0x3e, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, -                0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x81, 0xc1, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, -                0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc1, 0x81, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -                0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, -                0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc1, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -                0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xc1, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x3f, 0x7f, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, -                0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x7f, 0x3f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, -                0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x7f, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, -                0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, -                0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x81, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, -                0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, -                0xc1, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, -                0xc1, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -                0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -            }; - -            oled_write_raw_P(qmk_mouse, sizeof(qmk_mouse)); -            break; - -        case _ARROWS: ; -            static const char PROGMEM qmk_arrows[] = { -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, -                0xfc, 0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x3e, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0xff, 0xff, -                0xff, 0xff, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3e, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, -                0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, -                0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0x7c, 0x3c, 0x1c, 0x0c, -                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x0c, 0x1e, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xde, 0x9e, 0x1e, 0x1e, 0x1e, -                0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x0f, 0x0e, 0x0c, -                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, -                0x30, 0x70, 0xf0, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, -                0x78, 0x78, 0x78, 0x79, 0x7b, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0x78, 0x30, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, -                0x30, 0x38, 0x3c, 0x3e, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, -                0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, -                0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x7c, 0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0xff, 0xff, -                0xff, 0xff, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0x7c, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f, -                0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -            }; - -            oled_write_raw_P(qmk_arrows, sizeof(qmk_arrows)); -            break; - -        case _ADJUST: ; -            static const char PROGMEM qmk_adjust[] = { -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x38, 0x38, 0x38, 0x38, 0x38, -                0x38, 0x38, 0x38, 0x38, 0x38, 0xf8, 0xf8, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x38, 0x38, 0x38, 0x38, 0x38, -                0x38, 0x38, 0x38, 0x38, 0x38, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x07, 0x07, 0x07, 0x07, -                0x07, 0x07, 0x07, 0x07, 0x0f, 0xfe, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, -                0xc0, 0xc0, 0xc0, 0xc0, 0xe0, 0xff, 0x7f, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0xe1, 0xe1, 0xe0, 0xe1, 0xe1, 0xe1, 0xe1, -                0xe1, 0xe1, 0xe1, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x3f, 0x3f, 0x38, -                0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, -                0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, -                0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, -                0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0xf0, 0xf0, -                0xf0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, -                0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, -                0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -            }; - -            oled_write_raw_P(qmk_adjust, sizeof(qmk_adjust)); -            break; - -        case _FN: ; -            static const char PROGMEM qmk_fn[] = { -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, -                0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, -                0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, -                0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -                0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xfe, 0xf8, 0xe0, 0x80, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x01, 0x07, 0x1f, 0x7f, 0xfe, -                0xf8, 0xe0, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, -                0x07, 0x1f, 0x7f, 0xfe, 0xf8, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x01, 0x07, 0x1f, 0x7f, 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -            }; - -            oled_write_raw_P(qmk_fn, sizeof(qmk_fn)); -            break; - -        case _LEFT_HAND: ; -            static const char PROGMEM qmk_left_hand[] = { -                // 'layers_left_hand', 32x128px -                0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0xff, 0xff, 0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0xe1, 0xf1, 0xf1, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0xff, 0xff, 0xff, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x0f, 0x1f, 0x1f, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0xff, 0xff, 0xff, 0x87, 0x87, 0x87, 0x87, 0x87, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0xff, 0xff, 0xff, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, -                0x71, 0x71, 0x71, 0x70, 0x70, 0xf0, 0xf0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x70, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xff, 0xff, 0xff, -                0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x7f, 0x7f, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0xf0, 0xf8, 0xfc, 0x3c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x3c, 0xfc, 0xf8, 0xf0, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0xff, 0xff, 0xff, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0xe3, 0xe3, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe3, 0xe3, 0xe3, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x0f, 0x1e, 0x3c, 0x78, 0xf0, 0xe0, 0xc0, 0xff, 0xff, 0xff, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x1f, 0x1f, 0x1f, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0f, 0x1e, 0xfc, 0xf8, 0xf0, -                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -                0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xf0, 0x78, 0x3f, 0x1f, 0x0f -            }; - -            oled_write_raw_P(qmk_left_hand, sizeof(qmk_left_hand)); -            break; +  /* Layers */ +  switch (get_highest_layer(layer_state)) { + +  case _BASE:; +    if (is_keyboard_master()) { +      static const char PROGMEM qmk_logo_master[] = { +          // 'raven', 32x128px +          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, +          0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x8f, 0x5f, 0x31, 0x79, 0x33, 0x7f, +          0x3b, 0x71, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +          0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x4c, 0x02, 0x01, 0x95, 0xff, 0xb5, 0x05, 0x02, 0x4c, 0x30, +          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x01, 0x01, 0x01, 0x7e, 0x40, 0x00, 0x00, +          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xe0, 0xf0, +          0xf8, 0xfc, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0xfc, 0x7c, 0x7c, 0xf8, 0xf0, 0xe0, 0x80, 0x00, 0x00, +          0x00, 0x00, 0x00, 0x80, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe, 0xcf, 0xef, 0xe7, 0xf3, 0xfb, 0xf9, 0xfd, +          0xfc, 0xfe, 0xff, 0xff, 0xff, 0x7f, 0x3f, 0x0f, 0x0e, 0x1a, 0x23, 0x43, 0x3f, 0x03, 0x00, 0x00, +          0x0c, 0x1e, 0x1f, 0x3f, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x80, 0x40, 0xe0, 0xbf, 0x33, 0x30, +          0x60, 0x20, 0x21, 0xff, 0x20, 0x60, 0x20, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, +          0xfc, 0x7c, 0x00, 0x00, 0x00, 0x7c, 0xfc, 0xfc, 0xf8, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, +          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x04, 0x08, 0x08, 0x30, 0x20, +          0x30, 0x20, 0x32, 0x20, 0x32, 0x20, 0x30, 0x20, 0x1c, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; +      oled_write_raw_P(qmk_logo_master, sizeof(qmk_logo_master)); + +    } else { +      static const char PROGMEM qmk_logo_slave[] = { +          // 'birds', 32x128px +          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +          0x00, 0x40, 0xc0, 0xe0, 0xd0, 0x88, 0x84, 0x04, 0x04, 0xc4, 0xc4, 0x08, 0x08, 0x10, 0x60, 0x80, +          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +          0x00, 0x00, 0xf8, 0x46, 0x81, 0x02, 0x02, 0x06, 0x04, 0x04, 0x04, 0x74, 0x84, 0x06, 0x03, 0x81, +          0x42, 0x24, 0x18, 0x10, 0xa0, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +          0x00, 0x00, 0x01, 0x06, 0x08, 0x11, 0x12, 0x24, 0x24, 0x48, 0xc8, 0x48, 0x48, 0xc9, 0x49, 0x4a, +          0x4a, 0x26, 0x25, 0x25, 0x14, 0x14, 0x14, 0x1d, 0x15, 0x2e, 0x54, 0x60, 0x40, 0x00, 0x00, 0x00, +          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x05, 0x02, 0x03, 0x02, 0x00, +          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +          0x80, 0x40, 0x20, 0x10, 0x08, 0x08, 0x08, 0x08, 0x88, 0xc8, 0x08, 0x30, 0xc0, 0xc0, 0x80, 0x00, +          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x18, 0x04, 0x03, +          0x00, 0x00, 0x00, 0x80, 0x80, 0x70, 0x18, 0x00, 0x00, 0x00, 0x80, 0x70, 0x0f, 0x00, 0x00, 0x00, +          0x00, 0x00, 0x70, 0x50, 0x48, 0x48, 0x24, 0x24, 0x12, 0x0a, 0x05, 0x09, 0x13, 0x12, 0x22, 0x22, +          0xe1, 0x21, 0x21, 0x20, 0xe0, 0x20, 0x20, 0x10, 0x08, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, +          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +          0x04, 0x07, 0x04, 0x00, 0x04, 0x07, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; +      oled_write_raw_P(qmk_logo_slave, sizeof(qmk_logo_slave)); +    } +    break; + +  case _NUMERIC:; +    static const char PROGMEM qmk_numeric[] = { +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x01, 0x03, 0x07, 0x0f, 0x1e, 0x3c, 0x78, 0xf0, +        0xe0, 0xc0, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x87, 0x87, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, +        0x87, 0x87, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +        0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x07, 0x0f, 0x0f, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0f, 0x0f, 0x07, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +        0xff, 0x0e, 0x1c, 0x38, 0x70, 0xe0, 0xe0, 0x70, 0x38, 0x1c, 0x0e, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xc7, 0xc7, 0xc7, +        0xc7, 0xc7, 0xc7, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x3f, 0x3f, 0x38, 0x38, 0x38, 0x38, 0x38, +        0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0xfc, 0x00, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, +        0x1c, 0x1c, 0x1c, 0xfc, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x0e, 0x1e, +        0x3e, 0x77, 0xe7, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x70, 0x70, 0x70, 0xf0, 0xf0, 0xf0, 0xf0, 0x70, 0x70, 0x70, 0x70, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0xff, 0xff, 0xff, 0xff, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, +        0xc0, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc0, 0xc0, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, +        0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0f, 0x0f, 0x0e, 0x0e, +        0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00}; + +    oled_write_raw_P(qmk_numeric, sizeof(qmk_numeric)); +    break; + +  case _MOUSE:; +    static const char PROGMEM qmk_mouse[] = { +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x3e, 0x3c, 0x78, 0xf0, 0xe0, 0xc0, 0xc0, 0xe0, 0xf0, +        0x78, 0x3c, 0x3e, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, +        0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x01, 0x81, 0xc1, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc1, +        0x81, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, +        0xff, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, +        0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc1, 0x01, 0x01, +        0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xc1, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x3f, 0x7f, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, +        0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x7f, 0x3f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, +        0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x3f, 0x7f, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, +        0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, +        0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x01, 0x81, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc0, +        0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +        0xff, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xc1, +        0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, +        0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00}; + +    oled_write_raw_P(qmk_mouse, sizeof(qmk_mouse)); +    break; + +  case _ARROWS:; +    static const char PROGMEM qmk_arrows[] = { +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfc, 0xf8, 0xf0, +        0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x7c, 0x3e, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0xff, 0xff, 0xff, 0xff, 0x01, 0x03, 0x07, +        0x0f, 0x1f, 0x3e, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, +        0xf0, 0xf8, 0x7c, 0x3c, 0x1c, 0x0c, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x1e, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xde, +        0x9e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x0f, +        0x0e, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, +        0x30, 0x70, 0xf0, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, +        0x78, 0x79, 0x7b, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0x78, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x30, 0x38, 0x3c, 0x3e, +        0x1f, 0x0f, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x7c, +        0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0xff, 0xff, 0xff, 0xff, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0x7c, 0x3e, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, +        0x03, 0x07, 0x0f, 0x1f, 0x3f, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00}; + +    oled_write_raw_P(qmk_arrows, sizeof(qmk_arrows)); +    break; + +  case _ADJ:; +    static const char PROGMEM qmk_ADJ[] = { +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, +        0x38, 0x38, 0x38, 0x38, 0xf8, 0xf8, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, +        0x38, 0x38, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0f, 0xfe, 0xfc, +        0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0xff, 0xff, 0xff, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xe0, 0xff, 0x7f, 0x3f, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0xe1, +        0xe1, 0xe0, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x3f, +        0x3f, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, +        0x87, 0x87, 0x87, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, +        0xc3, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0xe0, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xff, 0xff, 0x7f, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, +        0x70, 0x70, 0x70, 0x70, 0x70, 0xf0, 0xf0, 0xf0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00}; + +    oled_write_raw_P(qmk_ADJ, sizeof(qmk_ADJ)); +    break; + +  case _FN:; +    static const char PROGMEM qmk_fn[] = { +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, +        0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0xff, 0xff, 0xff, 0xff, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, +        0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +        0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +        0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xfe, 0xf8, 0xe0, 0x80, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x01, 0x07, 0x1f, 0x7f, 0xfe, 0xf8, 0xe0, 0x80, 0x00, +        0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x1f, 0x7f, 0xfe, 0xf8, 0xe0, +        0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, +        0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x1f, 0x7f, 0x7f, +        0x7f, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00}; + +    oled_write_raw_P(qmk_fn, sizeof(qmk_fn)); +    break; + +  case _LEFT_HAND:; +    static const char PROGMEM qmk_left_hand[] = { +        // 'layers_left_hand', 32x128px +        0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +        0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0xf1, 0xf1, 0x71, +        0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x38, 0x38, 0x38, +        0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x1f, 0x1f, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, +        0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x87, 0x87, 0x87, 0x87, 0x87, 0x07, 0x07, +        0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x80, 0x80, 0x80, 0x71, 0x71, 0x71, 0x70, 0x70, 0xf0, 0xf0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x70, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xff, 0xff, +        0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x7f, 0x7f, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0xf0, 0xf8, 0xfc, 0x3c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x3c, 0xfc, 0xf8, 0xf0, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, +        0xff, 0xff, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe3, 0xe3, 0xe3, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe3, 0xe3, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x0f, 0x1e, +        0x3c, 0x78, 0xf0, 0xe0, 0xc0, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x01, 0x03, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0f, +        0x1e, 0xfc, 0xf8, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xf0, 0x78, 0x3f, +        0x1f, 0x0f}; + +    oled_write_raw_P(qmk_left_hand, sizeof(qmk_left_hand)); +    break; +  } + +  /* Leader */ +  if (leader_sequence_active()) { + +    static const char PROGMEM qmk_leader[] = { +        0x00, 0x00, 0xf8, 0xf8, 0x78, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +        0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x38, 0x78, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, +        0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, +        0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0xc1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0xff, 0xff, 0xff, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x03, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +        0xff, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, +        0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, +        0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0x00, 0x0e, 0x0e, +        0x0e, 0x0e, 0x0e, 0xfe, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, +        0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x7f, 0x7f, 0x00, 0x70, 0x70, 0x70, 0x70, +        0x70, 0x7f, 0x3f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, +        0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, +        0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, +        0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc6, 0xc6, 0xc6, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, +        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, +        0x00, 0x00, 0x00, 0xc0, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xc1, 0x81, 0x00, 0x00, +        0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, +        0x00, 0xff, 0xff, 0xff, 0x38, 0x38, 0x38, 0x78, 0xf8, 0xf8, 0xbf, 0x1f, 0x0f, 0x00, 0x00, 0x00, 0x00, +        0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, +        0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, +        0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, +        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x07, 0x07, 0x07, 0x07, +        0x00, 0x00}; + +    oled_write_raw_P(qmk_leader, sizeof(qmk_leader)); +  } + +  /* Modifier keys */ +  if (get_mods()) { + +    if (get_mods() & MOD_MASK_GUI) { + +      oled_write_char(0x8B, false); +      oled_write_char(0x8C, false); +      oled_write_char(0x8D, false); +      oled_write_char(0x8E, false); +      oled_write_char(0x8F, false); + +      oled_write_char(0xAB, false); +      oled_write_char(0xAC, false); +      oled_write_char(0xAD, false); +      oled_write_char(0xAE, false); +      oled_write_char(0xAF, false); +    } else { +      add_blank(); +    } + +    if (get_mods() & MOD_MASK_CTRL) { + +      oled_write_char(0x01, false); +      oled_write_char(0x02, false); +      oled_write_char(0x03, false); +      oled_write_char(0x04, false); +      oled_write_char(0x05, false); + +      oled_write_char(0x21, false); +      oled_write_char(0x22, false); +      oled_write_char(0x23, false); +      oled_write_char(0x24, false); +      oled_write_char(0x25, false); +    } else { +      add_blank();      } -    /* Leader */ -    if (is_leader_active) { - -        static const char PROGMEM qmk_leader[] = { -            0x00, 0x00, 0xf8, 0xf8, 0x78, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, -            0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x38, 0x78, 0xf8, 0xf8, 0x00, 0x00, -            0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf8, 0xf8, 0x00, 0x00, 0x00, -            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, -            0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc0, 0xc0, 0xc0, -            0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, -            0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, -            0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, -            0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x18, 0x18, 0x18, -            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, -            0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x87, 0x87, 0x87, 0x87, 0x87, -            0x87, 0x87, 0x87, 0x87, 0x87, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, -            0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc3, 0xc3, 0xc3, -            0xc3, 0xc3, 0xc3, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, -            0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, -            0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, -            0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0x00, 0x0e, 0x0e, -            0x0e, 0x0e, 0x0e, 0xfe, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, -            0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x7f, 0x7f, 0x00, 0x70, 0x70, -            0x70, 0x70, 0x70, 0x7f, 0x3f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, -            0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x38, 0x38, 0x38, -            0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, -            0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc6, 0xc6, 0xc6, -            0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, -            0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, -            0xe1, 0xe1, 0xe1, 0xe1, 0xc1, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, -            0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x38, 0x38, 0x38, -            0x78, 0xf8, 0xf8, 0xbf, 0x1f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, -            0x00, 0x00, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, -            0x00, 0x00, 0x01, 0x03, 0x07, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, -            0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, -            0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00 -        }; - -        oled_write_raw_P(qmk_leader, sizeof(qmk_leader)); +    if (get_mods() & MOD_BIT(KC_LALT)) { + +      oled_write_char(0x41, false); +      oled_write_char(0x42, false); +      oled_write_char(0x43, false); +      oled_write_char(0x44, false); +      oled_write_char(0x45, false); + +      oled_write_char(0x61, false); +      oled_write_char(0x62, false); +      oled_write_char(0x63, false); +      oled_write_char(0x64, false); +      oled_write_char(0x65, false); +    } else { +      add_blank();      } -    /* Modifier keys */ -    if (get_mods()) { - -        if (get_mods() & MOD_MASK_CTRL) { - -            oled_write_char(0x01, false); -            oled_write_char(0x02, false); -            oled_write_char(0x03, false); -            oled_write_char(0x04, false); -            oled_write_char(0x05, false); - -            oled_write_char(0x21, false); -            oled_write_char(0x22, false); -            oled_write_char(0x23, false); -            oled_write_char(0x24, false); -            oled_write_char(0x25, false); -        } -        if (get_mods() & MOD_BIT(KC_LALT)) { - -            oled_write_char(0x41, false); -            oled_write_char(0x42, false); -            oled_write_char(0x43, false); -            oled_write_char(0x44, false); -            oled_write_char(0x45, false); - -            oled_write_char(0x61, false); -            oled_write_char(0x62, false); -            oled_write_char(0x63, false); -            oled_write_char(0x64, false); -            oled_write_char(0x65, false); -        } -        if (get_mods() & MOD_BIT(KC_RALT)) { - -            oled_write_char(0x81, false); -            oled_write_char(0x82, false); -            oled_write_char(0x83, false); -            oled_write_char(0x84, false); -            oled_write_char(0x85, false); - -            oled_write_char(0xA1, false); -            oled_write_char(0xA2, false); -            oled_write_char(0xA3, false); -            oled_write_char(0xA4, false); -            oled_write_char(0xA5, false); -        } -        if (get_mods() & MOD_MASK_SHIFT) { - -            oled_write_char(0x4B, false); -            oled_write_char(0x4C, false); -            oled_write_char(0x4D, false); -            oled_write_char(0x4E, false); -            oled_write_char(0x4F, false); - -            oled_write_char(0x6B, false); -            oled_write_char(0x6C, false); -            oled_write_char(0x6D, false); -            oled_write_char(0x6E, false); -            oled_write_char(0x6F, false); -        } -        if (get_mods() & MOD_MASK_GUI) { - -            oled_write_char(0x8B, false); -            oled_write_char(0x8C, false); -            oled_write_char(0x8D, false); -            oled_write_char(0x8E, false); -            oled_write_char(0x8F, false); - -            oled_write_char(0xAB, false); -            oled_write_char(0xAC, false); -            oled_write_char(0xAD, false); -            oled_write_char(0xAE, false); -            oled_write_char(0xAF, false); -        } +    if (get_mods() & MOD_MASK_SHIFT) { + +      oled_write_char(0x4B, false); +      oled_write_char(0x4C, false); +      oled_write_char(0x4D, false); +      oled_write_char(0x4E, false); +      oled_write_char(0x4F, false); + +      oled_write_char(0x6B, false); +      oled_write_char(0x6C, false); +      oled_write_char(0x6D, false); +      oled_write_char(0x6E, false); +      oled_write_char(0x6F, false); +    } else { +      add_blank();      } + +    if (get_mods() & MOD_BIT(KC_RALT)) { + +      oled_write_char(0x81, false); +      oled_write_char(0x82, false); +      oled_write_char(0x83, false); +      oled_write_char(0x84, false); +      oled_write_char(0x85, false); + +      oled_write_char(0xA1, false); +      oled_write_char(0xA2, false); +      oled_write_char(0xA3, false); +      oled_write_char(0xA4, false); +      oled_write_char(0xA5, false); +    } + +    // Add a line +    oled_write_char(0xC1, false); +    oled_write_char(0xC2, false); +    oled_write_char(0xC3, false); +    oled_write_char(0xC4, false); +    oled_write_char(0xC5, false); +  }  };  bool oled_task_user(void) { -    oled_display(); -    return false; +  oled_display(); +  return false;  } diff --git a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/readme.md b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/readme.md index 3873ca45cf..b70b3655da 100644 --- a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/readme.md +++ b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/readme.md @@ -1,16 +1,16 @@  ### Custom aurora sweep keymap +This keymap is inspired by [optimot](https://optimot.fr) which is a French layout.   +Nonetheless it uses the US international extended keymap for French keys. -This keymap is inspired by [optimot](https://bepo.fr/) which is a French layout.   -Nonetheless all French characters are sent in unicode, so it works with the standard US ANSI layout. +It uses the _best_ QMK features : -It uses the *best* qmk features : -- combos ♥ -- auto shift -- leader +-   combos ♥ +-   auto shift +-   leader  I tried to optimise key positions for neovim and i3wm while limit digrams.   -The oled screens are used to display the current layout, the modifier keys and the leader key.   +The oled screens are used to display the current layout, the modifier keys and the leader key.     @@ -27,104 +27,71 @@ Navigate into the keymap folder and launch this command for both sides :      qmk compile && qmk flash -and : +And : -    Click twice on the flash button and use nautilus for instance to clic on the keyboard.   +    Click twice on the flash button and use nautilus for instance to clic on the keyboard.      Don't forget to flash with the double tap bootloader define before soldering. +#### Layout + +Set the us altgr international to activate French keys : + +    /usr/share/X11/xkb/symbols/ +    localectl list-x11-keymap-variants us + +    setxkbmap us altgr-intl +  #### Links  [qmk](https://docs.qmk.fm/#/)    [ferris sweep](https://github.com/davidphilipbarr/Sweep)   -[splitkb](https://splitkb.com)   +[splitkb](https://splitkb.com)  #### Layouts -   -   -   -   -   -   -   -   -   -   - -#### French - -|        -         |                        | -|------------------|------------------------| -|   space + e      |   é                    | -|   space + i      |   ç                    | -|   space + a      |   æ                    | -|   space + o      |   œ                    | -|   comma + a      |   à                    | -|   comma + e      |   è                    | -|   comma + i      |   ì                    | -|   comma + o      |   ò                    | -|   comma + u      |   ù                    | -|   enter + a      |   â                    | -|   enter + e      |   ê                    | -|   enter + i      |   î                    | -|   enter + o      |   ô                    | -|   enter + u      |   û                    | -|   dot + a        |   ä                    | -|   dot + e        |   ë                    | -|   dot + i        |   ï                    | -|   dot + o        |   ö                    | -|   dot + u        |   ü                    | -|   dot + y        |   ÿ                    | +   +   +   +   +   +   + +  #### Leader -| -                  |                        | -|--------------------|------------------------| -|   M + S            |   mail short           | -|   M + L            |   mail long            | -|   D + E + G        |   °                    | -|   C + O + P        |   ©                    | -|   R + E + G        |   ®                    | -|   D + I + A        |   ø                    | -|   D + I + A + M    |   Ø                    | -|   E + U + R        |   €                    | -|   P + O + U        |   £                    | -|   Y + E + N        |   ¥                    | -|   C + E + N        |   ¢                    | -|   P + I            |   π                    | -|   P + I + I        |   Π                    | -|   O + M + E        |   ω                    | -|   O + M + E + G    |   Ω                    | -|   U + P + F        |   ⁰                    | -|   D + N + F        |   ₀                    | - -| -                  |                        | -|--------------------|------------------------| -|   M + U + L        |   ×                    | -|   D + I + V        |   ÷                    | -|   P + M            |   ±                    | -|   I + N + E        |   ≠                    | -|   A + L + M        |   ≈                    | -|   S + Q + U        |   √                    | -|   I + N + F        |   ∞                    | -|   < + <            |   ≤                    | -|   > + >            |   ≥                    | -|   F + S + T        |   ¼                    | -|   F + S + G        |   ½                    | -|   F + H + T        |   ¾                    | - -| -                  |                        | -|--------------------|------------------------| -|   F + L + A        |   ⚡                   | -|   S + P + A        |   ✨                   | -|   O + W + D        |   ⛔                   | -|   C + O + F        |   ☕                   | -|   U + M + B        |   ☔                   | -|   Y + E + S        |   ✅                   | -|   N + O            |   ❎                   | -|   C + R + O        |   ❌                   | -|   ?                |   ❔                   | -|   !                |   ❕                   | -|   ? + ?            |   ❓                   | -|   ! + !            |   ❗                   | +| -             |            | +| ------------- | ---------- | +| M + S         | mail short | +| M + L         | mail long  | +| D + E + G     | °          | +| C + O + P     | ©          | +| R + E + G     | ®          | +| D + I + A     | ø          | +| D + I + A + M | Ø          | +| E + U + R     | €          | +| P + O + U     | £          | +| Y + E + N     | ¥          | +| C + E + N     | ¢          | +| P + I         | π          | +| P + I + I     | Π          | +| O + M + E     | ω          | +| O + M + E + G | Ω          | +| U + P + F     | ⁰          | +| D + N + F     | ₀          | + +| -         |     | +| --------- | --- | +| M + U + L | ×   | +| D + I + V | ÷   | +| P + M     | ±   | +| I + N + E | ≠   | +| A + L + M | ≈   | +| S + Q + U | √   | +| I + N + F | ∞   | +| < + <     | ≤   | +| > + >     | ≥   | +| F + S + T | ¼   | +| F + S + G | ½   | +| F + H + T | ¾   | diff --git a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/rules.mk b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/rules.mk index d854cbb16b..b1c72a8aaf 100644 --- a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/rules.mk +++ b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/rules.mk @@ -2,7 +2,7 @@ LTO_ENABLE = yes  CONVERT_TO = elite_pi  SRC += features/auto_shift.c -SRC += features/combo.c +INTROSPECTION_KEYMAP_C = features/combo.c # Replace SRC, see issue #21137  SRC += features/leader.c  SRC += oled/oled.c @@ -15,8 +15,5 @@ AUTO_SHIFT_MODIFIERS = no  COMBO_ENABLE = yes  LEADER_ENABLE = yes -# Recommended for space cadet shift -COMMAND_ENABLE = no -  UNICODE_ENABLE = yes  SEND_STRING_ENABLE = yes | 
