summary refs log tree commit diff
diff options
context:
space:
mode:
authorFLinguenheld <90783310+FLinguenheld@users.noreply.github.com>2023-02-10 10:07:39 +0100
committerGitHub <noreply@github.com>2023-02-10 01:07:39 -0800
commit3b987f4a9d224e2ef5765b306ad25afbb28ce7a2 (patch)
treed60f32e9f025f3f5940c236d18b1046dc858ba09
parentbc3c6f0831939198e5e97e91bb5ff33c2ba444ae (diff)
[Keyboard] Flinguenheld (#19661)
-rw-r--r--keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/config.h75
-rw-r--r--keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/auto_shift.c199
-rw-r--r--keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/combo.c275
-rw-r--r--keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/leader.c268
-rw-r--r--keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/keycodes.h44
-rw-r--r--keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/keymap.c133
-rw-r--r--keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/oled/glcdfont.c232
-rw-r--r--keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/oled/oled.c457
-rw-r--r--keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/readme.md130
-rw-r--r--keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/rules.mk22
10 files changed, 1835 insertions, 0 deletions
diff --git a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/config.h b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/config.h
new file mode 100644
index 0000000000..c147d5e67f
--- /dev/null
+++ b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/config.h
@@ -0,0 +1,75 @@
+/* Copyright 2023 Florent Linguenheld (@FLinguenheld)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+/* 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.
+
+/* OLED */
+#undef OLED_FONT_H
+#define OLED_FONT_H "./oled/glcdfont.c"
+
+#define  OLED_TIMEOUT 25000
+#define OLED_BRIGHTNESS 60 // 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
+
+/* Unicode */
+// #define UNICODE_SELECTED_MODES UC_LNX
+#define UNICODE_SELECTED_MODES UNICODE_MODE_LINUX
+
+/* leader */
+#define LEADER_PER_KEY_TIMING
+#define LEADER_TIMEOUT 280
+#define LEADER_NO_TIMEOUT
+
+/* Mouse */
+#define MK_3_SPEED
+#define MK_MOMENTARY_ACCEL
+
+#define MK_C_OFFSET_0 1
+#define MK_C_INTERVAL_0 12
+
+#define MK_C_OFFSET_1 4
+#define MK_C_INTERVAL_1 18
+
+#define MK_C_OFFSET_UNMOD 13
+#define MK_C_INTERVAL_UNMOD 15
+
+#define MK_C_OFFSET_2 25
+#define MK_C_INTERVAL_2 10
+
+
+#define MK_W_OFFSET_0 1
+#define MK_W_INTERVAL_0 160
+
+#define MK_W_OFFSET_1 2
+#define MK_W_INTERVAL_1 120
+
+#define MK_W_OFFSET_UNMOD 4
+#define MK_W_INTERVAL_UNMOD 70
+
+#define MK_W_OFFSET_2 10
+#define MK_W_INTERVAL_2 30
diff --git a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/auto_shift.c b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/auto_shift.c
new file mode 100644
index 0000000000..d6bd3818b4
--- /dev/null
+++ b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/auto_shift.c
@@ -0,0 +1,199 @@
+// Copyright 2023 Florent Linguenheld (@FLinguenheld)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+#include "keycodes.h"
+
+/* 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:
+
+        // --
+        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) {
+
+        case KC_BSPC:
+        case KC_LABK:  // Easy indent with vim
+        case KC_RABK:
+
+        /* French */
+        case CS_E_ACUTE:
+
+        case CS_A_GRAVE:
+        case CS_E_GRAVE:
+        case CS_I_GRAVE:
+        case CS_O_GRAVE:
+        case CS_U_GRAVE:
+
+        case CS_A_CIRCUMFLEX:
+        case CS_E_CIRCUMFLEX:
+        case CS_I_CIRCUMFLEX:
+        case CS_O_CIRCUMFLEX:
+        case CS_U_CIRCUMFLEX:
+
+        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_C_CEDILLA:
+        case CS_AE:
+        case CS_OE:
+
+            return true;
+
+        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);
+    }
+}
+
+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
new file mode 100644
index 0000000000..e5b897dc62
--- /dev/null
+++ b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/combo.c
@@ -0,0 +1,275 @@
+// Copyright 2023 Florent Linguenheld (@FLinguenheld)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+#include "keycodes.h"
+
+/* How to :
+        - Add an entry in the enum
+        - Create a new sequence of keys
+        - Link the enum to this sequence in the key_combos table
+
+   For macros :
+        - Same steps
+        - And add the macro in the process_combo_event() function
+*/
+
+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,
+
+    /* 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_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_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_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_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};
+
+/* 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};
+
+
+/* Sequences fo keys */
+combo_t key_combos[] = {
+    [LEADER] = COMBO(combo_leader,                          KC_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),
+
+    /* 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),
+
+    /* -- */
+    [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),
+
+    /* One hand special */
+    [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),
+};
diff --git a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/leader.c b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/leader.c
new file mode 100644
index 0000000000..7cfd30af6d
--- /dev/null
+++ b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/leader.c
@@ -0,0 +1,268 @@
+// Copyright 2023 Florent Linguenheld (@FLinguenheld)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+LEADER_EXTERNS();
+
+void matrix_scan_user(void) {
+  LEADER_DICTIONARY() {
+    leading = false;
+    leader_end();
+
+    // SEQ_ONE_KEY(KC_F) {
+      // // Anything you can do in a macro.
+      // SEND_STRING("QMK is awesome."); }
+
+
+    SEQ_TWO_KEYS(KC_M, KC_S) {
+      SEND_STRING("f@linguenheld.fr"); }
+    SEQ_TWO_KEYS(KC_M, KC_L) {
+      SEND_STRING("florent@linguenheld.fr"); }
+    SEQ_TWO_KEYS(KC_F, KC_L) {
+      SEND_STRING("FLinguenheld"); }
+
+    SEQ_THREE_KEYS(KC_T, KC_E, KC_S) {
+      SEND_STRING("test01234"); }
+    SEQ_THREE_KEYS(KC_A, KC_D, KC_M) {
+      SEND_STRING("admin01234"); }
+
+    SEQ_ONE_KEY(KC_C) {
+      SEND_STRING(" | xclip -r -selection clipboard"); }
+
+    /* Degree */
+    SEQ_THREE_KEYS(KC_D, KC_E, KC_G) {
+      send_unicode_string("°"); }
+
+    /* 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("Ø"); }
+
+    /* 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("¢"); }
+
+    /* 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("¾"); }
+
+    /* 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("≥"); }
+
+    /* 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("Ω"); }
+
+    /* 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("🐦"); }
+
+    /* 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("₉"); }
+
+  };
+}
diff --git a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/keycodes.h b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/keycodes.h
new file mode 100644
index 0000000000..b90b28fda4
--- /dev/null
+++ b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/keycodes.h
@@ -0,0 +1,44 @@
+// Copyright 2023 Florent Linguenheld (@FLinguenheld)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+enum layers {
+    _BASE,
+    _NUMERIC,
+    _ARROWS,
+    _MOUSE,
+    _ADJUST,
+    _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,
+};
diff --git a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/keymap.c b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/keymap.c
new file mode 100644
index 0000000000..50fb7909f3
--- /dev/null
+++ b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/keymap.c
@@ -0,0 +1,133 @@
+/* Copyright 2023 Florent Linguenheld (@FLinguenheld)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include QMK_KEYBOARD_H
+#include "keycodes.h"
+
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+
+    /* Macros */
+    switch (keycode) {
+
+        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;
+    }
+
+    return true;
+}
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+    [_BASE] = LAYOUT(
+    //|---------------+---------------+---------------+---------------+---------------|       |---------------+---------------+---------------+---------------+---------------|
+        GUI_T(KC_ESC) ,     KC_B      ,     KC_O      ,     KC_W      ,     KC_BSPC   ,             KC_J      ,      KC_P     ,      KC_D     ,      KC_L     ,      KC_F     ,
+    //|---------------+---------------+---------------+---------------+---------------|       |---------------+---------------+---------------+---------------+---------------|
+            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     ,
+    //|---------------+---------------+---------------+---------------+---------------|       |---------------+---------------+---------------+---------------+---------------|
+    //                               |-------------------------+-------------------------| |-------------------------+-------------------------|
+                                          LT(_MOUSE, KC_COMM)  ,        KC_LCPO          ,    LT(_NUMERIC, KC_ENT)   ,  LT(_ARROWS, KC_DOT)
+    //                               |-------------------------+----/* Space ctl */------| |-------------------------+-------------------------|
+    ),
+
+    [_NUMERIC] = LAYOUT(
+    //|---------------+---------------+---------------+---------------+---------------|       |---------------+---------------+---------------+---------------+---------------|
+           _______    ,    XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,    _______    ,            XXXXXXX    ,     KC_7      ,     KC_8      ,     KC_9      ,    KC_DOT     ,
+    //|---------------+---------------+---------------+---------------+---------------|       |---------------+---------------+---------------+---------------+---------------|
+           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        ,         UNICODE         ,          XXXXXXX          ,       XXXXXXX
+    //                               |-------------------------+-------------------------| |-------------------------+-------------------------|
+    ),
+
+    [_MOUSE] = LAYOUT(
+    //|---------------+---------------+---------------+---------------+---------------|       |---------------+---------------+---------------+---------------+---------------|
+        KC_MS_WH_LEFT ,  KC_MS_WH_UP  , KC_MS_WH_DOWN , KC_MS_WH_RIGHT,    _______    ,            XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,
+    //|---------------+---------------+---------------+---------------+---------------|       |---------------+---------------+---------------+---------------+---------------|
+          KC_MS_LEFT  ,   KC_MS_UP    ,  KC_MS_DOWN   ,  KC_MS_RIGHT  ,    _______    ,            XXXXXXX    ,  KC_MS_ACCEL0 ,  KC_MS_ACCEL1 ,  KC_MS_ACCEL2 ,    XXXXXXX    ,
+    //|---------------+---------------+---------------+---------------+---------------|       |---------------+---------------+---------------+---------------+---------------|
+          KC_MS_BTN1  ,    XXXXXXX    ,  KC_MS_BTN3   ,  KC_MS_BTN2   ,    XXXXXXX    ,            XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,
+    //|---------------+---------------+---------------+---------------+---------------|       |---------------+---------------+---------------+---------------+---------------|
+    //                               |-------------------------+-------------------------| |-------------------------+-------------------------|
+                                                XXXXXXX        ,        _______          ,         KC_MS_BTN1        ,       KC_MS_BTN2
+    //                               |-------------------------+-------------------------| |-------------------------+-------------------------|
+    ),
+
+    [_ARROWS] = LAYOUT(
+    //|---------------+---------------+---------------+---------------+---------------|       |---------------+---------------+---------------+---------------+---------------|
+           _______    ,    XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,    _______    ,            XXXXXXX    ,    KC_HOME    ,  KC_PAGE_DOWN ,   KC_PAGE_UP  ,     KC_END    ,
+    //|---------------+---------------+---------------+---------------+---------------|       |---------------+---------------+---------------+---------------+---------------|
+           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
+    //                               |-------------------------+-------------------------| |-------------------------+-------------------------|
+    ),
+
+    [_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  ,
+    //|---------------+---------------+---------------+---------------+------------------|       |---------------+---------------+---------------+---------------+-----------------|
+    //                                  |-------------------------+-------------------------| |-------------------------+-------------------------|
+                                                   XXXXXXX        ,        _______          ,           XXXXXXX         ,       XXXXXXX
+    //                                  |-------------------------+-------------------------| |-------------------------+-------------------------|
+    ),
+
+    [_FN] = LAYOUT(
+    //|---------------+---------------+---------------+---------------+---------------|       |---------------+---------------+---------------+---------------+---------------|
+           _______    ,    XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,    _______    ,            XXXXXXX    ,     KC_F7     ,     KC_F8     ,     KC_F9     ,     KC_F10    ,
+    //|---------------+---------------+---------------+---------------+---------------|       |---------------+---------------+---------------+---------------+---------------|
+           XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,    _______    ,            XXXXXXX    ,     KC_F4     ,     KC_F5     ,     KC_F6     ,     KC_F11    ,
+    //|---------------+---------------+---------------+---------------+---------------|       |---------------+---------------+---------------+---------------+---------------|
+           _______    ,    XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,            XXXXXXX    ,     KC_F1     ,     KC_F2     ,     KC_F3     ,     KC_F12    ,
+    //|---------------+---------------+---------------+---------------+---------------|       |---------------+---------------+---------------+---------------+---------------|
+    //                               |-------------------------+-------------------------| |-------------------------+-------------------------|
+                                                XXXXXXX        ,        _______          ,           XXXXXXX         ,       XXXXXXX
+    //                               |-------------------------+-------------------------| |-------------------------+-------------------------|
+    ),
+
+    [_LEFT_HAND] = LAYOUT(
+    //|---------------+---------------+---------------+---------------+---------------|       |---------------+---------------+---------------+---------------+---------------|
+           _______    ,    XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,    _______    ,            XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,
+    //|---------------+---------------+---------------+---------------+---------------|       |---------------+---------------+---------------+---------------+---------------|
+           XXXXXXX    ,    C(KC_X)    ,    C(KC_C)    ,    C(KC_V)    ,    _______    ,            XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,
+    //|---------------+---------------+---------------+---------------+---------------|       |---------------+---------------+---------------+---------------+---------------|
+           _______    ,    XXXXXXX    ,    XXXXXXX    ,    C(KC_Z)    ,    XXXXXXX    ,            XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,    XXXXXXX    ,
+    //|---------------+---------------+---------------+---------------+---------------|       |---------------+---------------+---------------+---------------+---------------|
+    //                               |-------------------------+-------------------------| |-------------------------+-------------------------|
+                                                XXXXXXX        ,        _______          ,           XXXXXXX         ,       XXXXXXX
+    //                               |-------------------------+-------------------------| |-------------------------+-------------------------|
+    ),
+};
diff --git a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/oled/glcdfont.c b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/oled/glcdfont.c
new file mode 100644
index 0000000000..ad4448993f
--- /dev/null
+++ b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/oled/glcdfont.c
@@ -0,0 +1,232 @@
+// Copyright 2023 Florent Linguenheld (@FLinguenheld)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "progmem.h"
+
+/* 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,
+};
diff --git a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/oled/oled.c b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/oled/oled.c
new file mode 100644
index 0000000000..5b177acc7c
--- /dev/null
+++ b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/oled/oled.c
@@ -0,0 +1,457 @@
+// Copyright 2023 Florent Linguenheld (@FLinguenheld)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+#include "keycodes.h"
+
+/* Leader state */
+static bool is_leader_active = false;
+void leader_start(void) {
+    is_leader_active = true;
+}
+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;
+    }
+
+    /* 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));
+    }
+
+    /* 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);
+        }
+    }
+};
+
+bool oled_task_user(void) {
+    oled_display();
+    return false;
+}
diff --git a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/readme.md b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/readme.md
new file mode 100644
index 0000000000..3873ca45cf
--- /dev/null
+++ b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/readme.md
@@ -0,0 +1,130 @@
+### Custom aurora sweep keymap
+
+
+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 :
+- 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.  
+
+![oledmodifiers](https://i.imgur.com/on95jx0.png)
+![oledmouse](https://i.imgur.com/PwkR6P2.png)
+
+#### Install
+
+Clone this repo in the folder :
+
+    ~/qmk_firmware/keyboards/splitkb/aurora/sweep/keymaps/
+
+#### Compile and flash
+
+Navigate into the keymap folder and launch this command for both sides :
+
+    qmk compile && qmk flash
+
+and :
+
+    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.
+
+#### Links
+
+[qmk](https://docs.qmk.fm/#/)  
+[ferris sweep](https://github.com/davidphilipbarr/Sweep)  
+[splitkb](https://splitkb.com)  
+
+#### Layouts
+
+![base](https://i.imgur.com/E3hRkxW.png)  
+![numeric](https://i.imgur.com/GeC0reE.png)  
+![mouse](https://i.imgur.com/QhsWVrE.png)  
+![arrows](https://i.imgur.com/4sAfGAt.png)  
+![adjust](https://i.imgur.com/hcoN2P8.png)  
+![fn](https://i.imgur.com/dVunqFF.png)  
+![left hand](https://i.imgur.com/fk5YJj6.png)  
+![combo](https://i.imgur.com/aZ8TpuY.png)  
+![combo2](https://i.imgur.com/QayRuFA.png)  
+![combo3](https://i.imgur.com/YpnbMeh.png)  
+
+#### 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        |   ❌                   |
+|   ?                |   ❔                   |
+|   !                |   ❕                   |
+|   ? + ?            |   ❓                   |
+|   ! + !            |   ❗                   |
diff --git a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/rules.mk b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/rules.mk
new file mode 100644
index 0000000000..d854cbb16b
--- /dev/null
+++ b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/rules.mk
@@ -0,0 +1,22 @@
+LTO_ENABLE = yes
+CONVERT_TO = elite_pi
+
+SRC += features/auto_shift.c
+SRC += features/combo.c
+SRC += features/leader.c
+SRC += oled/oled.c
+
+OLED_ENABLE = yes
+OLED_DRIVER = SSD1306
+
+MOUSEKEY_ENABLE = yes
+AUTO_SHIFT_ENABLE = yes
+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