~ruther/qmk_firmware

9d235d4fc5c34f372b0c393f41686b5ef4f8dc13 — Drashna Jaelre 3 years ago f775da9
[Core] Change OLED task function to be boolean (#14864)

* [Core] Add kb level callbacks to OLED driver

* Update keyboards and keymaps

* Update docs

* Update userspace configs

* Add fix for my keymap ...

* update lefty
272 files changed, 967 insertions(+), 599 deletions(-)

M docs/feature_oled_driver.md
M drivers/oled/oled_driver.h
M drivers/oled/ssd1306_sh1106.c
M keyboards/0xcb/1337/keymaps/conor/keymap.c
M keyboards/0xcb/1337/keymaps/default/keymap.c
M keyboards/0xcb/1337/keymaps/jakob/keymap.c
M keyboards/0xcb/1337/keymaps/via/keymap.c
M keyboards/0xcb/static/keymaps/bongocat/keymap.c
M keyboards/0xcb/static/keymaps/default/keymap.c
M keyboards/0xcb/static/keymaps/via/keymap.c
M keyboards/10bleoledhub/keymaps/default/keymap.c
M keyboards/10bleoledhub/keymaps/via/keymap.c
M keyboards/aeboards/ext65/keymaps/default/keymap.c
M keyboards/aeboards/ext65/keymaps/via/keymap.c
M keyboards/aeboards/ext65/rev2/rev2.c
M keyboards/aleblazer/zodiark/keymaps/default/keymap.c
M keyboards/aleblazer/zodiark/keymaps/slimoled/keymap.c
M keyboards/aleblazer/zodiark/keymaps/via/oled.c
M keyboards/anavi/macropad8/keymaps/default/keymap.c
M keyboards/anavi/macropad8/keymaps/git/keymap.c
M keyboards/anavi/macropad8/keymaps/kicad/keymap.c
M keyboards/anavi/macropad8/keymaps/kodi/keymap.c
M keyboards/anavi/macropad8/keymaps/obs/keymap.c
M keyboards/anavi/macropad8/keymaps/zoom/keymap.c
M keyboards/angel64/alpha/keymaps/default/keymap.c
M keyboards/angel64/rev1/keymaps/default/keymap.c
M keyboards/angel64/rev1/keymaps/kakunpc/keymap.c
M keyboards/aplyard/aplx6/rev2/keymaps/default/keymap.c
M keyboards/arabica37/keymaps/default/keymap.c
M keyboards/arch_36/keymaps/default/keymap.c
M keyboards/arch_36/keymaps/obosob/keymap.c
M keyboards/basekeys/slice/keymaps/default/keymap.c
M keyboards/basekeys/slice/keymaps/default_split_left_space/keymap.c
M keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/keymap.c
M keyboards/basekeys/slice/rev1_rgb/keymaps/via/keymap.c
M keyboards/boardsource/holiday/spooky/keymaps/rip_mx/keymap.c
M keyboards/boardsource/holiday/spooky/keymaps/rip_my_wallet/keymap.c
M keyboards/boardsource/microdox/keymaps/cole/keymap.c
M keyboards/boardsource/microdox/keymaps/via/keymap.c
M keyboards/boston_meetup/2019/2019.c
M keyboards/business_card/alpha/keymaps/default/keymap.c
M keyboards/business_card/beta/keymaps/default/keymap.c
M keyboards/cannonkeys/satisfaction75/satisfaction_oled.c
M keyboards/cassette42/keymaps/default/keymap.c
M keyboards/chidori/keymaps/oled_sample/keymap.c
M keyboards/ckeys/washington/keymaps/default/keymap.c
M keyboards/claw44/keymaps/oled/keymap.c
M keyboards/crkbd/keymaps/armand1m/keymap.c
M keyboards/crkbd/keymaps/blipson/keymap.c
M keyboards/crkbd/keymaps/default/keymap.c
M keyboards/crkbd/keymaps/devdev/keymap.c
M keyboards/crkbd/keymaps/dsanchezseco/keymap.c
M keyboards/crkbd/keymaps/edvorakjp/oled.c
M keyboards/crkbd/keymaps/gotham/oled.c
M keyboards/crkbd/keymaps/kidbrazil/keymap.c
M keyboards/crkbd/keymaps/mcrown/oled.c
M keyboards/crkbd/keymaps/oled_sample/keymap.c
M keyboards/crkbd/keymaps/oo/keymap.c
M keyboards/crkbd/keymaps/rarick/keymap.c
M keyboards/crkbd/keymaps/rjhilgefort/keymap.c
M keyboards/crkbd/keymaps/rpbaptist/keymap.c
M keyboards/crkbd/keymaps/soundmonster/keymap.c
M keyboards/crkbd/keymaps/sulrich/keymap.c
M keyboards/crkbd/keymaps/vayashiko/keymap.c
M keyboards/crkbd/keymaps/via/keymap.c
M keyboards/crkbd/keymaps/xyverz/keymap.c
M keyboards/dekunukem/duckypad/keymaps/default/keymap.c
M keyboards/dekunukem/duckypad/keymaps/m4cs/keymap.c
M keyboards/dekunukem/duckypad/keymaps/via/keymap.c
M keyboards/dmqdesign/spin/keymaps/gorbachev/keymap.c
M keyboards/doodboard/duckboard/keymaps/default/keymap.c
M keyboards/doodboard/duckboard_r2/keymaps/default/keymap.c
M keyboards/doodboard/duckboard_r2/keymaps/via/keymap.c
M keyboards/draculad/keymaps/default/keymap.c
M keyboards/draculad/keymaps/pimoroni/keymap.c
M keyboards/dumbo/keymaps/default/keymap.c
M keyboards/dumbo/keymaps/trip-trap/keymap.c
M keyboards/ein_60/ein_60.c
M keyboards/ein_60/keymaps/default/keymap.c
M keyboards/ein_60/keymaps/klackygears/keymap.c
M keyboards/ein_60/keymaps/ledtest/keymap.c
M keyboards/gergo/keymaps/oled/keymap.c
M keyboards/getta25/keymaps/oled/keymap.c
M keyboards/hadron/ver2/ver2.c
M keyboards/hadron/ver3/ver3.c
M keyboards/halfcliff/halfcliff.c
M keyboards/handwired/amigopunk/keymaps/default/keymap.c
M keyboards/handwired/d48/keymaps/anderson/keymap.c
M keyboards/handwired/d48/keymaps/default/keymap.c
M keyboards/handwired/dactyl_manuform/5x6_5/keymaps/333fred/keymap.c
M keyboards/handwired/marauder/keymaps/orvia/keymap.c
M keyboards/handwired/myskeeb/oled.c
M keyboards/handwired/obuwunkunubi/spaget/keymaps/default/keymap.c
M keyboards/handwired/onekey/keymaps/oled/keymap.c
M keyboards/handwired/owlet60/keymaps/oled_testing/keymap.c
M keyboards/handwired/pill60/keymaps/default/keymap.c
M keyboards/handwired/split65/split65.c
M keyboards/handwired/swiftrax/koalafications/keymaps/default/keymap.c
M keyboards/handwired/swiftrax/koalafications/keymaps/via/keymap.c
M keyboards/handwired/swiftrax/the_galleon/keymaps/default/keymap.c
M keyboards/handwired/swiftrax/the_galleon/keymaps/via/keymap.c
M keyboards/helix/rev2/keymaps/default/oled_display.c
M keyboards/helix/rev2/keymaps/edvorakjp/oled.c
M keyboards/helix/rev2/keymaps/five_rows/oled_display.c
M keyboards/helix/rev3_4rows/keymaps/default/oled_display.c
M keyboards/helix/rev3_4rows/keymaps/via/oled_display.c
M keyboards/helix/rev3_4rows/rev3_4rows.c
M keyboards/helix/rev3_5rows/keymaps/default/oled_display.c
M keyboards/helix/rev3_5rows/keymaps/five_rows/oled_display.c
M keyboards/helix/rev3_5rows/keymaps/via/oled_display.c
M keyboards/helix/rev3_5rows/rev3_5rows.c
M keyboards/jagdpietr/drakon/drakon.c
M keyboards/keybage/radpad/keymaps/default/keymap.c
M keyboards/keycapsss/kimiko/keymaps/default/keymap.c
M keyboards/keycapsss/plaid_pad/keymaps/default/keymap.c
M keyboards/keycapsss/plaid_pad/keymaps/oled/keymap.c
M keyboards/keycapsss/plaid_pad/keymaps/via/keymap.c
M keyboards/kikoslab/kl90/keymaps/default/keymap.c
M keyboards/kikoslab/kl90/keymaps/via/keymap.c
M keyboards/kingly_keys/romac/keymaps/boss566y/keymap.c
M keyboards/kingly_keys/romac_plus/keymaps/default/keymap.c
M keyboards/kiwikey/wanderland/keymaps/stanrc85/keymap.c
M keyboards/knobgoblin/keymaps/moults31/keymap.c
M keyboards/knobgoblin/knobgoblin.c
M keyboards/latinpad/keymaps/default/keymap.c
M keyboards/latinpad/keymaps/via/keymap.c
M keyboards/latinpadble/keymaps/default/keymap.c
M keyboards/latinpadble/keymaps/via/keymap.c
M keyboards/lck75/lck75.c
M keyboards/le_chiffre/keymaps/default/keymap.c
M keyboards/le_chiffre/keymaps/via/keymap.c
M keyboards/lefty/lefty.c
M keyboards/lily58/keymaps/barabas/keymap.c
M keyboards/lily58/keymaps/chuan/keymap.c
M keyboards/lily58/keymaps/cykedev/keymap.c
M keyboards/lily58/keymaps/datadavd/keymap.c
M keyboards/lily58/keymaps/default/keymap.c
M keyboards/lily58/keymaps/domnantas/keymap.c
M keyboards/lily58/keymaps/drasbeck/keymap.c
M keyboards/lily58/keymaps/lily58l/keymap.c
M keyboards/lily58/keymaps/mikefightsbears/keymap.c
M keyboards/lily58/keymaps/muuko/keymap.c
M keyboards/lily58/keymaps/narze/keymap.c
M keyboards/lily58/keymaps/via/keymap.c
M keyboards/lily58/keymaps/yshrsmz/keymap.c
M keyboards/lily58/keymaps/yuchi/keymap.c
M keyboards/lyra/lyra.c
M keyboards/marksard/rhymestone/keymaps/default/keymap.c
M keyboards/mechllama/g35/keymaps/default/keymap.c
M keyboards/mechwild/mercutio/keymaps/bongocat/keymap.c
M keyboards/mechwild/mercutio/keymaps/default/keymap.c
M keyboards/mechwild/mercutio/keymaps/fancy/keymap.c
M keyboards/mechwild/mercutio/keymaps/jonavin/keymap.c
M keyboards/mechwild/mercutio/keymaps/via/keymap.c
M keyboards/mechwild/murphpad/keymaps/default/keymap.c
M keyboards/mechwild/murphpad/keymaps/jonavin/keymap.c
M keyboards/mechwild/murphpad/keymaps/via/keymap.c
M keyboards/merge/um70/keymaps/default/keymap.c
M keyboards/merge/um70/keymaps/via/keymap.c
M keyboards/misonoworks/chocolatebar/chocolatebar.c
M keyboards/montsinger/rebound/rev3/keymaps/rossman360/keymap.c
M keyboards/montsinger/rebound/rev4/keymaps/rossman360/keymap.c
M keyboards/nullbitsco/nibble/keymaps/oled/keymap.c
M keyboards/nullbitsco/nibble/keymaps/oled_bongocat/keymap.c
M keyboards/nullbitsco/nibble/keymaps/oled_status/keymap.c
M keyboards/nullbitsco/nibble/keymaps/snailmap/keymap.c
M keyboards/nullbitsco/scramble/keymaps/oled/keymap.c
M keyboards/palette1202/keymaps/default/keymap.c
M keyboards/palette1202/keymaps/key-check/keymap.c
M keyboards/palette1202/palette1202.c
M keyboards/pistachio_pro/keymaps/default/keymap.c
M keyboards/pistachio_pro/keymaps/rate/keymap.c
M keyboards/pistachio_pro/keymaps/via/keymap.c
M keyboards/plut0nium/0x3e/keymaps/default/keymap.c
M keyboards/pteron36/keymaps/via/keymap.c
M keyboards/pteron36/pteron36.c
M keyboards/rainkeeb/keymaps/default/keymap.c
M keyboards/rainkeeb/keymaps/via/keymap.c
M keyboards/ramonimbao/herringbone/pro/keymaps/default/keymap.c
M keyboards/ramonimbao/herringbone/pro/keymaps/iso/keymap.c
M keyboards/ramonimbao/herringbone/pro/keymaps/via/keymap.c
M keyboards/rart/rart67m/rart67m.c
M keyboards/rart/rart75m/rart75m.c
M keyboards/rart/rartand/keymaps/default/keymap.c
M keyboards/rart/rartand/keymaps/via/keymap.c
M keyboards/rart/rartland/rartland.c
M keyboards/rart/rartlice/keymaps/default/keymap.c
M keyboards/rart/rartlice/keymaps/via/keymap.c
M keyboards/rgbkb/mun/keymaps/default/keymap.c
M keyboards/rgbkb/mun/keymaps/via/keymap.c
M keyboards/rgbkb/mun/keymaps/xulkal2/keymap.c
M keyboards/rgbkb/pan/keymaps/default/keymap.c
M keyboards/rgbkb/sol/keymaps/brianweyer/keymap.c
M keyboards/rgbkb/sol/keymaps/danielhklein/keymap.c
M keyboards/rgbkb/sol/keymaps/default/keymap.c
M keyboards/rgbkb/sol/keymaps/xyverz/keymap.c
M keyboards/rgbkb/zen/rev2/rev2.c
M keyboards/rgbkb/zygomorph/keymaps/default_oled/keymap.c
M keyboards/ristretto/ristretto.c
M keyboards/rocketboard_16/keymaps/default/keymap.c
M keyboards/rocketboard_16/keymaps/via/keymap.c
M keyboards/rubi/lib/oled.c
M keyboards/sawnsprojects/satxri6key/keymaps/via/keymap.c
M keyboards/sendyyeah/pix/keymaps/default/keymap.c
M keyboards/sendyyeah/pix/keymaps/via/keymap.c
M keyboards/setta21/keymaps/salicylic/keymap.c
M keyboards/sofle/keymaps/default/keymap.c
M keyboards/sofle/keymaps/devdev/keymap.c
M keyboards/sofle/keymaps/helltm/keymap.c
M keyboards/sofle/keymaps/j4ckofalltrades/oled.c
M keyboards/sofle/keymaps/killmaster/keymap.c
M keyboards/sofle/keymaps/rgb_default/keymap.c
M keyboards/sofle/keymaps/via/oled.c
M keyboards/spaceman/pancake/rev2/rev2.c
M keyboards/splitkb/kyria/keymaps/asapjockey/keymap.c
M keyboards/splitkb/kyria/keymaps/benji/keymap.c
M keyboards/splitkb/kyria/keymaps/cjuniet/keymap.c
M keyboards/splitkb/kyria/keymaps/cwebster2/keymap.c
M keyboards/splitkb/kyria/keymaps/default/keymap.c
M keyboards/splitkb/kyria/keymaps/ghidalgo93/keymap.c
M keyboards/splitkb/kyria/keymaps/gotham/keymap.c
M keyboards/splitkb/kyria/keymaps/j-inc/keymap.c
M keyboards/splitkb/kyria/keymaps/jhelvy/keymap.c
M keyboards/splitkb/kyria/keymaps/john-ezra/oled.c
M keyboards/splitkb/kyria/keymaps/mattir/keymap.c
M keyboards/splitkb/kyria/keymaps/ninjonas/oled.c
M keyboards/splitkb/kyria/keymaps/plattfot/keymap.c
M keyboards/splitkb/kyria/keymaps/shinze/keymap.c
M keyboards/splitkb/kyria/keymaps/tessachka/keymap.c
M keyboards/splitkb/kyria/keymaps/thomasbaart/keymap.c
M keyboards/splitkb/kyria/keymaps/via/keymap.c
M keyboards/splitkb/kyria/keymaps/winternebs/keymap.c
M keyboards/splitkb/kyria/keymaps/zigotica/oled.c
M keyboards/splitkb/kyria/rev1/rev1.c
M keyboards/splitkb/zima/keymaps/drashna/keymap.c
M keyboards/splitkb/zima/zima.c
M keyboards/suihankey/alpha/keymaps/default/keymap.c
M keyboards/suihankey/rev1/keymaps/default/keymap.c
M keyboards/takashicompany/endzone34/keymaps/default/keymap.c
M keyboards/tau4/keymaps/default/keymap.c
M keyboards/tender/macrowo_pad/keymaps/default/keymap.c
M keyboards/tender/macrowo_pad/keymaps/via/keymap.c
M keyboards/tkc/m0lly/keymaps/default/keymap.c
M keyboards/tkc/m0lly/keymaps/via/keymap.c
M keyboards/tkc/tkc1800/keymaps/default/keymap.c
M keyboards/tkc/tkc1800/keymaps/smt/keymap.c
M keyboards/tkc/tkc1800/keymaps/via/keymap.c
M keyboards/tkc/tkc1800/keymaps/wkl/keymap.c
M keyboards/tkc/tkc1800/keymaps/yanfali/keymap.c
M keyboards/tkw/grandiceps/keymaps/default/keymap.c
M keyboards/torn/bongocat.c
M keyboards/treadstone48/keymaps/default/keymap.c
M keyboards/treadstone48/keymaps/like_jis/keymap.c
M keyboards/treadstone48/rev1/keymaps/like_jis_rs/keymap.c
M keyboards/ungodly/launch_pad/keymaps/default/keymap.c
M keyboards/ungodly/launch_pad/keymaps/via/keymap.c
M keyboards/ungodly/launch_pad/keymaps/warzone/keymap.c
M keyboards/uzu42/keymaps/default/keymap.c
M keyboards/work_louder/work_board/work_board.c
M keyboards/yampad/keymaps/default/keymap.c
M keyboards/yampad/keymaps/traditional/keymap.c
M keyboards/yampad/keymaps/via/keymap.c
M keyboards/yampad/yampad.c
M keyboards/z12/keymaps/zigotica/oled.c
M keyboards/zoo/wampus/wampus.c
M users/curry/oled.c
M users/drashna/oled_stuff.c
M users/ninjonas/oled.c
M users/riblee/riblee.c
M users/snowe/oled_setup.c
M users/tominabox1/tominabox1.c
M users/xulkal/custom_oled.c
M docs/feature_oled_driver.md => docs/feature_oled_driver.md +8 -3
@@ 38,7 38,7 @@ Then in your `keymap.c` file, implement the OLED task call. This example assumes

```c
#ifdef OLED_ENABLE
void oled_task_user(void) {
bool oled_task_user(void) {
    // Host Keyboard Layer Status
    oled_write_P(PSTR("Layer: "), false);



@@ 62,6 62,8 @@ void oled_task_user(void) {
    oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR("    "), false);
    oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR("    "), false);
    oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR("    "), false);
    
    return false;
}
#endif
```


@@ 133,13 135,14 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return rotation;
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_master()) {
        render_status();  // Renders the current keyboard state (layer, lock, caps, scroll, etc)
    } else {
        render_logo();  // Renders a static logo
        oled_scroll_left();  // Turns on scrolling
    }
    return false;
}
#endif
```


@@ 237,6 240,7 @@ bool oled_init(oled_rotation_t rotation);
// Called at the start of oled_init, weak function overridable by the user
// rotation - the value passed into oled_init
// Return new oled_rotation_t if you want to override default rotation
oled_rotation_t oled_init_kb(oled_rotation_t rotation);
oled_rotation_t oled_init_user(oled_rotation_t rotation);

// Clears the display buffer, resets cursor position to 0, and sets the buffer to dirty for rendering


@@ 328,7 332,8 @@ uint8_t oled_get_brightness(void);
void oled_task(void);

// Called at the start of oled_task, weak function overridable by the user
void oled_task_user(void);
bool oled_task_kb(void);
bool oled_task_user(void);

// Set the specific 8 lines rows of the screen to scroll.
// 0 is the default for start, and 7 for end, which is the entire

M drivers/oled/oled_driver.h => drivers/oled/oled_driver.h +3 -1
@@ 190,6 190,7 @@ bool oled_init(oled_rotation_t rotation);
// Called at the start of oled_init, weak function overridable by the user
// rotation - the value passed into oled_init
// Return new oled_rotation_t if you want to override default rotation
oled_rotation_t oled_init_kb(oled_rotation_t rotation);
oled_rotation_t oled_init_user(oled_rotation_t rotation);

// Clears the display buffer, resets cursor position to 0, and sets the buffer to dirty for rendering


@@ 285,7 286,8 @@ uint8_t oled_get_brightness(void);
void oled_task(void);

// Called at the start of oled_task, weak function overridable by the user
void oled_task_user(void);
bool oled_task_kb(void);
bool oled_task_user(void);

// Set the specific 8 lines rows of the screen to scroll.
// 0 is the default for start, and 7 for end, which is the entire

M drivers/oled/ssd1306_sh1106.c => drivers/oled/ssd1306_sh1106.c +6 -4
@@ 167,7 167,7 @@ bool oled_init(oled_rotation_t rotation) {
    }
#endif

    oled_rotation = oled_init_user(rotation);
    oled_rotation = oled_init_user(oled_init_kb(rotation));
    if (!HAS_FLAGS(oled_rotation, OLED_ROTATION_90)) {
        oled_rotation_width = OLED_DISPLAY_WIDTH;
    } else {


@@ 232,6 232,7 @@ bool oled_init(oled_rotation_t rotation) {
    return true;
}

__attribute__((weak)) oled_rotation_t oled_init_kb(oled_rotation_t rotation) { return rotation; }
__attribute__((weak)) oled_rotation_t oled_init_user(oled_rotation_t rotation) { return rotation; }

void oled_clear(void) {


@@ 741,11 742,11 @@ void oled_task(void) {
    if (timer_elapsed(oled_update_timeout) >= OLED_UPDATE_INTERVAL) {
        oled_update_timeout = timer_read();
        oled_set_cursor(0, 0);
        oled_task_user();
        oled_task_kb();
    }
#else
    oled_set_cursor(0, 0);
    oled_task_user();
    oled_task_kb();
#endif

#if OLED_SCROLL_TIMEOUT > 0


@@ 776,4 777,5 @@ void oled_task(void) {
#endif
}

__attribute__((weak)) void oled_task_user(void) {}
__attribute__((weak)) bool oled_task_kb(void) { return oled_task_user(); }
__attribute__((weak)) bool oled_task_user(void) { return true; }

M keyboards/0xcb/1337/keymaps/conor/keymap.c => keyboards/0xcb/1337/keymaps/conor/keymap.c +2 -1
@@ 168,7 168,7 @@ static void render_rgbled_status(bool) {
        oled_write_ln_P(PSTR("\n"), false);
    }
}
void oled_task_user(void) {
bool oled_task_user(void) {
    static bool finished_timer = false;
    if (!finished_timer && (timer_elapsed(startup_timer) < 1000)) {
        render_logo();


@@ 181,5 181,6 @@ void oled_task_user(void) {
        render_rgbled_status(true);
        render_logo_font();
    }
    return false;
}
#endif

M keyboards/0xcb/1337/keymaps/default/keymap.c => keyboards/0xcb/1337/keymaps/default/keymap.c +2 -1
@@ 159,7 159,7 @@ static void render_rgbled_status(void) {
        oled_write_ln_P(PSTR("\n"), false);
    }
}
void oled_task_user(void) {
bool oled_task_user(void) {
    static bool finished_timer = false;
    if (!finished_timer && (timer_elapsed(startup_timer) < 1000)) {
        render_logo();


@@ 172,5 172,6 @@ void oled_task_user(void) {
        render_rgbled_status();
        render_logo_font();
    }
    return false;
}
#endif

M keyboards/0xcb/1337/keymaps/jakob/keymap.c => keyboards/0xcb/1337/keymaps/jakob/keymap.c +2 -1
@@ 168,7 168,7 @@ static void render_rgbled_status(bool) {
        oled_write_ln_P(PSTR("\n"), false);
    }
}
void oled_task_user(void) {
bool oled_task_user(void) {
    static bool finished_timer = false;
    if (!finished_timer && (timer_elapsed(startup_timer) < 1000)) {
        render_logo();


@@ 181,5 181,6 @@ void oled_task_user(void) {
        render_rgbled_status(true);
        render_logo_font();
    }
    return false;
}
#endif

M keyboards/0xcb/1337/keymaps/via/keymap.c => keyboards/0xcb/1337/keymaps/via/keymap.c +2 -1
@@ 168,7 168,7 @@ static void render_rgbled_status(void) {
        oled_write_ln_P(PSTR("\n"), false);
    }
}
void oled_task_user(void) {
bool oled_task_user(void) {
    static bool finished_timer = false;
    if (!finished_timer && (timer_elapsed(startup_timer) < 1000)) {
        render_logo();


@@ 181,5 181,6 @@ void oled_task_user(void) {
        render_rgbled_status();
        render_logo_font();
    }
    return false;
}
#endif

M keyboards/0xcb/static/keymaps/bongocat/keymap.c => keyboards/0xcb/static/keymaps/bongocat/keymap.c +2 -1
@@ 262,7 262,7 @@ static void render_cat(void) {
    }
}

void oled_task_user(void) {
bool oled_task_user(void) {
    static bool finished_timer = false;
    if (!finished_timer && (timer_elapsed(startup_timer) < 3000)) {
        render_logo();


@@ 286,6 286,7 @@ void oled_task_user(void) {
            render_layer();
        }
    }
    return false;
}
#endif


M keyboards/0xcb/static/keymaps/default/keymap.c => keyboards/0xcb/static/keymaps/default/keymap.c +2 -1
@@ 175,7 175,7 @@ static void render_layer(void) {
    oled_write_P(logo[3][2], false);
}

void oled_task_user(void) {
bool oled_task_user(void) {
    static bool finished_timer = false;
    if (!finished_timer && (timer_elapsed(startup_timer) < 3000)) {
        render_logo();


@@ 186,5 186,6 @@ void oled_task_user(void) {
        }
        render_layer();
    }
    return false;
}
#endif

M keyboards/0xcb/static/keymaps/via/keymap.c => keyboards/0xcb/static/keymaps/via/keymap.c +2 -1
@@ 175,7 175,7 @@ static void render_layer(void) {
    oled_write_P(logo[3][2], false);
}

void oled_task_user(void) {
bool oled_task_user(void) {
    static bool finished_timer = false;
    if (!finished_timer && (timer_elapsed(startup_timer) < 3000)) {
        render_logo();


@@ 186,6 186,7 @@ void oled_task_user(void) {
        }
        render_layer();
    }
    return false;
}
#endif


M keyboards/10bleoledhub/keymaps/default/keymap.c => keyboards/10bleoledhub/keymaps/default/keymap.c +4 -1
@@ 55,7 55,10 @@ static void render_logo(void) {
}

#ifdef OLED_ENABLE
void oled_task_user(void) { render_logo(); }
bool oled_task_user(void) {
    render_logo();
    return false;
}
#endif

bool encoder_update_user(uint8_t index, bool clockwise) {

M keyboards/10bleoledhub/keymaps/via/keymap.c => keyboards/10bleoledhub/keymaps/via/keymap.c +4 -1
@@ 55,7 55,10 @@ static void render_logo(void) {
}

#ifdef OLED_ENABLE
void oled_task_user(void) { render_logo(); }
bool oled_task_user(void) {
    render_logo();
    return false;
}
#endif

bool encoder_update_user(uint8_t index, bool clockwise) {

M keyboards/aeboards/ext65/keymaps/default/keymap.c => keyboards/aeboards/ext65/keymaps/default/keymap.c +2 -1
@@ 89,10 89,11 @@ void render_mod_status(uint8_t modifiers) {
    oled_write_ln(PSTR(" "), false);
}

void oled_task_user(void) {
bool oled_task_user(void) {
    render_layer_state();
    render_keylock_status(host_keyboard_led_state());
    render_mod_status(get_mods()|get_oneshot_mods());
    return false;
}

#endif

M keyboards/aeboards/ext65/keymaps/via/keymap.c => keyboards/aeboards/ext65/keymaps/via/keymap.c +2 -1
@@ 89,10 89,11 @@ void render_mod_status(uint8_t modifiers) {
    oled_write_ln(PSTR(" "), false);
}

void oled_task_user(void) {
bool oled_task_user(void) {
    render_layer_state();
    render_keylock_status(host_keyboard_led_state());
    render_mod_status(get_mods()|get_oneshot_mods());
    return false;
}

#endif

M keyboards/aeboards/ext65/rev2/rev2.c => keyboards/aeboards/ext65/rev2/rev2.c +1 -1
@@ 9,7 9,7 @@ void board_init(void) {
  SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_SPI2_DMA_RMP);
}

oled_rotation_t oled_init_user(oled_rotation_t rotation) {
oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
    return OLED_ROTATION_90;  // rotates the display 90 degrees
}


M keyboards/aleblazer/zodiark/keymaps/default/keymap.c => keyboards/aleblazer/zodiark/keymaps/default/keymap.c +2 -1
@@ 135,12 135,13 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return rotation;
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_master()) {
        print_status_narrow();
    } else {
        render_logo();
    }
    return false;
}

#endif

M keyboards/aleblazer/zodiark/keymaps/slimoled/keymap.c => keyboards/aleblazer/zodiark/keymaps/slimoled/keymap.c +2 -1
@@ 138,12 138,13 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return rotation;
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_master()) {
        print_status_narrow();
    } else {
        render_logo();
    }
    return false;
}

#endif

M keyboards/aleblazer/zodiark/keymaps/via/oled.c => keyboards/aleblazer/zodiark/keymaps/via/oled.c +2 -1
@@ 67,12 67,13 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return rotation;
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_master()) {
        print_status_narrow();
    } else {
        render_logo();
    }
    return false;
}

#endif

M keyboards/anavi/macropad8/keymaps/default/keymap.c => keyboards/anavi/macropad8/keymaps/default/keymap.c +2 -1
@@ 22,7 22,7 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return OLED_ROTATION_180;  // flips the display 180 degrees if offhand
}

void oled_task_user(void) {
bool oled_task_user(void) {
  // Host Keyboard Layer Status
  oled_write_ln_P(PSTR("ANAVI Macro Pad 8"), false);
  oled_write_P(PSTR("Active layer: "), false);


@@ 57,5 57,6 @@ void oled_task_user(void) {
  snprintf(rgbStatusLine2, sizeof(rgbStatusLine2), "h:%d s:%d v:%d", rgblight_get_hue(), rgblight_get_sat(), rgblight_get_val());
  oled_write_ln(rgbStatusLine2, false);
#endif
    return false;
}
#endif

M keyboards/anavi/macropad8/keymaps/git/keymap.c => keyboards/anavi/macropad8/keymaps/git/keymap.c +2 -1
@@ 105,7 105,7 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return OLED_ROTATION_180;  // flips the display 180 degrees if offhand
}

void oled_task_user(void) {
bool oled_task_user(void) {
  // Host Keyboard Layer Status
  oled_write_ln_P(PSTR("ANAVI Macro Pad 8"), false);
  oled_write_P(PSTR("Active layer: "), false);


@@ 140,5 140,6 @@ void oled_task_user(void) {
  snprintf(rgbStatusLine2, sizeof(rgbStatusLine2), "h:%d s:%d v:%d", rgblight_get_hue(), rgblight_get_sat(), rgblight_get_val());
  oled_write_ln(rgbStatusLine2, false);
#endif
    return false;
}
#endif

M keyboards/anavi/macropad8/keymaps/kicad/keymap.c => keyboards/anavi/macropad8/keymaps/kicad/keymap.c +2 -1
@@ 75,7 75,7 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return OLED_ROTATION_180;  // flips the display 180 degrees if offhand
}

void oled_task_user(void) {
bool oled_task_user(void) {
  // Host Keyboard Layer Status
  oled_write_ln_P(PSTR("ANAVI Macro Pad 8"), false);
  oled_write_P(PSTR("Layer: "), false);


@@ 113,5 113,6 @@ void oled_task_user(void) {
  snprintf(rgbStatusLine2, sizeof(rgbStatusLine2), "h:%d s:%d v:%d", rgblight_get_hue(), rgblight_get_sat(), rgblight_get_val());
  oled_write_ln(rgbStatusLine2, false);
#endif
    return false;
}
#endif

M keyboards/anavi/macropad8/keymaps/kodi/keymap.c => keyboards/anavi/macropad8/keymaps/kodi/keymap.c +2 -1
@@ 41,7 41,7 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return OLED_ROTATION_180;  // flips the display 180 degrees if offhand
}

void oled_task_user(void) {
bool oled_task_user(void) {
  // Host Keyboard Layer Status
  oled_write_ln_P(PSTR("ANAVI Macro Pad 8"), false);
  oled_write_P(PSTR("Active layer: "), false);


@@ 76,5 76,6 @@ void oled_task_user(void) {
  snprintf(rgbStatusLine2, sizeof(rgbStatusLine2), "h:%d s:%d v:%d", rgblight_get_hue(), rgblight_get_sat(), rgblight_get_val());
  oled_write_ln(rgbStatusLine2, false);
#endif
    return false;
}
#endif

M keyboards/anavi/macropad8/keymaps/obs/keymap.c => keyboards/anavi/macropad8/keymaps/obs/keymap.c +2 -1
@@ 58,7 58,7 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return OLED_ROTATION_180;  // flips the display 180 degrees if offhand
}

void oled_task_user(void) {
bool oled_task_user(void) {
  // Host Keyboard Layer Status
  oled_write_ln_P(PSTR("ANAVI Macro Pad 8"), false);
  oled_write_P(PSTR("Active layer: "), false);


@@ 93,5 93,6 @@ void oled_task_user(void) {
  snprintf(rgbStatusLine2, sizeof(rgbStatusLine2), "h:%d s:%d v:%d", rgblight_get_hue(), rgblight_get_sat(), rgblight_get_val());
  oled_write_ln(rgbStatusLine2, false);
#endif
    return false;
}
#endif

M keyboards/anavi/macropad8/keymaps/zoom/keymap.c => keyboards/anavi/macropad8/keymaps/zoom/keymap.c +2 -1
@@ 57,7 57,7 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return OLED_ROTATION_180;  // flips the display 180 degrees if offhand
}

void oled_task_user(void) {
bool oled_task_user(void) {
  // Host Keyboard Layer Status
  oled_write_ln_P(PSTR("ANAVI Macro Pad 8"), false);
  oled_write_P(PSTR("Active layer: "), false);


@@ 92,5 92,6 @@ void oled_task_user(void) {
  snprintf(rgbStatusLine2, sizeof(rgbStatusLine2), "h:%d s:%d v:%d", rgblight_get_hue(), rgblight_get_sat(), rgblight_get_val());
  oled_write_ln(rgbStatusLine2, false);
#endif
    return false;
}
#endif

M keyboards/angel64/alpha/keymaps/default/keymap.c => keyboards/angel64/alpha/keymaps/default/keymap.c +2 -1
@@ 38,7 38,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};

#ifdef OLED_ENABLE
void oled_task_user(void) {
bool oled_task_user(void) {
  oled_write_P(PSTR("Layer: "), false);
  switch (biton32(layer_state)) {
    case BASE:


@@ 56,5 56,6 @@ void oled_task_user(void) {
  oled_write_P(IS_HOST_LED_ON(USB_LED_NUM_LOCK) ? PSTR("NUMLCK ") : PSTR("       "), false);
  oled_write_P(IS_HOST_LED_ON(USB_LED_CAPS_LOCK) ? PSTR("CAPLCK ") : PSTR("       "), false);
  oled_write_P(IS_HOST_LED_ON(USB_LED_SCROLL_LOCK) ? PSTR("SCRLCK ") : PSTR("       "), false);
    return false;
}
#endif

M keyboards/angel64/rev1/keymaps/default/keymap.c => keyboards/angel64/rev1/keymaps/default/keymap.c +2 -1
@@ 25,10 25,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};

#ifdef OLED_ENABLE
void oled_task_user(void) {
bool oled_task_user(void) {
  // Host Keyboard LED Status
  oled_write_P(IS_HOST_LED_ON(USB_LED_NUM_LOCK) ? PSTR("NUMLCK ") : PSTR("       "), false);
  oled_write_P(IS_HOST_LED_ON(USB_LED_CAPS_LOCK) ? PSTR("CAPLCK ") : PSTR("       "), false);
  oled_write_P(IS_HOST_LED_ON(USB_LED_SCROLL_LOCK) ? PSTR("SCRLCK ") : PSTR("       "), false);
    return false;
}
#endif

M keyboards/angel64/rev1/keymaps/kakunpc/keymap.c => keyboards/angel64/rev1/keymaps/kakunpc/keymap.c +2 -1
@@ 173,7 173,7 @@ void matrix_scan_user(void) {
}

#ifdef OLED_ENABLE
void oled_task_user(void) {
bool oled_task_user(void) {
  oled_write_P(PSTR("Layer: "), false);
  switch (biton32(layer_state)) {
    case BASE:


@@ 191,5 191,6 @@ void oled_task_user(void) {
  oled_write_P(IS_HOST_LED_ON(USB_LED_NUM_LOCK) ? PSTR("NUMLCK ") : PSTR("       "), false);
  oled_write_P(IS_HOST_LED_ON(USB_LED_CAPS_LOCK) ? PSTR("CAPLCK ") : PSTR("       "), false);
  oled_write_P(IS_HOST_LED_ON(USB_LED_SCROLL_LOCK) ? PSTR("SCRLCK ") : PSTR("       "), false);
    return false;
}
#endif

M keyboards/aplyard/aplx6/rev2/keymaps/default/keymap.c => keyboards/aplyard/aplx6/rev2/keymaps/default/keymap.c +2 -1
@@ 113,8 113,9 @@ static void render_logo(void) {
    }
}

void oled_task_user(void) {
bool oled_task_user(void) {
    render_logo();
    return false;
}
#endif


M keyboards/arabica37/keymaps/default/keymap.c => keyboards/arabica37/keymaps/default/keymap.c +2 -1
@@ 149,7 149,7 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return rotation;
}

void oled_task_user(void) {
bool oled_task_user(void) {
  void render_status(void) {
    // Host Keyboard Layer Status
    oled_write_P(PSTR("Layer: "), false);


@@ 177,6 177,7 @@ void oled_task_user(void) {
    oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR("    "), false);
    oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR("    "), false);
    oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR("    "), false);
    return false;
  }



M keyboards/arch_36/keymaps/default/keymap.c => keyboards/arch_36/keymaps/default/keymap.c +2 -1
@@ 298,12 298,13 @@ static void render_logo(void) {
    oled_write_raw_P(logo, 1024);
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_master()) {
        render_status();     // Renders the current keyboard state (layer, lock, caps, scroll, etc)
    }
    else {
        render_logo();
    }
    return false;
}
#endif

M keyboards/arch_36/keymaps/obosob/keymap.c => keyboards/arch_36/keymaps/obosob/keymap.c +2 -1
@@ 807,12 807,13 @@ static void render_logo(void) {
    }
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_master()) {
        render_status();     // Renders the current keyboard state (layer, lock, caps, scroll, etc)
    }
    else {
        render_logo();
    }
    return false;
}
#endif

M keyboards/basekeys/slice/keymaps/default/keymap.c => keyboards/basekeys/slice/keymaps/default/keymap.c +2 -1
@@ 118,7 118,7 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return isLeftHand ? OLED_ROTATION_180 : OLED_ROTATION_0;
}

void oled_task_user(void) {
bool oled_task_user(void) {
  if (is_keyboard_master()) {
    // Host Keyboard Layer Status
    oled_write_P(PSTR("Layer: "), false);


@@ 142,5 142,6 @@ void oled_task_user(void) {
  } else {
    oled_write(read_logo(), false);
  }
    return false;
}
#endif

M keyboards/basekeys/slice/keymaps/default_split_left_space/keymap.c => keyboards/basekeys/slice/keymaps/default_split_left_space/keymap.c +2 -1
@@ 118,7 118,7 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return isLeftHand ? OLED_ROTATION_180 : OLED_ROTATION_0;
}

void oled_task_user(void) {
bool oled_task_user(void) {
  if (is_keyboard_master()) {
    // Host Keyboard Layer Status
    oled_write_P(PSTR("Layer: "), false);


@@ 142,5 142,6 @@ void oled_task_user(void) {
  } else {
    oled_write(read_logo(), false);
  }
    return false;
}
#endif

M keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/keymap.c => keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/keymap.c +2 -1
@@ 202,7 202,7 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return isLeftHand ? OLED_ROTATION_180 : OLED_ROTATION_0;
}

void oled_task_user(void) {
bool oled_task_user(void) {
  if (is_keyboard_master()) {
    // Host Keyboard Layer Status
    oled_write_P(PSTR("Layer: "), false);


@@ 232,5 232,6 @@ void oled_task_user(void) {
  } else {
    oled_write(read_logo(), false);
  }
    return false;
}
#endif

M keyboards/basekeys/slice/rev1_rgb/keymaps/via/keymap.c => keyboards/basekeys/slice/rev1_rgb/keymaps/via/keymap.c +2 -1
@@ 99,7 99,7 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return isLeftHand ? OLED_ROTATION_180 : OLED_ROTATION_0;
}

void oled_task_user(void) {
bool oled_task_user(void) {
  if (is_keyboard_master()) {
    // Host Keyboard Layer Status
    oled_write_P(PSTR("Layer: "), false);


@@ 123,5 123,6 @@ void oled_task_user(void) {
  } else {
    render_qmk_logo();
  }
    return false;
}
#endif

M keyboards/boardsource/holiday/spooky/keymaps/rip_mx/keymap.c => keyboards/boardsource/holiday/spooky/keymaps/rip_mx/keymap.c +2 -1
@@ 71,8 71,9 @@ static void render_RIP(void) {
  oled_write_raw_P(my_logo, sizeof(my_logo));
}

void oled_task_user(void) {
bool oled_task_user(void) {
  render_RIP();
    return false;
  }

#endif

M keyboards/boardsource/holiday/spooky/keymaps/rip_my_wallet/keymap.c => keyboards/boardsource/holiday/spooky/keymaps/rip_my_wallet/keymap.c +2 -1
@@ 71,8 71,9 @@ static void render_RIP(void) {
  oled_write_raw_P(my_logo, sizeof(my_logo));
}

void oled_task_user(void) {
bool oled_task_user(void) {
  render_RIP();
    return false;
  }

#endif

M keyboards/boardsource/microdox/keymaps/cole/keymap.c => keyboards/boardsource/microdox/keymaps/cole/keymap.c +2 -1
@@ 104,13 104,14 @@ static void render_status(void) {
  }
}

void oled_task_user(void) {
bool oled_task_user(void) {
  if (is_keyboard_master()) {
    render_status();
  } else {
    render_logo();
    oled_scroll_left();
  }
    return false;
}

#endif

M keyboards/boardsource/microdox/keymaps/via/keymap.c => keyboards/boardsource/microdox/keymaps/via/keymap.c +2 -1
@@ 92,13 92,14 @@ static void render_status(void) {
  }
}

void oled_task_user(void) {
bool oled_task_user(void) {
  if (is_keyboard_master()) {
    render_status();
  } else {
    render_logo();
    oled_scroll_left();
  }
    return false;
}

#endif

M keyboards/boston_meetup/2019/2019.c => keyboards/boston_meetup/2019/2019.c +6 -6
@@ 31,13 31,12 @@ led_config_t g_led_config = { {
#endif

#ifdef OLED_ENABLE
__attribute__ ((weak))
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return OLED_ROTATION_180;
}
oled_rotation_t oled_init_kb(oled_rotation_t rotation) { return OLED_ROTATION_180; }

__attribute__ ((weak))
void oled_task_user(void) {
bool oled_task_kb(void) {
    if (!oled_task_user()) {
        return false;
    }
    oled_write_P(PSTR("BOSTON MK LAYER"), false);
    oled_advance_char();
    oled_write_char(get_highest_layer(layer_state) + 0x30, true);


@@ 94,5 93,6 @@ void oled_task_user(void) {
    for (uint8_t y = 0; y < 8; y++) {
        oled_write_pixel(95, 0 + y, true);
    }
    return false;
}
#endif

M keyboards/business_card/alpha/keymaps/default/keymap.c => keyboards/business_card/alpha/keymaps/default/keymap.c +4 -1
@@ 39,5 39,8 @@ static void render_logo(void) {

    oled_write_P(qmk_logo, false);
}
void oled_task_user(void) { render_logo(); }
bool oled_task_user(void) {
    render_logo();
    return false;
}
#endif

M keyboards/business_card/beta/keymaps/default/keymap.c => keyboards/business_card/beta/keymaps/default/keymap.c +4 -1
@@ 38,5 38,8 @@ static void render_logo(void) {

    oled_write_P(qmk_logo, false);
}
void oled_task_user(void) { render_logo(); }
bool oled_task_user(void) {
    render_logo();
    return false;
}
#endif

M keyboards/cannonkeys/satisfaction75/satisfaction_oled.c => keyboards/cannonkeys/satisfaction75/satisfaction_oled.c +6 -4
@@ 5,16 5,17 @@ void draw_clock(void);

#ifdef OLED_ENABLE

__attribute__((weak)) oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_0; }
oled_rotation_t oled_init_kb(oled_rotation_t rotation) { return OLED_ROTATION_0; }

__attribute__((weak)) void oled_task_user(void) {
bool oled_task_kb(void) {
    if (!oled_task_user()) { return false; }
    if (!oled_task_needs_to_repaint()) {
        return;
        return false;
    }
    oled_clear();
    if (clock_set_mode) {
        draw_clock();
        return;
        return false;;
    }
    switch (oled_mode) {
        default:


@@ 25,6 26,7 @@ __attribute__((weak)) void oled_task_user(void) {
            draw_clock();
            break;
    }
    return false;
}

// Request a repaint of the OLED image without resetting the OLED sleep timer.

M keyboards/cassette42/keymaps/default/keymap.c => keyboards/cassette42/keymaps/default/keymap.c +2 -1
@@ 101,12 101,13 @@ void render_status(void) {
    RENDER_LED_STATUS();
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_master()) {
        render_status();
    } else {
        render_logo();
    }
    return false;
}
#endif


M keyboards/chidori/keymaps/oled_sample/keymap.c => keyboards/chidori/keymaps/oled_sample/keymap.c +2 -1
@@ 210,8 210,9 @@ void oled_write_layer_state(void) {
    }
}

void oled_task_user(void) {
bool oled_task_user(void) {
    // If you want to change the display of OLED, you need to change here
    oled_write_layer_state();
    return false;
}
#endif

M keyboards/ckeys/washington/keymaps/default/keymap.c => keyboards/ckeys/washington/keymaps/default/keymap.c +2 -1
@@ 59,7 59,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
}

#ifdef OLED_ENABLE
void oled_task_user(void) {
bool oled_task_user(void) {
  // Host Keyboard Layer Status
  oled_write_P(PSTR("Layer: "), false);
  switch (biton32(layer_state)) {


@@ 79,5 79,6 @@ void oled_task_user(void) {
  oled_write_P(IS_LED_ON(usb_led, USB_LED_NUM_LOCK) ? PSTR("NUMLCK ") : PSTR("       "), false);
  oled_write_P(IS_LED_ON(usb_led, USB_LED_CAPS_LOCK) ? PSTR("CAPLCK ") : PSTR("       "), false);
  oled_write_P(IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK) ? PSTR("SCRLCK ") : PSTR("       "), false);
    return false;
}
#endif

M keyboards/claw44/keymaps/oled/keymap.c => keyboards/claw44/keymaps/oled/keymap.c +2 -1
@@ 140,7 140,7 @@ void set_keylog(uint16_t keycode, keyrecord_t *record) {
const char *read_keylog(void) { return keylog_str; }
const char *read_keylogs(void) { return keylogs_str; }

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_master()) {
        render_layer_state();
        oled_write_ln(read_keylog(), false);


@@ 148,6 148,7 @@ void oled_task_user(void) {
    } else {
        render_logo();
    }
    return false;
}

bool process_record_user(uint16_t keycode, keyrecord_t *record) {

M keyboards/crkbd/keymaps/armand1m/keymap.c => keyboards/crkbd/keymaps/armand1m/keymap.c +2 -1
@@ 130,7 130,8 @@ void oled_render_amsterdam_flag(void) {
    oled_write_raw_P(amsterdam_flag, sizeof(amsterdam_flag));
}

void oled_task_user(void) {
bool oled_task_user(void) {
    oled_render_amsterdam_flag();
    return false;
}
#endif // OLED_ENABLE

M keyboards/crkbd/keymaps/blipson/keymap.c => keyboards/crkbd/keymaps/blipson/keymap.c +2 -1
@@ 128,12 128,13 @@ void oled_render_logo(void) {
    oled_write_P(crkbd_logo, false);
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_master()) {
        oled_render_layer_state();
    } else {
        oled_render_logo();
    }
    return false;
}

#endif // OLED_ENABLE

M keyboards/crkbd/keymaps/default/keymap.c => keyboards/crkbd/keymaps/default/keymap.c +2 -1
@@ 157,13 157,14 @@ void oled_render_logo(void) {
    oled_write_P(crkbd_logo, false);
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_master()) {
        oled_render_layer_state();
        oled_render_keylog();
    } else {
        oled_render_logo();
    }
    return false;
}

bool process_record_user(uint16_t keycode, keyrecord_t *record) {

M keyboards/crkbd/keymaps/devdev/keymap.c => keyboards/crkbd/keymaps/devdev/keymap.c +2 -1
@@ 392,13 392,14 @@ void oled_render_logo(void) {
    oled_write_P(crkbd_logo, false);
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_master) {
        oled_render_layer_state();
        oled_render_keylog();
    } else {
        oled_render_logo();
    }
    return false;
}

bool process_record_user(uint16_t keycode, keyrecord_t *record) {

M keyboards/crkbd/keymaps/dsanchezseco/keymap.c => keyboards/crkbd/keymaps/dsanchezseco/keymap.c +2 -1
@@ 83,7 83,7 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
}

const char *read_logo(void);
void oled_task_user(void){
bool oled_task_user(void){
    switch (biton32(layer_state)){
        case _DVORAK:
            oled_write_ln_P(PSTR("DVRK"), false);


@@ 102,5 102,6 @@ void oled_task_user(void){
    }
  //now print logo
  oled_write(read_logo(), false);
    return false;
}
#endif

M keyboards/crkbd/keymaps/edvorakjp/oled.c => keyboards/crkbd/keymaps/edvorakjp/oled.c +2 -1
@@ 43,7 43,7 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return is_keyboard_left() ? rotation : rotation ^ OLED_ROTATION_180;
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_left()) {
        render_mode_icon(!get_enable_kc_lang());
        render_layer_state();


@@ 51,5 51,6 @@ void oled_task_user(void) {
    } else {
        render_logo();
    }
    return false;
}
#endif  // OLED_ENABLE

M keyboards/crkbd/keymaps/gotham/oled.c => keyboards/crkbd/keymaps/gotham/oled.c +2 -1
@@ 246,7 246,7 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return OLED_ROTATION_270;
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (timer_elapsed(oled_timer) > 10000) {
        oled_off();
        return;


@@ 262,4 262,5 @@ void oled_task_user(void) {
    } else {
        render_status_secondary();
    }
    return false;
}

M keyboards/crkbd/keymaps/kidbrazil/keymap.c => keyboards/crkbd/keymaps/kidbrazil/keymap.c +2 -1
@@ 172,7 172,7 @@ void render_slave_oled(void) {
}

// {OLED Task} -----------------------------------------------//
void oled_task_user(void) {
bool oled_task_user(void) {
    // First time out switches to logo as first indication of iddle.
    if (timer_elapsed32(oled_timer) > 100000 && timer_elapsed32(oled_timer) < 479999) {
        // Render logo on both halves before full timeout


@@ 209,5 209,6 @@ void oled_task_user(void) {
                }
        }
    }
    return false;
}
#endif

M keyboards/crkbd/keymaps/mcrown/oled.c => keyboards/crkbd/keymaps/mcrown/oled.c +2 -1
@@ 308,7 308,7 @@ static void render_logo(void){
 *  @param void.
 *  @return void.
 */
void oled_task_user(void){
bool oled_task_user(void){
    if (timer_elapsed32(standby_oled_timer) > 15000){
        oled_off();
    }else{


@@ 321,6 321,7 @@ void oled_task_user(void){
            oled_scroll_left();
        }
    }
    return false;
}

/** @brief process the current key and add it to the keylog string.

M keyboards/crkbd/keymaps/oled_sample/keymap.c => keyboards/crkbd/keymaps/oled_sample/keymap.c +2 -1
@@ 190,13 190,14 @@ void render_status_main(void) {
    render_keylogger_status();
}

void oled_task_user(void) {
bool oled_task_user(void) {
    update_log();
    if (is_keyboard_master()) {
        render_status_main();  // Renders the current keyboard state (layer, lock, caps, scroll, etc)
    } else {
        render_crkbd_logo();
    }
    return false;
}

bool process_record_user(uint16_t keycode, keyrecord_t *record) {

M keyboards/crkbd/keymaps/oo/keymap.c => keyboards/crkbd/keymaps/oo/keymap.c +2 -1
@@ 148,13 148,14 @@ void oled_render_logo(void) {
    oled_write_P(crkbd_logo, false);
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_master()) {
        oled_render_layer_state();
        oled_render_keylog();
    } else {
        oled_render_logo();
    }
    return false;
}

bool process_record_user(uint16_t keycode, keyrecord_t *record) {

M keyboards/crkbd/keymaps/rarick/keymap.c => keyboards/crkbd/keymaps/rarick/keymap.c +2 -1
@@ 158,13 158,14 @@ void oled_render_logo(void) {
    oled_write_P(crkbd_logo, false);
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_master()) {
        oled_render_layer_state();
        oled_render_keylog();
    } else {
        oled_render_logo();
    }
    return false;
}

bool process_record_user(uint16_t keycode, keyrecord_t *record) {

M keyboards/crkbd/keymaps/rjhilgefort/keymap.c => keyboards/crkbd/keymaps/rjhilgefort/keymap.c +2 -1
@@ 204,13 204,14 @@ void oled_render_logo(void) {
    oled_write_P(crkbd_logo, false);
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_master()) {
        oled_render_layer_state();
        oled_render_keylog();
    } else {
        oled_render_logo();
    }
    return false;
}

bool process_record_user(uint16_t keycode, keyrecord_t *record) {

M keyboards/crkbd/keymaps/rpbaptist/keymap.c => keyboards/crkbd/keymaps/rpbaptist/keymap.c +2 -1
@@ 290,7 290,7 @@ void render_status(void) {
#    endif
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (timer_elapsed32(oled_timer) > OLED_TIMEOUT) {
        oled_off();
        return;


@@ 310,6 310,7 @@ void oled_task_user(void) {
            }
        #endif
    }
    return false;
}
#endif


M keyboards/crkbd/keymaps/soundmonster/keymap.c => keyboards/crkbd/keymaps/soundmonster/keymap.c +2 -1
@@ 300,7 300,7 @@ void suspend_power_down_user() {
    oled_off();
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (timer_elapsed32(oled_timer) > 30000) {
        oled_off();
        return;


@@ 314,6 314,7 @@ void oled_task_user(void) {
    } else {
        render_status_secondary();
    }
    return false;
}

#endif

M keyboards/crkbd/keymaps/sulrich/keymap.c => keyboards/crkbd/keymaps/sulrich/keymap.c +2 -2
@@ 137,13 137,14 @@ void oled_render_logo(void) {
    oled_write_P(crkbd_logo, false);
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_master()) {
        oled_render_layer_state();
        oled_render_keylog();
    } else {
        oled_render_logo();
    }
    return false;
}

bool process_record_user(uint16_t keycode, keyrecord_t *record) {


@@ 153,4 154,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  return true;
}
#endif // OLED_ENABLE


M keyboards/crkbd/keymaps/vayashiko/keymap.c => keyboards/crkbd/keymaps/vayashiko/keymap.c +2 -1
@@ 164,13 164,14 @@ void oled_render_logo(void) {
    oled_write_P(crkbd_logo, false);
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_master) {
        oled_render_layer_state();
        oled_render_keylog();
    } else {
        oled_render_logo();
    }
    return false;
}

bool process_record_user(uint16_t keycode, keyrecord_t *record) {

M keyboards/crkbd/keymaps/via/keymap.c => keyboards/crkbd/keymaps/via/keymap.c +2 -1
@@ 158,13 158,14 @@ void oled_render_logo(void) {
    oled_write_P(crkbd_logo, false);
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_master()) {
        oled_render_layer_state();
        oled_render_keylog();
    } else {
        oled_render_logo();
    }
    return false;
}

bool process_record_user(uint16_t keycode, keyrecord_t *record) {

M keyboards/crkbd/keymaps/xyverz/keymap.c => keyboards/crkbd/keymaps/xyverz/keymap.c +2 -1
@@ 187,13 187,14 @@ void oled_render_logo(void) {
    oled_write_P(crkbd_logo, false);
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_master()) {
        oled_render_layer_state();
        oled_render_keylog();
    } else {
        oled_render_logo();
    }
    return false;
}

bool process_record_user(uint16_t keycode, keyrecord_t *record) {

M keyboards/dekunukem/duckypad/keymaps/default/keymap.c => keyboards/dekunukem/duckypad/keymaps/default/keymap.c +2 -1
@@ 125,7 125,7 @@ char* make_rgb_text(void){
  return s;
};

void oled_task_user(void) {
bool oled_task_user(void) {
  render_logo();
  oled_set_cursor(0,3);
  if (rgbToggled) {


@@ 137,6 137,7 @@ void oled_task_user(void) {
    oled_write_ln_P(s, false);
    free(s);
  }
    return false;
}

bool process_record_user(uint16_t keycode, keyrecord_t *record) {

M keyboards/dekunukem/duckypad/keymaps/m4cs/keymap.c => keyboards/dekunukem/duckypad/keymaps/m4cs/keymap.c +2 -1
@@ 203,7 203,7 @@ char* make_sys_info_text(void) {
};


void oled_task_user(void) {
bool oled_task_user(void) {
  if (!sysToggled) {
    render_logo();
    oled_set_cursor(0,3);


@@ 221,6 221,7 @@ void oled_task_user(void) {
        free(s);
    }
  }
    return false;
};

int concat(int a, int b) {

M keyboards/dekunukem/duckypad/keymaps/via/keymap.c => keyboards/dekunukem/duckypad/keymaps/via/keymap.c +2 -2
@@ 67,7 67,7 @@ static void render_logo(void) {
   oled_write_raw_P(ducky_logo, LOGO_SIZE);
}

void oled_task_user(void) {
bool oled_task_user(void) {
  render_logo();
    return false;
}


M keyboards/dmqdesign/spin/keymaps/gorbachev/keymap.c => keyboards/dmqdesign/spin/keymaps/gorbachev/keymap.c +2 -1
@@ 220,7 220,7 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
#endif
}

void oled_task_user(void) {
bool oled_task_user(void) {
    // Host Keyboard Layer Status
    oled_write_P(PSTR("Layer: "), false);



@@ 244,5 244,6 @@ void oled_task_user(void) {

    oled_write_P(PSTR("Mode: "), false);
    oled_write_ln(rgb_mode_name, false);
    return false;
}
#endif

M keyboards/doodboard/duckboard/keymaps/default/keymap.c => keyboards/doodboard/duckboard/keymaps/default/keymap.c +2 -1
@@ 89,7 89,7 @@ static void render_anim(void) {
        }
    }

void oled_task_user(void) {
bool oled_task_user(void) {
        render_anim();
        oled_set_cursor(0,6);
        oled_write_P(PSTR("DUCK\nBOARD\n"), false);


@@ 109,6 109,7 @@ void oled_task_user(void) {
            oled_write_P(PSTR("RGB\n"), false);
            break;
    }
    return false;
}
#endif


M keyboards/doodboard/duckboard_r2/keymaps/default/keymap.c => keyboards/doodboard/duckboard_r2/keymaps/default/keymap.c +2 -1
@@ 89,7 89,7 @@ static void render_anim(void) {
        }
    }

void oled_task_user(void) {
bool oled_task_user(void) {
        render_anim();
        oled_set_cursor(0,6);
        oled_write_P(PSTR("DUCK\nBOARD\n"), false);


@@ 109,6 109,7 @@ void oled_task_user(void) {
            oled_write_P(PSTR("RGB\n"), false);
            break;
    }
    return false;
}
#endif


M keyboards/doodboard/duckboard_r2/keymaps/via/keymap.c => keyboards/doodboard/duckboard_r2/keymaps/via/keymap.c +2 -1
@@ 96,7 96,7 @@ static void render_anim(void) {
        }
    }

void oled_task_user(void) {
bool oled_task_user(void) {
        render_anim();
        oled_set_cursor(0,6);
        oled_write_P(PSTR("DUCK\nBOARD\n"), false);


@@ 119,6 119,7 @@ void oled_task_user(void) {
            oled_write_P(PSTR("FN2\n"), false);
            break;
    }
    return false;
}
#endif


M keyboards/draculad/keymaps/default/keymap.c => keyboards/draculad/keymaps/default/keymap.c +2 -1
@@ 186,12 186,13 @@ static void render_status(void) {
    }
}

void oled_task_user(void) {
bool oled_task_user(void) {
      if (is_keyboard_master()) {
        render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
    } else {
        render_logo();
    }
    return false;
}

#endif

M keyboards/draculad/keymaps/pimoroni/keymap.c => keyboards/draculad/keymaps/pimoroni/keymap.c +2 -1
@@ 200,12 200,13 @@ static void render_status(void) {
    }
}

void oled_task_user(void) {
bool oled_task_user(void) {
      if (is_keyboard_master()) {
        render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
    } else {
        render_logo();
    }
    return false;
}

#endif

M keyboards/dumbo/keymaps/default/keymap.c => keyboards/dumbo/keymaps/default/keymap.c +2 -1
@@ 179,12 179,13 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return rotation;
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_master()) {
        print_status_narrow();
    } else {
        render_logo();
    }
    return false;
}
#endif


M keyboards/dumbo/keymaps/trip-trap/keymap.c => keyboards/dumbo/keymaps/trip-trap/keymap.c +2 -1
@@ 375,7 375,7 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return rotation;
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_master()) {
        print_status_narrow();
        sprintf(wpm_str, "%03d", get_current_wpm());


@@ 383,6 383,7 @@ void oled_task_user(void) {
    } else {
        render_anim();
    }
    return false;
}
#endif


M keyboards/ein_60/ein_60.c => keyboards/ein_60/ein_60.c +4 -1
@@ 56,7 56,8 @@ const uint8_t music_map[MATRIX_ROWS][MATRIX_COLS] = LAYOUT(
#endif

#ifdef OLED_ENABLE
__attribute__((weak)) void oled_task_user(void) {
bool oled_task_kb(void) {
    if (!oled_task_user()) { return false; }
    // Host Keyboard Layer Status
    oled_write_P(PSTR("Layer: "), false);
    switch (get_highest_layer(layer_state)) {


@@ 95,7 96,9 @@ __attribute__((weak)) void oled_task_user(void) {
        0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,255,255,  4,253,197,197,197,197,197,197,197,197,197,197,199,192,192,  0,255,255,  0,255,  0,255,255,  0,254, 13, 27, 55,111,222,188,120,255,  0,255,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,255,255,  0,255,197,197,197,197,197,197,197,197,197,197,253,253,255,131,254,  0,  0,255,255,  0,255,184,220,238,247,219,205,198,195,193,192,255,255,255,128,255,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
        0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,  3,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  3,  0,  3,  3,  2,  3,  0,  3,  3,  2,  3,  0,  0,  0,  0,  0,  1,  3,  2,  2,  3,  0,  8, 28, 20, 20, 20, 20, 20, 28,  8,  0,  1,  3,  3,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  3,  0,  0,  0,  1,  3,  3,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
        };

    oled_write_raw_P(ein60_logo, sizeof(ein60_logo));
    return false;
}
#endif


M keyboards/ein_60/keymaps/default/keymap.c => keyboards/ein_60/keymaps/default/keymap.c +2 -1
@@ 167,11 167,12 @@ static void render_status(void) {
    oled_set_cursor(1,2);
}

void oled_task_user(void) {
bool oled_task_user(void) {

    render_status();
    oled_write_ln_P(PSTR(""), false);
    render_ein60_logo();
    return false;
}
#endif


M keyboards/ein_60/keymaps/klackygears/keymap.c => keyboards/ein_60/keymaps/klackygears/keymap.c +3 -4
@@ 104,7 104,7 @@ static void render_ein60_logo(void) {


static void render_status(void) {
//void oled_task_user(void) {
//bool oled_task_user(void) {

    // Host Keyboard Layer Status
    oled_write_P(PSTR("Layer: "), false);


@@ 145,12 145,13 @@ static void render_status(void) {

}

void oled_task_user(void) {
bool oled_task_user(void) {

    render_status();
    oled_write_ln_P(PSTR(""), false);
    render_ein60_logo();

    return false;
}

#endif


@@ 172,5 173,3 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
    }
    return true;
}



M keyboards/ein_60/keymaps/ledtest/keymap.c => keyboards/ein_60/keymaps/ledtest/keymap.c +3 -1
@@ 166,11 166,13 @@ static void render_status(void) {
    oled_set_cursor(1,2);
}

void oled_task_user(void) {
bool oled_task_user(void) {

    render_status();
    oled_write_ln_P(PSTR(""), false);
    render_ein60_logo();

    return false;
}
#endif


M keyboards/gergo/keymaps/oled/keymap.c => keyboards/gergo/keymaps/oled/keymap.c +2 -1
@@ 130,13 130,14 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
	return OLED_ROTATION_180;
}

void oled_task_user(void) {
bool oled_task_user(void) {
    static const char PROGMEM font_logo[] = {
        0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,
        0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,
		0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0};
	oled_write_P(font_logo, false);

    return false;
}
	//for (int i = 0; i < fontLen; i++) {
    	//oled_write_char(pgm_read_byte(lain+i), false);

M keyboards/getta25/keymaps/oled/keymap.c => keyboards/getta25/keymaps/oled/keymap.c +2 -1
@@ 182,7 182,7 @@ void render_status(void) {
    render_keylock_status(host_keyboard_led_state());
}

void oled_task_user(void) {
bool oled_task_user(void) {
    static const char PROGMEM font_logo[] = {
        0x80,0x81,0x82,0x83,0x84,
        0xa0,0xa1,0xa2,0xa3,0xa4,


@@ 199,6 199,7 @@ void oled_task_user(void) {
    oled_write_P(font_logo, false);

    render_status();  // Renders the current keyboard state (layer, lock)
    return false;
}

#endif

M keyboards/hadron/ver2/ver2.c => keyboards/hadron/ver2/ver2.c +6 -6
@@ 1,13 1,12 @@
#include "ver2.h"

#ifdef OLED_ENABLE
__attribute__ ((weak))
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return OLED_ROTATION_180;
}
oled_rotation_t oled_init_kb(oled_rotation_t rotation) { return OLED_ROTATION_180; }

__attribute__ ((weak))
void oled_task_user(void) {
bool oled_task_kb(void) {
    if (!oled_task_user()) {
        return false;
    }
    oled_write_P(PSTR("LAYER "), false);
    oled_write_char(get_highest_layer(layer_state) + 0x30, true);



@@ 61,5 60,6 @@ void oled_task_user(void) {
    for (uint8_t y = 0; y < 8; y++) {
        oled_write_pixel(35, 0 + y, true);
    }
    return false;
}
#endif

M keyboards/hadron/ver3/ver3.c => keyboards/hadron/ver3/ver3.c +6 -6
@@ 34,13 34,12 @@ led_config_t g_led_config = { {
#endif

#ifdef OLED_ENABLE
__attribute__ ((weak))
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return OLED_ROTATION_180;
}
oled_rotation_t oled_init_kb(oled_rotation_t rotation) { return OLED_ROTATION_180; }

__attribute__ ((weak))
void oled_task_user(void) {
bool oled_task_kb(void) {
    if (!oled_task_user()) {
        return false;
    }
    oled_write_P(PSTR("LAYER"), false);
    oled_advance_char();
    oled_write_char(get_highest_layer(layer_state) + 0x30, true);


@@ 94,5 93,6 @@ void oled_task_user(void) {
    for (uint8_t y = 0; y < 8; y++) {
        oled_write_pixel(35, 0 + y, true);
    }
    return false;
}
#endif

M keyboards/halfcliff/halfcliff.c => keyboards/halfcliff/halfcliff.c +7 -2
@@ 27,14 27,18 @@ enum layer_names {
/*    _FN */
};

__attribute__((weak)) oled_rotation_t oled_init_user(oled_rotation_t rotation) {
oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
    if (!is_keyboard_master()) {
        return OLED_ROTATION_180;  // flips the display 180 degrees if offhand
    }
    return rotation;
}
oled_rotation_t oled_init_kb(oled_rotation_t rotation) { return OLED_ROTATION_180; }

__attribute__((weak)) void oled_task_user(void) {
bool oled_task_kb(void) {
    if (!oled_task_user()) {
        return false;
    }
  if (!is_keyboard_master()) {
    static const char PROGMEM qmk_logo[] = {
        0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94,


@@ 68,6 72,7 @@ __attribute__((weak)) void oled_task_user(void) {
      oled_write_P(led_state.caps_lock ? PSTR("CAPLCK ") : PSTR("       "), false);
      oled_write_P(led_state.scroll_lock ? PSTR("SCRLCK\n") : PSTR("      \n"), false);
    }
    return false;
}
#endif


M keyboards/handwired/amigopunk/keymaps/default/keymap.c => keyboards/handwired/amigopunk/keymaps/default/keymap.c +2 -1
@@ 85,8 85,9 @@ static void render_amigopunk_logo(void) {
    };
    oled_write_raw_P(amigopunk_logo, sizeof(amigopunk_logo));
}
void oled_task_user(void) {
bool oled_task_user(void) {
    render_amigopunk_logo();
    /* oled_write_P(PSTR("Amigo Punk\n"), false); */
    return false;
}
#endif

M keyboards/handwired/d48/keymaps/anderson/keymap.c => keyboards/handwired/d48/keymaps/anderson/keymap.c +2 -1
@@ 251,7 251,7 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return OLED_ROTATION_0;
}

void oled_task_user(void) {
bool oled_task_user(void) {
    /* Host Keyboard Layer Status */
    uint8_t current_layer = get_highest_layer(layer_state);



@@ 337,5 337,6 @@ void oled_task_user(void) {
        }
    }

    return false;
}
#endif

M keyboards/handwired/d48/keymaps/default/keymap.c => keyboards/handwired/d48/keymaps/default/keymap.c +2 -1
@@ 196,7 196,7 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return OLED_ROTATION_0;
}

void oled_task_user(void) {
bool oled_task_user(void) {
    /* Host Keyboard Layer Status */
    uint8_t current_layer = get_highest_layer(layer_state);



@@ 282,5 282,6 @@ void oled_task_user(void) {
        }
    }

    return false;
}
#endif

M keyboards/handwired/dactyl_manuform/5x6_5/keymaps/333fred/keymap.c => keyboards/handwired/dactyl_manuform/5x6_5/keymaps/333fred/keymap.c +2 -1
@@ 115,7 115,7 @@ void write_quote(const char* data, const uint8_t num_lines) {
    }
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_master()) {
        render_logo();
        oled_advance_page(/* clearPageRemainder */ true);


@@ 559,6 559,7 @@ void oled_task_user(void) {
                break;
        }
    }
    return false;
}

bool encoder_update_user(uint8_t index, bool clockwise) {

M keyboards/handwired/marauder/keymaps/orvia/keymap.c => keyboards/handwired/marauder/keymaps/orvia/keymap.c +2 -1
@@ 156,7 156,7 @@ static void render_anim(void) {
}

// Used to draw on to the oled screen
void oled_task_user(void) {
bool oled_task_user(void) {
    render_anim();  // renders pixelart

    oled_set_cursor(0, 0);                            // sets cursor to (row, column) using charactar spacing (4 rows, 21 full columns on a 128x32 screen, anything more will overflow back to the top)


@@ 194,5 194,6 @@ void oled_task_user(void) {
    }
    oled_set_cursor(17, 3);
    oled_write_P(PSTR("NKRO"), keymap_config.nkro);
    return false;
}
#endif

M keyboards/handwired/myskeeb/oled.c => keyboards/handwired/myskeeb/oled.c +96 -95
@@ 1,108 1,108 @@
// [OLED Configuration] ---------------------------------------------//

// Draw
    static const char PROGMEM skeeb_logo[] = {    
    static const char PROGMEM skeeb_logo[] = {
    0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,
    0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,
    0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,
	0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xbb,0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xdb,0};

    static const char PROGMEM oled_header[] = {    
    static const char PROGMEM oled_header[] = {
    0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,
    0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,
	0xc0,0};
	
	static const char PROGMEM oled_layer_keylog_separator[] = {    

	static const char PROGMEM oled_layer_keylog_separator[] = {
    0xc8,0xff,0};
			
	static const char PROGMEM oled_layer_line_end[] = {    

	static const char PROGMEM oled_layer_line_end[] = {
    0xd4,0};
	
	static const char PROGMEM oled_layer_keylog_bottom[] = {    

	static const char PROGMEM oled_layer_keylog_bottom[] = {
    0xc1,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc3,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc2,0};
	
	static const char PROGMEM oled_line_start[] = {    

	static const char PROGMEM oled_line_start[] = {
    0xc0,0};
	
	static const char PROGMEM oled_mods_bottom[] = {    

	static const char PROGMEM oled_mods_bottom[] = {
    0xc1,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc2,0};
	
	static const char PROGMEM oled_footer[] = {    

	static const char PROGMEM oled_footer[] = {
    0xc4,0xc5,0xc5,0xc9,0xca,0xca,0xca,0xca,0xca,0xca,0xca,0xca,0xca,0xca,0xca,0xca,0xca,0xcb,0xc5,0xc5,0xc6,0};

void render_skeeb_logo(void) {
    static const char PROGMEM skeeb_logo[] = {
0x00, 0xc0, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 
0x07, 0x0f, 0x1f, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
0xff, 0xff, 0xff, 0x81, 0x81, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x19, 0x19, 0xff, 0xff, 0x01, 
0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x19, 0x19, 0x99, 0x99, 0x99, 
0x99, 0x99, 0x99, 0x01, 0x01, 0xff, 0xff, 0x81, 0x81, 0x7f, 0x7f, 0xff, 0xff, 0x7f, 0x7f, 0x81, 
0x81, 0xff, 0xff, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xf9, 0xf9, 0xff, 0xff, 0xff, 
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x3f, 0x1f, 0x0f, 0x07, 
0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0xc0, 0x00, 
0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 
0x0f, 0x0f, 0x0f, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x08, 0x08, 0x0f, 0x0f, 0x08, 
0x08, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x0f, 0x0f, 0x08, 0x08, 0x0f, 0x0f, 0x0f, 
0x0f, 0x0f, 0x0f, 0x08, 0x08, 0x0f, 0x0f, 0x0f, 0x0f, 0x0e, 0x0e, 0x09, 0x09, 0x0e, 0x0e, 0x0f, 
0x0f, 0x0f, 0x0f, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x0f, 0x0f, 0x0f, 
0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 
0x00, 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, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x10, 0x10, 
0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00, 
0x00, 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, 0xfe, 0x01, 0x00, 0xe0, 0x20, 0x20, 0xe0, 0x00, 0x00, 0x00, 
0x00, 0x00, 0xe0, 0x20, 0x20, 0xe0, 0x00, 0x01, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00, 
0x00, 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, 
0xe0, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x00, 0x00, 0xf9, 0x01, 0x01, 0xf9, 0x00, 0x00, 0xf8, 
0x00, 0x00, 0xf9, 0x01, 0x01, 0xf9, 0x00, 0x00, 0x3f, 0x20, 0x20, 0x20, 0x20, 0x20, 0xe0, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00, 
0x00, 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, 
0xff, 0x00, 0x00, 0xfc, 0x00, 0x00, 0xff, 0x01, 0x01, 0xf1, 0x10, 0x10, 0x1f, 0x00, 0x00, 0x3f, 
0x00, 0x00, 0x1f, 0x10, 0x10, 0xf3, 0x02, 0x02, 0xf2, 0x12, 0x12, 0x1e, 0x00, 0x00, 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, 0xff, 0x00, 
0x00, 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, 
0x0f, 0x00, 0x00, 0x0f, 0x08, 0x08, 0x0f, 0x00, 0x00, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x0f, 
0x00, 0x00, 0x0f, 0x01, 0x01, 0x09, 0x08, 0x08, 0x09, 0x09, 0x09, 0x0f, 0x00, 0x00, 0x0f, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00, 
0x00, 0x03, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xc0, 0xe0, 
0xf0, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 
0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 
0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 
0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 
0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 
0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf0, 
0x00, 0xc0, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03,
0x07, 0x0f, 0x1f, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x81, 0x81, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x19, 0x19, 0xff, 0xff, 0x01,
0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x19, 0x19, 0x99, 0x99, 0x99,
0x99, 0x99, 0x99, 0x01, 0x01, 0xff, 0xff, 0x81, 0x81, 0x7f, 0x7f, 0xff, 0xff, 0x7f, 0x7f, 0x81,
0x81, 0xff, 0xff, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xf9, 0xf9, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x3f, 0x1f, 0x0f, 0x07,
0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0xc0, 0x00,
0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f,
0x0f, 0x0f, 0x0f, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x08, 0x08, 0x0f, 0x0f, 0x08,
0x08, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x0f, 0x0f, 0x08, 0x08, 0x0f, 0x0f, 0x0f,
0x0f, 0x0f, 0x0f, 0x08, 0x08, 0x0f, 0x0f, 0x0f, 0x0f, 0x0e, 0x0e, 0x09, 0x09, 0x0e, 0x0e, 0x0f,
0x0f, 0x0f, 0x0f, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x0f, 0x0f, 0x0f,
0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00,
0x00, 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, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x10, 0x10,
0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00,
0x00, 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, 0xfe, 0x01, 0x00, 0xe0, 0x20, 0x20, 0xe0, 0x00, 0x00, 0x00,
0x00, 0x00, 0xe0, 0x20, 0x20, 0xe0, 0x00, 0x01, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00,
0x00, 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,
0xe0, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x00, 0x00, 0xf9, 0x01, 0x01, 0xf9, 0x00, 0x00, 0xf8,
0x00, 0x00, 0xf9, 0x01, 0x01, 0xf9, 0x00, 0x00, 0x3f, 0x20, 0x20, 0x20, 0x20, 0x20, 0xe0, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00,
0x00, 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,
0xff, 0x00, 0x00, 0xfc, 0x00, 0x00, 0xff, 0x01, 0x01, 0xf1, 0x10, 0x10, 0x1f, 0x00, 0x00, 0x3f,
0x00, 0x00, 0x1f, 0x10, 0x10, 0xf3, 0x02, 0x02, 0xf2, 0x12, 0x12, 0x1e, 0x00, 0x00, 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, 0xff, 0x00,
0x00, 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,
0x0f, 0x00, 0x00, 0x0f, 0x08, 0x08, 0x0f, 0x00, 0x00, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x0f,
0x00, 0x00, 0x0f, 0x01, 0x01, 0x09, 0x08, 0x08, 0x09, 0x09, 0x09, 0x0f, 0x00, 0x00, 0x0f, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00,
0x00, 0x03, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xc0, 0xe0,
0xf0, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8,
0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8,
0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8,
0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8,
0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8,
0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf0,
0xe0, 0xc0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x03, 0x00,0
};
    oled_write_raw_P(skeeb_logo, sizeof(skeeb_logo));
}
	

// Mods Status
void render_mod_status(uint8_t modifiers) {
	oled_write_P(PSTR(" "), false);	
	oled_write_P(PSTR(" "), false);
	oled_write_P(PSTR("-"), false);
    oled_write_P(PSTR("SHF"), (modifiers & MOD_MASK_SHIFT));
	oled_write_P(PSTR("-"), false);


@@ 112,7 112,7 @@ void render_mod_status(uint8_t modifiers) {
	oled_write_P(PSTR("-"), false);
    oled_write_P(PSTR("ALT"), (modifiers & MOD_MASK_ALT));
    oled_write_P(PSTR("-"), false);
	oled_write_P(PSTR(" "), false);	
	oled_write_P(PSTR(" "), false);
}

// Layer State


@@ 122,19 122,19 @@ void render_layer_state(void){
		case 1: oled_write_P(PSTR(" MEDIA  "), false); break;
		case 2: oled_write_P(PSTR(" MOBA   "), false); break;
		case 3: oled_write_P(PSTR(" FPS    "), false); break;
		default: oled_write_P(PSTR("Undefined"), false); 
		default: oled_write_P(PSTR("Undefined"), false);
	}
}

// Keylock State			
// Keylock State
void render_keylock_status(uint8_t led_usb_state) {
	oled_write_P(PSTR(" "), false);
	oled_write_P(led_usb_state & (1<<USB_LED_NUM_LOCK) ? PSTR("-NUML") : PSTR("-----"), false);
	oled_write_P(PSTR(" "), false);
	oled_write_P(led_usb_state & (1<<USB_LED_CAPS_LOCK) ? PSTR("-CAPS") : PSTR("-----"), false);
	oled_write_P(PSTR(" "), false);
	oled_write_P(led_usb_state & (1<<USB_LED_SCROLL_LOCK) ? PSTR("-SCRL") : PSTR("-----"), false);	
	oled_write_P(PSTR(" "), false);	
	oled_write_P(led_usb_state & (1<<USB_LED_SCROLL_LOCK) ? PSTR("-SCRL") : PSTR("-----"), false);
	oled_write_P(PSTR(" "), false);
}

// Keylogger


@@ 195,35 195,36 @@ void render_keylogger_status(void) {
// [OLED Init] ------------------------------------------------------//

// Rotate Screen
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
	return OLED_ROTATION_180;
	}
oled_rotation_t oled_init_kb(oled_rotation_t rotation) { return OLED_ROTATION_180; }

// {OLED Task} ------------------------------------------------------//
void oled_task_user(void) {
bool oled_task_kb(void) {
    if (!oled_task_user()) {
        return false;
    }

// MASTER SIDE
if (is_keyboard_master()) {
	oled_write_P(oled_header, false);
	render_layer_state();
	oled_write_P(oled_layer_keylog_separator, false);
	render_keylogger_status();	
	render_keylogger_status();
	oled_set_cursor(20, 2);
	oled_write_P(oled_layer_line_end, false);
	oled_write_P(oled_layer_keylog_bottom, false);
	oled_write_P(oled_line_start, false);
	render_keylock_status(host_keyboard_leds());
	oled_write_P(oled_layer_line_end, false);	
	oled_write_P(oled_layer_line_end, false);
	oled_write_P(oled_mods_bottom, false);
	oled_write_P(oled_line_start, false);
	render_mod_status(get_mods() | get_oneshot_mods()); 
	render_mod_status(get_mods() | get_oneshot_mods());
	oled_write_P(oled_layer_line_end, false);
	oled_write_P(oled_footer, false);	
	oled_write_P(oled_footer, false);
	}
	

// SLAVE SIDE
else {
	render_skeeb_logo();
	} 
	}
    return false;
}


M keyboards/handwired/obuwunkunubi/spaget/keymaps/default/keymap.c => keyboards/handwired/obuwunkunubi/spaget/keymaps/default/keymap.c +2 -1
@@ 342,7 342,7 @@ void matrix_init_user(void) {
    set_unicode_input_mode(UC_WINC);
};
#ifdef OLED_ENABLE
void oled_task_user(void) {
bool oled_task_user(void) {
  oled_write_P(PSTR("       spaget v1\n\n"), false);

  // Host Keyboard Layer Status


@@ 368,6 368,7 @@ void oled_task_user(void) {
  oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR("    "), false);
  oled_write_P(led_state.caps_lock ? PSTR("CAPS ") : PSTR("     "), false);
  oled_write_P(led_state.scroll_lock ? PSTR("SCROLL ") : PSTR("       "), false);
    return false;
}
#endif


M keyboards/handwired/onekey/keymaps/oled/keymap.c => keyboards/handwired/onekey/keymaps/oled/keymap.c +2 -1
@@ 361,7 361,7 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return rotation;
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (update_speed_test) {
        // Speed test mode - wait for screen update completion.
        if (!oled_dirty) {


@@ 450,6 450,7 @@ void oled_task_user(void) {
            oled_write_P(PSTR("Draw Once"), false);
            break;
    }
    return false;
}

void keyboard_post_init_user(void) {

M keyboards/handwired/owlet60/keymaps/oled_testing/keymap.c => keyboards/handwired/owlet60/keymaps/oled_testing/keymap.c +2 -1
@@ 66,7 66,7 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
  //return OLED_ROTATION_180;
  return OLED_ROTATION_180;
}
void oled_task_user(void) {
bool oled_task_user(void) {
  // Host Keyboard Layer Status
  /*oled_write_P(PSTR("Lyr: "), false);
  switch (get_highest_layer(layer_state)) {


@@ 92,5 92,6 @@ void oled_task_user(void) {
    };

  oled_write_P(qmk_logo, false);
    return false;
}
#endif

M keyboards/handwired/pill60/keymaps/default/keymap.c => keyboards/handwired/pill60/keymaps/default/keymap.c +2 -1
@@ 66,8 66,9 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return rotation;
}

void oled_task_user(void) {
bool oled_task_user(void) {
    render_oled();
    return false;
}

#endif

M keyboards/handwired/split65/split65.c => keyboards/handwired/split65/split65.c +7 -3
@@ 18,11 18,14 @@
// OLED Code inspired by https://github.com/qmk/qmk_firmware/blob/master/keyboards/splitkb/kyria/rev1/rev1.c

#ifdef OLED_ENABLE
__attribute__((weak)) oled_rotation_t oled_init_user(oled_rotation_t rotation) {
	return OLED_ROTATION_180;
oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
    return OLED_ROTATION_180;
}

__attribute__((weak)) void oled_task_user(void) {
bool oled_task_kb(void) {
    if (!oled_task_user()) {
        return false;
    }
    if (is_keyboard_master()) {
        static const char PROGMEM qmk_logo[] = {
            0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,


@@ 126,5 129,6 @@ __attribute__((weak)) void oled_task_user(void) {
        };
        oled_write_raw_P(split65_logo, sizeof(split65_logo));
    }
    return false;
}
#endif

M keyboards/handwired/swiftrax/koalafications/keymaps/default/keymap.c => keyboards/handwired/swiftrax/koalafications/keymaps/default/keymap.c +2 -1
@@ 119,7 119,8 @@ static void render_anim(void){
    }
}

void oled_task_user(void) {
bool oled_task_user(void) {
    render_anim();
    return false;
}
#endif

M keyboards/handwired/swiftrax/koalafications/keymaps/via/keymap.c => keyboards/handwired/swiftrax/koalafications/keymaps/via/keymap.c +2 -1
@@ 119,7 119,8 @@ static void render_anim(void){
    }
}

void oled_task_user(void) {
bool oled_task_user(void) {
    render_anim();
    return false;
}
#endif

M keyboards/handwired/swiftrax/the_galleon/keymaps/default/keymap.c => keyboards/handwired/swiftrax/the_galleon/keymaps/default/keymap.c +2 -1
@@ 99,7 99,8 @@ static void render_anim(void){
    }
}

void oled_task_user(void) {
bool oled_task_user(void) {
    render_anim();
    return false;
}
#endif

M keyboards/handwired/swiftrax/the_galleon/keymaps/via/keymap.c => keyboards/handwired/swiftrax/the_galleon/keymaps/via/keymap.c +2 -1
@@ 99,7 99,8 @@ static void render_anim(void){
    }
}

void oled_task_user(void) {
bool oled_task_user(void) {
    render_anim();
    return false;
}
#endif

M keyboards/helix/rev2/keymaps/default/oled_display.c => keyboards/helix/rev2/keymaps/default/oled_display.c +2 -1
@@ 208,7 208,7 @@ void iota_gfx_task_user(void) {
    matrix_update(&display, &matrix);
}
#    else
void oled_task_user(void) {
bool oled_task_user(void) {

#        if DEBUG_TO_SCREEN
    if (debug_enable) {


@@ 223,6 223,7 @@ void oled_task_user(void) {
        render_rgbled_status(false);
        render_layer_status();
    }
    return false;
}
#    endif
#endif

M keyboards/helix/rev2/keymaps/edvorakjp/oled.c => keyboards/helix/rev2/keymaps/edvorakjp/oled.c +2 -1
@@ 56,7 56,7 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return is_keyboard_left() ? rotation : rotation ^ OLED_ROTATION_180;
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_left()) {
        render_mode_icon(!get_enable_kc_lang());
        render_layer_state();


@@ 64,5 64,6 @@ void oled_task_user(void) {
    } else {
        render_logo();
    }
    return false;
}
#endif  // OLED_ENABLE

M keyboards/helix/rev2/keymaps/five_rows/oled_display.c => keyboards/helix/rev2/keymaps/five_rows/oled_display.c +2 -1
@@ 259,7 259,7 @@ void iota_gfx_task_user(void) {
    matrix_update(&display, &matrix);
}
#    else
void oled_task_user(void) {
bool oled_task_user(void) {

#        if DEBUG_TO_SCREEN
    if (debug_enable) {


@@ 272,6 272,7 @@ void oled_task_user(void) {
    }else{
        render_logo();
    }
    return false;
}
#    endif


M keyboards/helix/rev3_4rows/keymaps/default/oled_display.c => keyboards/helix/rev3_4rows/keymaps/default/oled_display.c +2 -1
@@ 101,12 101,13 @@ static void render_rgbled_status(bool full) {
#endif
}

void oled_task_user(void) {
bool oled_task_user(void) {
  if(is_keyboard_master()){
    render_status();
  }else{
    render_logo();
    render_rgbled_status(true);
  }
    return false;
}
#endif

M keyboards/helix/rev3_4rows/keymaps/via/oled_display.c => keyboards/helix/rev3_4rows/keymaps/via/oled_display.c +2 -1
@@ 101,12 101,13 @@ static void render_rgbled_status(bool full) {
#endif
}

void oled_task_user(void) {
bool oled_task_user(void) {
  if(is_keyboard_master()){
    render_status();
  }else{
    render_logo();
    render_rgbled_status(true);
  }
    return false;
}
#endif

M keyboards/helix/rev3_4rows/rev3_4rows.c => keyboards/helix/rev3_4rows/rev3_4rows.c +3 -2
@@ 83,8 83,8 @@ char *sprint2d(char *buf, char *leadstr, int data) {
    return sprint_decimal(buf, data);
}

__attribute__((weak))
void oled_task_user(void) {
bool oled_task_kb(void) {
    if (!oled_task_user()) { return false; }
    static const char PROGMEM helix_logo[] = {
        0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94,
        0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4,


@@ 109,5 109,6 @@ void oled_task_user(void) {
    } else {
        oled_write_P(helix_logo, false);
    }
    return false;
}
#endif

M keyboards/helix/rev3_5rows/keymaps/default/oled_display.c => keyboards/helix/rev3_5rows/keymaps/default/oled_display.c +2 -1
@@ 101,12 101,13 @@ static void render_rgbled_status(bool full) {
#endif
}

void oled_task_user(void) {
bool oled_task_user(void) {
  if(is_keyboard_master()){
    render_status();
  }else{
    render_logo();
    render_rgbled_status(true);
  }
    return false;
}
#endif

M keyboards/helix/rev3_5rows/keymaps/five_rows/oled_display.c => keyboards/helix/rev3_5rows/keymaps/five_rows/oled_display.c +2 -1
@@ 214,7 214,7 @@ void iota_gfx_task_user(void) {
    matrix_update(&display, &matrix);
}
#    else
void oled_task_user(void) {
bool oled_task_user(void) {

#        if DEBUG_TO_SCREEN
    if (debug_enable) {


@@ 227,6 227,7 @@ void oled_task_user(void) {
    }else{
        render_logo();
    }
    return false;
}
#    endif


M keyboards/helix/rev3_5rows/keymaps/via/oled_display.c => keyboards/helix/rev3_5rows/keymaps/via/oled_display.c +2 -1
@@ 101,12 101,13 @@ static void render_rgbled_status(bool full) {
#endif
}

void oled_task_user(void) {
bool oled_task_user(void) {
  if(is_keyboard_master()){
    render_status();
  }else{
    render_logo();
    render_rgbled_status(true);
  }
    return false;
}
#endif

M keyboards/helix/rev3_5rows/rev3_5rows.c => keyboards/helix/rev3_5rows/rev3_5rows.c +3 -2
@@ 83,8 83,8 @@ char *sprint2d(char *buf, char *leadstr, int data) {
    return sprint_decimal(buf, data);
}

__attribute__((weak))
void oled_task_user(void) {
bool oled_task_kb(void) {
    if (!oled_task_user()) { return false; }
    static const char PROGMEM helix_logo[] = {
        0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94,
        0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4,


@@ 109,5 109,6 @@ void oled_task_user(void) {
    } else {
        oled_write_P(helix_logo, false);
    }
    return false;
}
#endif

M keyboards/jagdpietr/drakon/drakon.c => keyboards/jagdpietr/drakon/drakon.c +8 -6
@@ 37,10 37,8 @@ _FN,
_Lyr2
};

__attribute__((weak))
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return OLED_ROTATION_90;  // flips the display 90 degrees if offhand

oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
    return OLED_ROTATION_90;
}

static void render_status(void) {


@@ 210,8 208,11 @@ static void render_anim(void) {
        }
    }
}
__attribute__((weak))
void oled_task_user(void) {

bool oled_task_kb(void) {
    if (!oled_task_user()) {
        return false;
    }

        render_anim();
        oled_set_cursor(0,6);


@@ 221,6 222,7 @@ void oled_task_user(void) {

        render_status();

    return false;
    }

#endif

M keyboards/keybage/radpad/keymaps/default/keymap.c => keyboards/keybage/radpad/keymaps/default/keymap.c +2 -1
@@ 126,7 126,7 @@ static void render_logo(void) {
    oled_write_raw_P(radpad_logo, sizeof(radpad_logo));
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (oled_logo_cleared) {
        render_status();
    } else {


@@ 138,5 138,6 @@ void oled_task_user(void) {
            render_logo();
        }
    }
    return false;
}
#endif

M keyboards/keycapsss/kimiko/keymaps/default/keymap.c => keyboards/keycapsss/kimiko/keymaps/default/keymap.c +2 -1
@@ 321,12 321,13 @@ void render_status_secondary(void) {
    render_space();
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_master()) {
        render_status_main();  // Renders the current keyboard state (layer, lock, caps, scroll, etc)
    } else {
        render_status_secondary();
    }
    return false;
}

#endif

M keyboards/keycapsss/plaid_pad/keymaps/default/keymap.c => keyboards/keycapsss/plaid_pad/keymaps/default/keymap.c +2 -1
@@ 35,8 35,9 @@ void keyboard_post_init_user(void) {

// Rev3 and above only
#ifdef OLED_ENABLE
void oled_task_user(void) {
bool oled_task_user(void) {
  oled_write_ln_P(PSTR("Plaid-Pad ///////////"), false);
    return false;
}
#endif


M keyboards/keycapsss/plaid_pad/keymaps/oled/keymap.c => keyboards/keycapsss/plaid_pad/keymaps/oled/keymap.c +2 -1
@@ 117,9 117,10 @@ void oled_render_layer_state(void) {
}


void oled_task_user(void) {
bool oled_task_user(void) {
  oled_write_ln_P(PSTR("Plaid-Pad ///////////"), false);
  oled_render_layer_state();
    return false;
}

#endif

M keyboards/keycapsss/plaid_pad/keymaps/via/keymap.c => keyboards/keycapsss/plaid_pad/keymaps/via/keymap.c +2 -1
@@ 62,8 62,9 @@ void keyboard_post_init_user(void) {

// Rev3 and above only
#ifdef OLED_ENABLE
void oled_task_user(void) {
bool oled_task_user(void) {
  oled_write_ln_P(PSTR("Plaid-Pad ///////////"), false);
    return false;
}
#endif


M keyboards/kikoslab/kl90/keymaps/default/keymap.c => keyboards/kikoslab/kl90/keymaps/default/keymap.c +2 -1
@@ 140,7 140,8 @@ static void render_anim(void){
    }
}

void oled_task_user(void) {
bool oled_task_user(void) {
    render_anim();
    return false;
}
#endif

M keyboards/kikoslab/kl90/keymaps/via/keymap.c => keyboards/kikoslab/kl90/keymaps/via/keymap.c +2 -1
@@ 140,7 140,8 @@ static void render_anim(void){
    }
}

void oled_task_user(void) {
bool oled_task_user(void) {
    render_anim();
    return false;
}
#endif

M keyboards/kingly_keys/romac/keymaps/boss566y/keymap.c => keyboards/kingly_keys/romac/keymaps/boss566y/keymap.c +2 -1
@@ 76,7 76,7 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return OLED_ROTATION_270;
}

void oled_task_user(void) {
bool oled_task_user(void) {
  // Host Keyboard Layer Status
    sprintf(oled_layer,"Layer\nL: %d\n",get_highest_layer(layer_state));
    oled_write(oled_layer,false);


@@ 86,5 86,6 @@ void oled_task_user(void) {
    oled_write_P(led_state.num_lock ? PSTR("NLCK ") : PSTR("     "), false);
    oled_write_P(led_state.caps_lock ? PSTR("CAPS ") : PSTR("       "), false);
    oled_write_P(led_state.scroll_lock ? PSTR("SCRLK") : PSTR("       "), false);
    return false;
}
#endif

M keyboards/kingly_keys/romac_plus/keymaps/default/keymap.c => keyboards/kingly_keys/romac_plus/keymaps/default/keymap.c +3 -1
@@ 41,7 41,7 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return OLED_ROTATION_270;  // flips the display 180 degrees if offhand
}

void oled_task_user(void) {
bool oled_task_user(void) {
  // Host Keyboard Layer Status
  oled_write_P(PSTR("Let's\nbuild\nsome-\nthing\nto-\nget-\nher!"), false);
  switch (get_highest_layer(layer_state)) {


@@ 61,5 61,7 @@ void oled_task_user(void) {
  oled_write_P(IS_LED_ON(led_usb_state, USB_LED_NUM_LOCK) ? PSTR("NLCK ") : PSTR("     "), false);
  oled_write_P(IS_LED_ON(led_usb_state, USB_LED_CAPS_LOCK) ? PSTR("CAPS ") : PSTR("       "), false);
  oled_write_P(IS_LED_ON(led_usb_state, USB_LED_SCROLL_LOCK) ? PSTR("SCRLK") : PSTR("       "), false);

    return false;
}
#endif

M keyboards/kiwikey/wanderland/keymaps/stanrc85/keymap.c => keyboards/kiwikey/wanderland/keymaps/stanrc85/keymap.c +3 -1
@@ 51,7 51,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};

#ifdef OLED_ENABLE
void oled_task_user(void) {
bool oled_task_user(void) {
  static const char PROGMEM qmk_logo[] = {
        0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94,
        0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4,


@@ 81,5 81,7 @@ void oled_task_user(void) {
    oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR("    "), false);
    oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR("    "), false);
    oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR("    "), false);

    return false;
}
#endif

M keyboards/knobgoblin/keymaps/moults31/keymap.c => keyboards/knobgoblin/keymaps/moults31/keymap.c +2 -1
@@ 141,7 141,7 @@ static void render_goblin_logo(void) {
    oled_write_raw_P(my_logo, sizeof(my_logo));
}

void oled_task_user(void) {
bool oled_task_user(void) {

	render_goblin_logo();



@@ 167,4 167,5 @@ void oled_task_user(void) {
			oled_write_P(PSTR(" NONE\n"), false);
			break;
	}
    return false;
}

M keyboards/knobgoblin/knobgoblin.c => keyboards/knobgoblin/knobgoblin.c +8 -2
@@ 40,7 40,9 @@ bool encoder_update_kb(uint8_t index, bool clockwise) {

#ifdef OLED_ENABLE
/* rotate screen for proper orentation*/
__attribute__((weak)) oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_270; }
oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
    return OLED_ROTATION_270;
}

/* byte map for the goblin logo, knob goblin text, and level text */
static void render_goblin_logo(void) {


@@ 72,7 74,10 @@ static void render_goblin_logo(void) {
}

/* text display for layer indication */
__attribute__((weak)) void oled_task_user(void) {
bool oled_task_kb(void) {
    if (!oled_task_user()) {
        return false;
    }

	render_goblin_logo();



@@ 99,5 104,6 @@ __attribute__((weak)) void oled_task_user(void) {
			break;

	}
    return false;
}
#endif

M keyboards/latinpad/keymaps/default/keymap.c => keyboards/latinpad/keymaps/default/keymap.c +4 -1
@@ 49,7 49,10 @@ static void render_logo(void) {
}

#ifdef OLED_ENABLE
void oled_task_user(void) { render_logo(); }
bool oled_task_user(void) {
    render_logo();
    return false;
}
#endif

bool encoder_update_user(uint8_t index, bool clockwise) {

M keyboards/latinpad/keymaps/via/keymap.c => keyboards/latinpad/keymaps/via/keymap.c +4 -1
@@ 47,7 47,10 @@ static void render_logo(void) {
}

#ifdef OLED_ENABLE
void oled_task_user(void) { render_logo(); }
bool oled_task_user(void) {
    render_logo();
    return false;
}
#endif

bool encoder_update_user(uint8_t index, bool clockwise) {

M keyboards/latinpadble/keymaps/default/keymap.c => keyboards/latinpadble/keymaps/default/keymap.c +4 -1
@@ 35,7 35,10 @@ static void render_logo(void) {
}

#ifdef OLED_ENABLE
void oled_task_user(void) { render_logo(); }
bool oled_task_user(void) {
    render_logo();
    return false;
}
#endif

bool encoder_update_user(uint8_t index, bool clockwise) {

M keyboards/latinpadble/keymaps/via/keymap.c => keyboards/latinpadble/keymaps/via/keymap.c +4 -1
@@ 64,7 64,10 @@ static void render_logo(void) {
}

#ifdef OLED_ENABLE
void oled_task_user(void) { render_logo(); }
bool oled_task_user(void) {
    render_logo();
    return false;
}
#endif

bool encoder_update_user(uint8_t index, bool clockwise) {

M keyboards/lck75/lck75.c => keyboards/lck75/lck75.c +6 -3
@@ 33,11 33,14 @@ bool encoder_update_kb(uint8_t index, bool clockwise) {
#define ANIM_FRAME_DURATION 200
#define ANIM_SIZE 512
#ifdef OLED_ENABLE
__attribute__((weak)) oled_rotation_t oled_init_user(oled_rotation_t rotation) {
oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
    return OLED_ROTATION_180;
}

__attribute__((weak)) void oled_task_user(void) {
bool oled_task_kb(void) {
    if (!oled_task_user()) {
        return false;
    }
static uint32_t anim_timer = 0;
static uint32_t anim_sleep = 0;
static uint8_t current_idle_frame = 0;


@@ 140,6 143,6 @@ static uint8_t current_tap_frame = 0;
            }
        }
    }

    return false;
}
#endif

M keyboards/le_chiffre/keymaps/default/keymap.c => keyboards/le_chiffre/keymaps/default/keymap.c +3 -1
@@ 185,13 185,15 @@ void render_mod_status(uint8_t modifiers) {
    oled_write_ln_P(PSTR("GUI"), (modifiers & MOD_MASK_GUI));
}

void oled_task_user(void) {
bool oled_task_user(void) {
    render_lechiffre_logo();
    oled_set_cursor(0,3);
    render_layer_status();	// Renders the current keyboard state (layer, lock, caps, scroll, etc)
	render_mod_status(get_mods()|get_oneshot_mods());
	render_keylock_status(host_keyboard_led_state());
	render_keylogger_status();

    return false;
}

bool process_record_user(uint16_t keycode, keyrecord_t *record) {

M keyboards/le_chiffre/keymaps/via/keymap.c => keyboards/le_chiffre/keymaps/via/keymap.c +2 -1
@@ 144,13 144,14 @@ void render_mod_status(uint8_t modifiers) {
    oled_write_ln_P(PSTR("GUI"), (modifiers & MOD_MASK_GUI));
}

void oled_task_user(void) {
bool oled_task_user(void) {
    render_lechiffre_logo();
    oled_set_cursor(0,3);
    // render_layer_status();	// Renders the current keyboard state (layer, lock, caps, scroll, etc)
	render_mod_status(get_mods()|get_oneshot_mods());
	render_keylock_status(host_keyboard_led_state());
	render_keylogger_status();
    return false;
}

bool process_record_user(uint16_t keycode, keyrecord_t *record) {

M keyboards/lefty/lefty.c => keyboards/lefty/lefty.c +4 -1
@@ 17,7 17,10 @@
#include "lefty.h"

#ifdef OLED_ENABLE
__attribute__((weak)) void oled_task_user(void) {
bool oled_task_kb(void) {
    if (!oled_task_user()) {
        return false;
    }
    // Host Keyboard Layer Status
    oled_write_P(PSTR("Layer: "), false);


M keyboards/lily58/keymaps/barabas/keymap.c => keyboards/lily58/keymaps/barabas/keymap.c +2 -1
@@ 171,7 171,7 @@ void write_layer_state(void) {
    oled_advance_page(true);
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_master()) {
        write_layer_state();
        oled_write_ln(read_keylog(), false);


@@ 179,6 179,7 @@ void oled_task_user(void) {
    } else {
        oled_write(read_logo(), false);
    }
    return false;
}
#endif  // OLED_ENABLE


M keyboards/lily58/keymaps/chuan/keymap.c => keyboards/lily58/keymaps/chuan/keymap.c +2 -1
@@ 152,7 152,7 @@ const char *read_timelog(void);

char encoder_debug[24];

void oled_task_user(void) {
bool oled_task_user(void) {
  // Host Keyboard Layer Status
  snprintf(encoder_debug, sizeof(encoder_debug), "%i   %i", counter, lastIndex );
  if (is_keyboard_master()) {


@@ 168,6 168,7 @@ void oled_task_user(void) {
    oled_write(read_logo(), false);
    // oled_write_ln(encoder_debug, false);
  }
    return false;
}
#endif //OLED_ENABLE


M keyboards/lily58/keymaps/cykedev/keymap.c => keyboards/lily58/keymaps/cykedev/keymap.c +2 -2
@@ 114,8 114,8 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {

const char *read_logo(void);

void oled_task_user(void) {
bool oled_task_user(void) {
  oled_write_ln(read_logo(), false);
    return false;
}
#endif // OLED_ENABLE


M keyboards/lily58/keymaps/datadavd/keymap.c => keyboards/lily58/keymaps/datadavd/keymap.c +2 -2
@@ 219,12 219,13 @@ static void render_lfc_logo(void) {
  oled_write_raw_P(my_lfc_logo, sizeof(my_lfc_logo));
}

void oled_task_user(void) {
bool oled_task_user(void) {
  if (is_keyboard_master()) {
    render_logo();
  } else {
    render_lfc_logo();
  }
    return false;
}
#endif // OLED_ENABLE



@@ 263,4 264,3 @@ const char *read_layer_state(void) {

  return layer_state_str;
}


M keyboards/lily58/keymaps/default/keymap.c => keyboards/lily58/keymaps/default/keymap.c +2 -1
@@ 122,7 122,7 @@ const char *read_keylogs(void);
// void set_timelog(void);
// const char *read_timelog(void);

void oled_task_user(void) {
bool oled_task_user(void) {
  if (is_keyboard_master()) {
    // If you want to change the display of OLED, you need to change here
    oled_write_ln(read_layer_state(), false);


@@ 134,6 134,7 @@ void oled_task_user(void) {
  } else {
    oled_write(read_logo(), false);
  }
    return false;
}
#endif // OLED_ENABLE


M keyboards/lily58/keymaps/domnantas/keymap.c => keyboards/lily58/keymaps/domnantas/keymap.c +16 -15
@@ 1,18 1,18 @@
 /* Copyright 2020 Domantas Petrauskas
  * 
  * 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/>. 
  */ 
  *
  * 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 <stdio.h>


@@ 275,10 275,11 @@ static void render_status(void) {
    oled_write_ln_P(PSTR("caps"), led_state.caps_lock);
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_left()) {
        render_status();
    } else {
        render_bongo_cat();
    }
    return false;
}

M keyboards/lily58/keymaps/drasbeck/keymap.c => keyboards/lily58/keymaps/drasbeck/keymap.c +2 -1
@@ 92,7 92,7 @@ void set_keylog(uint16_t keycode, keyrecord_t *record);
// void set_timelog(void);
// const char *read_timelog(void);

void oled_task_user(void) {
bool oled_task_user(void) {
  if (is_keyboard_master()) {
    // If you want to change the display of OLED, you need to change here
    oled_write_ln(read_layer_state(), false);


@@ 104,6 104,7 @@ void oled_task_user(void) {
  } else {
    oled_write(read_logo(), false);
  }
    return false;
}
#endif // OLED_ENABLE


M keyboards/lily58/keymaps/lily58l/keymap.c => keyboards/lily58/keymaps/lily58l/keymap.c +2 -1
@@ 271,13 271,14 @@ void render_status_main(void) {
    render_keylogger_status();
}

void oled_task_user(void) {
bool oled_task_user(void) {
  update_log();
  if (is_keyboard_master()) {
    render_status_main();  // Renders the current keyboard state (layer, lock, caps, scroll, etc)
  } else {
    render_lily58_logo();
  }
    return false;
}

bool process_record_user(uint16_t keycode, keyrecord_t *record) {

M keyboards/lily58/keymaps/mikefightsbears/keymap.c => keyboards/lily58/keymaps/mikefightsbears/keymap.c +2 -2
@@ 156,7 156,7 @@ const char *read_keylogs(void);
// void set_timelog(void);
// const char *read_timelog(void);

void oled_task_user(void) {
bool oled_task_user(void) {
  if (is_keyboard_master()) {
    // If you want to change the display of OLED, you need to change here
    oled_write_ln(read_layer_state(), false);


@@ 168,6 168,7 @@ void oled_task_user(void) {
  } else {
    oled_write(read_logo(), false);
  }
    return false;
}
#endif // OLED_ENABLE



@@ 211,4 212,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  }
  return true;
}


M keyboards/lily58/keymaps/muuko/keymap.c => keyboards/lily58/keymaps/muuko/keymap.c +2 -1
@@ 174,11 174,12 @@ static void render_anim(void) {
    }
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_master()) {
        render_status();
    } else {
        render_anim();
    }
    return false;
}
#endif

M keyboards/lily58/keymaps/narze/keymap.c => keyboards/lily58/keymaps/narze/keymap.c +2 -1
@@ 299,7 299,7 @@ const char *read_timelog(void);

char encoder_debug[24];

void oled_task_user(void) {
bool oled_task_user(void) {
  // Host Keyboard Layer Status
  if (is_keyboard_master()) {
    // If you want to change the display of OLED, you need to change here


@@ 313,6 313,7 @@ void oled_task_user(void) {
    oled_write(read_logo(), false);
    // oled_write_ln(encoder_debug, false);
  }
    return false;
}

#endif //OLED_ENABLE

M keyboards/lily58/keymaps/via/keymap.c => keyboards/lily58/keymaps/via/keymap.c +2 -1
@@ 186,7 186,7 @@ const char *read_keylogs(void) {
}
//new

void oled_task_user(void) {
bool oled_task_user(void) {
  if (is_keyboard_master()) {
    // Host Keyboard Layer Status
    oled_write_P(PSTR("Layer: "), false);


@@ 214,6 214,7 @@ void oled_task_user(void) {
  } else {
      render_logo();
  }
    return false;
}
#endif // OLED_ENABLE


M keyboards/lily58/keymaps/yshrsmz/keymap.c => keyboards/lily58/keymaps/yshrsmz/keymap.c +2 -1
@@ 158,7 158,7 @@ const char *read_keylogs(void);
// void set_timelog(void);
// const char *read_timelog(void);

void oled_task_user(void) {
bool oled_task_user(void) {
  if (is_keyboard_master()) {
    // If you want to change the display of OLED, you need to change here
    oled_write_ln(read_layer_state(), false);


@@ 170,6 170,7 @@ void oled_task_user(void) {
  } else {
    oled_write(read_logo(), false);
  }
    return false;
}
#endif // OLED_ENABLE


M keyboards/lily58/keymaps/yuchi/keymap.c => keyboards/lily58/keymaps/yuchi/keymap.c +2 -1
@@ 140,7 140,7 @@ const char *read_keylogs(void);
// void set_timelog(void);
// const char *read_timelog(void);

void oled_task_user(void) {
bool oled_task_user(void) {
  if (is_keyboard_master()) {
    // If you want to change the display of OLED, you need to change here
    oled_write_ln(read_layer_state(), false);


@@ 152,6 152,7 @@ void oled_task_user(void) {
  } else {
    oled_write(read_logo(), false);
  }
    return false;
}
#endif // OLED_ENABLE


M keyboards/lyra/lyra.c => keyboards/lyra/lyra.c +53 -49
@@ 1,31 1,34 @@
 /* Copyright 2021 Domanic Calleja
  * 
  * 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/>. 
  */ 
  *
  * 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 "lyra.h"

#ifdef OLED_DRIVER_ENABLE

// 'lyralogooled', 32x128px
__attribute__((weak)) oled_rotation_t oled_init_user(oled_rotation_t rotation) {
oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
    if (is_keyboard_master()) {
        return OLED_ROTATION_270;
    }
    return rotation;
}

__attribute__((weak)) void oled_task_user(void) {
bool oled_task_kb(void) {
    if (!oled_task_user()) {
        return false;
    }
    if (is_keyboard_master()) {
        oled_write_P(PSTR("      "), false);
#    ifdef WPM_ENABLE


@@ 50,40 53,41 @@ __attribute__((weak)) void oled_task_user(void) {
        oled_write_P(PSTR("Dom C"), false);
    } else {
        static const char PROGMEM QMK_logo[] = {
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0x78, 0x18, 0x0c, 0x04, 0x06, 0x02, 
            0x02, 0x82, 0xc0, 0xf0, 0x38, 0x8c, 0xf2, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
            0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
            0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0x40, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
            0x00, 0x00, 0x00, 0x80, 0x40, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x1f, 0x18, 0x30, 0x20, 0xa0, 0xe0, 0xf8, 
            0x3e, 0x1f, 0x13, 0x0c, 0x06, 0xc3, 0xf0, 0x60, 0x00, 0x80, 0xf0, 0xe0, 0x00, 0x38, 0xfe, 0x67, 
            0x7b, 0xa5, 0xf3, 0xf0, 0x70, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xe0, 0x70, 0x30, 0x20, 0x00, 0x00, 
            0x00, 0x80, 0x00, 0x00, 0x00, 0x7f, 0xc0, 0xdd, 0xdd, 0xdd, 0xe3, 0x7e, 0x3c, 0x3e, 0x61, 0xdf, 
            0xde, 0xde, 0x01, 0xff, 0xfe, 0x00, 0x80, 0x80, 0x80, 0xff, 0xc0, 0xdf, 0xdf, 0xdf, 0xe0, 0xff, 
            0x7f, 0x3c, 0x62, 0xdd, 0xdd, 0xdd, 0xe3, 0x7e, 0x3c, 0xfe, 0xc1, 0xfd, 0x7d, 0xc3, 0xfd, 0x7d, 
            0xc3, 0xfe, 0xfc, 0x30, 0xea, 0xd5, 0xd5, 0xd5, 0xc3, 0xff, 0xfe, 0x7e, 0xc1, 0xfd, 0x7d, 0x7d, 
            0xc3, 0xfe, 0xfc, 0x3f, 0xe1, 0xff, 0xff, 0x3c, 0x62, 0xdd, 0xdd, 0xdd, 0xf7, 0xe6, 0x00, 0x00, 
            0x00, 0x78, 0xc4, 0xc2, 0x82, 0x82, 0x82, 0x82, 0xc2, 0xe4, 0x74, 0x7c, 0x3f, 0x1f, 0x31, 0x60, 
            0xe0, 0xc0, 0x80, 0x9c, 0xbf, 0xe7, 0xf1, 0x78, 0x3e, 0x1f, 0x0b, 0x04, 0x02, 0x01, 0x00, 0x1c, 
            0x3e, 0x2f, 0x13, 0x10, 0x0c, 0x1e, 0x3f, 0x2f, 0x13, 0x09, 0x1c, 0x3e, 0x2f, 0x10, 0x08, 0x06, 
            0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x06, 
            0x06, 0x06, 0x07, 0x03, 0x7f, 0xc1, 0xbe, 0xbe, 0xbe, 0xa6, 0xe7, 0xc7, 0x60, 0xd4, 0xaa, 0xaa, 
            0xaa, 0x86, 0xfe, 0xfc, 0x7f, 0xc0, 0xff, 0xff, 0x7f, 0xc0, 0xff, 0xff, 0xc4, 0xaa, 0xaa, 0xaa, 
            0xa6, 0xfc, 0xf8, 0xff, 0x02, 0xff, 0xff, 0x60, 0xd4, 0xaa, 0xaa, 0xaa, 0x86, 0xfe, 0xfc, 0x00, 
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
            0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x28, 0x24, 
            0x32, 0x1b, 0x1f, 0x0f, 0x0f, 0x1f, 0x1f, 0x3c, 0x38, 0x38, 0x78, 0x70, 0x70, 0x70, 0x30, 0x38, 
            0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 
            0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 
            0x01, 0x01, 0x07, 0x0d, 0x0e, 0x07, 0x03, 0x00, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0x78, 0x18, 0x0c, 0x04, 0x06, 0x02,
            0x02, 0x82, 0xc0, 0xf0, 0x38, 0x8c, 0xf2, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
            0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
            0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0x40, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
            0x00, 0x00, 0x00, 0x80, 0x40, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x1f, 0x18, 0x30, 0x20, 0xa0, 0xe0, 0xf8,
            0x3e, 0x1f, 0x13, 0x0c, 0x06, 0xc3, 0xf0, 0x60, 0x00, 0x80, 0xf0, 0xe0, 0x00, 0x38, 0xfe, 0x67,
            0x7b, 0xa5, 0xf3, 0xf0, 0x70, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xe0, 0x70, 0x30, 0x20, 0x00, 0x00,
            0x00, 0x80, 0x00, 0x00, 0x00, 0x7f, 0xc0, 0xdd, 0xdd, 0xdd, 0xe3, 0x7e, 0x3c, 0x3e, 0x61, 0xdf,
            0xde, 0xde, 0x01, 0xff, 0xfe, 0x00, 0x80, 0x80, 0x80, 0xff, 0xc0, 0xdf, 0xdf, 0xdf, 0xe0, 0xff,
            0x7f, 0x3c, 0x62, 0xdd, 0xdd, 0xdd, 0xe3, 0x7e, 0x3c, 0xfe, 0xc1, 0xfd, 0x7d, 0xc3, 0xfd, 0x7d,
            0xc3, 0xfe, 0xfc, 0x30, 0xea, 0xd5, 0xd5, 0xd5, 0xc3, 0xff, 0xfe, 0x7e, 0xc1, 0xfd, 0x7d, 0x7d,
            0xc3, 0xfe, 0xfc, 0x3f, 0xe1, 0xff, 0xff, 0x3c, 0x62, 0xdd, 0xdd, 0xdd, 0xf7, 0xe6, 0x00, 0x00,
            0x00, 0x78, 0xc4, 0xc2, 0x82, 0x82, 0x82, 0x82, 0xc2, 0xe4, 0x74, 0x7c, 0x3f, 0x1f, 0x31, 0x60,
            0xe0, 0xc0, 0x80, 0x9c, 0xbf, 0xe7, 0xf1, 0x78, 0x3e, 0x1f, 0x0b, 0x04, 0x02, 0x01, 0x00, 0x1c,
            0x3e, 0x2f, 0x13, 0x10, 0x0c, 0x1e, 0x3f, 0x2f, 0x13, 0x09, 0x1c, 0x3e, 0x2f, 0x10, 0x08, 0x06,
            0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x06,
            0x06, 0x06, 0x07, 0x03, 0x7f, 0xc1, 0xbe, 0xbe, 0xbe, 0xa6, 0xe7, 0xc7, 0x60, 0xd4, 0xaa, 0xaa,
            0xaa, 0x86, 0xfe, 0xfc, 0x7f, 0xc0, 0xff, 0xff, 0x7f, 0xc0, 0xff, 0xff, 0xc4, 0xaa, 0xaa, 0xaa,
            0xa6, 0xfc, 0xf8, 0xff, 0x02, 0xff, 0xff, 0x60, 0xd4, 0xaa, 0xaa, 0xaa, 0x86, 0xfe, 0xfc, 0x00,
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
            0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x28, 0x24,
            0x32, 0x1b, 0x1f, 0x0f, 0x0f, 0x1f, 0x1f, 0x3c, 0x38, 0x38, 0x78, 0x70, 0x70, 0x70, 0x30, 0x38,
            0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01,
            0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01,
            0x01, 0x01, 0x07, 0x0d, 0x0e, 0x07, 0x03, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00,
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
        };
        oled_write_raw_P(QMK_logo, sizeof(QMK_logo));
    }
    return false;
}
#endif 
#endif

M keyboards/marksard/rhymestone/keymaps/default/keymap.c => keyboards/marksard/rhymestone/keymaps/default/keymap.c +2 -1
@@ 158,13 158,14 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
  return rotation;
}

void oled_task_user(void) {
bool oled_task_user(void) {

  if (is_keyboard_master()) {
    render_status();
  } else {
    render_logo();
  }
    return false;
}

#else

M keyboards/mechllama/g35/keymaps/default/keymap.c => keyboards/mechllama/g35/keymaps/default/keymap.c +2 -1
@@ 66,7 66,8 @@ const char* get_layer_name(uint8_t layer) {
    }
}

void oled_task_user(void) {
bool oled_task_user(void) {
    oled_write_ln_P(get_layer_name(biton32(layer_state)), false);
    return false;
}
#endif

M keyboards/mechwild/mercutio/keymaps/bongocat/keymap.c => keyboards/mechwild/mercutio/keymaps/bongocat/keymap.c +2 -1
@@ 187,12 187,13 @@ static void render_anim(void) {
    }
}

void oled_task_user(void) {
bool oled_task_user(void) {
        render_anim();
        oled_set_cursor(0,4);
        sprintf(wpm_str, "WPM: %03d", get_current_wpm());
        oled_write(wpm_str, false);

    return false;
}

#endif

M keyboards/mechwild/mercutio/keymaps/default/keymap.c => keyboards/mechwild/mercutio/keymaps/default/keymap.c +2 -1
@@ 76,7 76,8 @@ static void render_name(void) {
    oled_write_P(mercutio_name, false);
}

void oled_task_user(void) {
bool oled_task_user(void) {
    render_name();
    return false;
}
#endif

M keyboards/mechwild/mercutio/keymaps/fancy/keymap.c => keyboards/mechwild/mercutio/keymaps/fancy/keymap.c +2 -1
@@ 107,7 107,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
        oled_write_P(logo_4, false);
    }

    void oled_task_user(void) {
    bool oled_task_user(void) {

        if ( IS_HOST_LED_OFF(USB_LED_NUM_LOCK) && IS_HOST_LED_OFF(USB_LED_CAPS_LOCK) && selected_layer == 0 && get_highest_layer(layer_state) == 0 ) {
            render_name();


@@ 164,5 164,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
            oled_write_P(led_state.num_lock ? PSTR("NLCK ") : PSTR("     "), false);
            oled_write_P(led_state.caps_lock ? PSTR("CAPS ") : PSTR("     "), false);
        }
    return false;
    }
#endif

M keyboards/mechwild/mercutio/keymaps/jonavin/keymap.c => keyboards/mechwild/mercutio/keymaps/jonavin/keymap.c +2 -1
@@ 188,7 188,7 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
        oled_write_P(logo_4, false);
    }

    void oled_task_user(void) {
    bool oled_task_user(void) {

        if ( IS_HOST_LED_OFF(USB_LED_NUM_LOCK) && IS_HOST_LED_OFF(USB_LED_CAPS_LOCK) && get_selected_layer() == 0 && get_highest_layer(layer_state) == 0 ) {
            render_name();


@@ 263,6 263,7 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {

        }

    return false;
    }

    void suspend_power_down_user(void) {  // shutdown oled when powered down to prevent OLED from showing Mercutio all the time

M keyboards/mechwild/mercutio/keymaps/via/keymap.c => keyboards/mechwild/mercutio/keymaps/via/keymap.c +2 -1
@@ 76,7 76,8 @@ static void render_name(void) {
    oled_write_P(mercutio_name, false);
}

void oled_task_user(void) {
bool oled_task_user(void) {
    render_name();
    return false;
}
#endif

M keyboards/mechwild/murphpad/keymaps/default/keymap.c => keyboards/mechwild/murphpad/keymaps/default/keymap.c +2 -1
@@ 115,7 115,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
		oled_write_P(logo_4, false);
	}

	void oled_task_user(void) {
	bool oled_task_user(void) {
		render_logo();
		oled_set_cursor(0,6);



@@ 143,5 143,6 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
    oled_write_ln_P(led_state.num_lock ? PSTR("NUM ") : PSTR("    "), false);
    oled_write_ln_P(led_state.caps_lock ? PSTR("CAP ") : PSTR("    "), false);
    oled_write_ln_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR("    "), false);
    return false;
	}
#endif

M keyboards/mechwild/murphpad/keymaps/jonavin/keymap.c => keyboards/mechwild/murphpad/keymaps/jonavin/keymap.c +4 -2
@@ 296,7 296,7 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
	}

    #ifdef LANDSCAPE_MODE
    void oled_task_user(void) {
    bool oled_task_user(void) {

        render_logo();
        oled_set_cursor(8,2);


@@ 359,6 359,7 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
        oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR("    "), false);
        oled_write_P(led_state.caps_lock ? PSTR("CAPS ") : PSTR("     "), false);
        oled_write_P(led_state.scroll_lock ? PSTR("SCR") : PSTR("   "), false);
    return false;
    }
    #endif // LANDSCAPE_MODE



@@ 368,7 369,7 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
		return OLED_ROTATION_270;       // flips the display 270 degrees
	}

    void oled_task_user(void) {
    bool oled_task_user(void) {
		render_logo();
		oled_set_cursor(0,5);



@@ 408,6 409,7 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
        oled_write_ln_P(led_state.num_lock ? PSTR(" NUM") : PSTR("    "), false);
        oled_write_ln_P(led_state.caps_lock ? PSTR(" CAP") : PSTR("    "), false);
        oled_write_ln_P(led_state.scroll_lock ? PSTR(" SCR") : PSTR("    "), false);
    return false;
    }
    #endif // !LANDSCAPE_MODE


M keyboards/mechwild/murphpad/keymaps/via/keymap.c => keyboards/mechwild/murphpad/keymaps/via/keymap.c +2 -1
@@ 113,7 113,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
		oled_write_P(logo_4, false);
	}

	void oled_task_user(void) {
	bool oled_task_user(void) {
		render_logo();
		oled_set_cursor(0,6);



@@ 141,5 141,6 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
    oled_write_ln_P(led_state.num_lock ? PSTR("NUM ") : PSTR("    "), false);
    oled_write_ln_P(led_state.caps_lock ? PSTR("CAP ") : PSTR("    "), false);
    oled_write_ln_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR("    "), false);
    return false;
	}
#endif

M keyboards/merge/um70/keymaps/default/keymap.c => keyboards/merge/um70/keymaps/default/keymap.c +2 -1
@@ 169,7 169,7 @@ static void print_status_narrow(void) {
    // WPM counter End
}

void oled_task_user(void) {
bool oled_task_user(void) {
    current_wpm = get_current_wpm();
    if (is_keyboard_master()) {
        print_status_narrow();


@@ 178,6 178,7 @@ void oled_task_user(void) {
        render_logo();
        //print_status_narrow();
    }
    return false;
}

#endif

M keyboards/merge/um70/keymaps/via/keymap.c => keyboards/merge/um70/keymaps/via/keymap.c +2 -1
@@ 173,7 173,7 @@ static void print_status_narrow(void) {
    // WPM counter End
}

void oled_task_user(void) {
bool oled_task_user(void) {
    current_wpm = get_current_wpm();
    if (is_keyboard_master()) {
        print_status_narrow();


@@ 182,6 182,7 @@ void oled_task_user(void) {
        render_logo();
        //print_status_narrow();
    }
    return false;
}

#endif

M keyboards/misonoworks/chocolatebar/chocolatebar.c => keyboards/misonoworks/chocolatebar/chocolatebar.c +7 -3
@@ 18,11 18,14 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#include "chocolatebar.h"

#ifdef OLED_ENABLE
__attribute__((weak)) oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return OLED_ROTATION_270;  // flips the display 180 degrees if offhand
oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
    return OLED_ROTATION_270;
}

__attribute__((weak)) void oled_task_user(void) {
bool oled_task_kb(void) {
    if (!oled_task_user()) {
        return false;
    }
    static const char PROGMEM base_logo[] = {// 'choccy oled base', 32x128px
                                             0xff, 0xff, 0xff, 0xff, 0x7f, 0x3f, 0x1f, 0x0f, 0x8f, 0xff, 0x7f, 0x1f, 0x0f, 0x0f, 0x1f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7f, 0x7f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7c, 0x38, 0x08, 0x04, 0x02, 0x03, 0xe3, 0x98, 0x08, 0x08, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x0c, 0x9e, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0xff, 0x03, 0x01, 0x01, 0xff, 0x00, 0x00, 0x00, 0x61, 0x63, 0xf7, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x30, 0x20, 0x20, 0x30, 0x3f, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x3c, 0x30, 0x20, 0x20, 0x30, 0x3f, 0x3e, 0x7e, 0xff, 0xff, 0xff, 0xff, 0xff,
                                             0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xfc, 0xbc, 0x14, 0x04, 0x04, 0x04, 0x04, 0x00, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, 0x14, 0xbc, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x3f, 0x7f, 0x3b, 0x30, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, 0x04, 0x00, 0x00, 0x00, 0x43, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x80, 0x80, 0xc3, 0xc3, 0xc2, 0xc2, 0xc2, 0xc3, 0xc2, 0xc0, 0xc0, 0xc2, 0xc3, 0xc2, 0xc2, 0xc2, 0x42, 0x43, 0xc0, 0x80, 0x80, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xbf, 0xdf, 0xef, 0x67, 0x9b, 0x9d, 0x6e, 0x75, 0xb3, 0xc5, 0xce, 0x57, 0xbb, 0xdc, 0xed, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,


@@ 46,5 49,6 @@ __attribute__((weak)) void oled_task_user(void) {
        default:
            oled_write_raw_P(base_logo, sizeof(base_logo));
    }
    return false;
}
#endif

M keyboards/montsinger/rebound/rev3/keymaps/rossman360/keymap.c => keyboards/montsinger/rebound/rev3/keymaps/rossman360/keymap.c +2 -1
@@ 75,7 75,7 @@ case _BASE:
}

#ifdef OLED_ENABLE
void oled_task_user(void) {
bool oled_task_user(void) {
    // Host Keyboard Layer Status
    oled_write_P(PSTR(""), false);



@@ 107,6 107,7 @@ void oled_task_user(void) {
    oled_write_P(led_state.caps_lock ? PSTR("CAPS") : PSTR("    "), false);
    oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR("    "), false);

    return false;
}

#endif

M keyboards/montsinger/rebound/rev4/keymaps/rossman360/keymap.c => keyboards/montsinger/rebound/rev4/keymaps/rossman360/keymap.c +2 -1
@@ 84,7 84,7 @@ case _DEL:
}

#ifdef OLED_ENABLE
void oled_task_user(void) {
bool oled_task_user(void) {
    // Host Keyboard Layer Status
    oled_write_P(PSTR(""), false);



@@ 116,6 116,7 @@ void oled_task_user(void) {
    oled_write_P(led_state.caps_lock ? PSTR("CAPS") : PSTR("    "), false);
    oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR("    "), false);

    return false;
}

#endif

M keyboards/nullbitsco/nibble/keymaps/oled/keymap.c => keyboards/nullbitsco/nibble/keymaps/oled/keymap.c +2 -1
@@ 83,8 83,9 @@ static void render_logo(void) {
    oled_write_raw_P(nibble_logo, sizeof(nibble_logo));
}

void oled_task_user(void) {
bool oled_task_user(void) {
    render_logo();
    return false;
}
#endif


M keyboards/nullbitsco/nibble/keymaps/oled_bongocat/keymap.c => keyboards/nullbitsco/nibble/keymaps/oled_bongocat/keymap.c +3 -1
@@ 155,7 155,7 @@ static void render_anim(void) {
    }
}

void oled_task_user(void) {
bool oled_task_user(void) {
    render_anim();
    oled_set_cursor(0, 14);



@@ 168,6 168,8 @@ void oled_task_user(void) {
    wpm_counter[1] = '0';
    wpm_counter[0] = '>';
    oled_write_ln(wpm_counter, false);

    return false;
}
#endif


M keyboards/nullbitsco/nibble/keymaps/oled_status/keymap.c => keyboards/nullbitsco/nibble/keymaps/oled_status/keymap.c +2 -1
@@ 51,11 51,12 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return OLED_ROTATION_180;
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (timer_elapsed(oled_timer) >= 3000) {
        set_oled_mode(OLED_MODE_IDLE);
    }
    render_frame();
    return false;
}
#endif


M keyboards/nullbitsco/nibble/keymaps/snailmap/keymap.c => keyboards/nullbitsco/nibble/keymaps/snailmap/keymap.c +68 -67
@@ 106,73 106,73 @@ static void write_pixel(int x, int y, bool onoff) {
static void render_background(void) {
    if (oled_horizontal) {
        static const char PROGMEM oled_keymap_horizontal[] = {
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
            0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 
            0x84, 0x80, 0x80, 0x80, 0x80, 0x04, 0x00, 0x00, 0x00, 0x80, 0x04, 0x00, 0x00, 0x00, 0x80, 0x04, 
            0x00, 0x00, 0x00, 0x80, 0x04, 0x00, 0x00, 0x00, 0x80, 0x04, 0x00, 0x00, 0x00, 0x80, 0x04, 0x00, 
            0x00, 0x00, 0x80, 0x04, 0x00, 0x00, 0x00, 0x80, 0x04, 0x00, 0x00, 0x00, 0x80, 0x04, 0x00, 0x00, 
            0x00, 0x80, 0x04, 0x00, 0x00, 0x00, 0x80, 0x04, 0x00, 0x00, 0x00, 0x80, 0x04, 0x00, 0x00, 0x00, 
            0x80, 0x04, 0x04, 0x04, 0x04, 0x84, 0x84, 0x84, 0x84, 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
            0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 
            0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 
            0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 
            0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 
            0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
            0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 
            0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
            0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 
            0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 
            0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 
            0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 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, 0x00, 
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
            0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, 0x00,
            0x84, 0x80, 0x80, 0x80, 0x80, 0x04, 0x00, 0x00, 0x00, 0x80, 0x04, 0x00, 0x00, 0x00, 0x80, 0x04,
            0x00, 0x00, 0x00, 0x80, 0x04, 0x00, 0x00, 0x00, 0x80, 0x04, 0x00, 0x00, 0x00, 0x80, 0x04, 0x00,
            0x00, 0x00, 0x80, 0x04, 0x00, 0x00, 0x00, 0x80, 0x04, 0x00, 0x00, 0x00, 0x80, 0x04, 0x00, 0x00,
            0x00, 0x80, 0x04, 0x00, 0x00, 0x00, 0x80, 0x04, 0x00, 0x00, 0x00, 0x80, 0x04, 0x00, 0x00, 0x00,
            0x80, 0x04, 0x04, 0x04, 0x04, 0x84, 0x84, 0x84, 0x84, 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00,
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
            0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, 0x00,
            0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10,
            0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00,
            0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
            0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
            0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00,
            0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
            0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00,
            0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02,
            0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02,
            0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 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, 0x00,
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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(oled_keymap_horizontal, sizeof(oled_keymap_horizontal));
    } else {
        static const char PROGMEM oled_keymap_vertical[] = {
            0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 
            0x00, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
            0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 
            0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
            0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
            0x00, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
            0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 
            0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
            0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 
            0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
            0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
            0x00, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
            0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 
            0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
            0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
            0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
            0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 
            0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
            0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 
            0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
            0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
            0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00,
            0x00, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
            0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00,
            0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
            0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
            0x00, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
            0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00,
            0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
            0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00,
            0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
            0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
            0x00, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
            0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00,
            0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
            0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
            0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
            0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00,
            0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
            0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00,
            0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
            0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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(oled_keymap_vertical, sizeof(oled_keymap_vertical));


@@ 257,7 257,7 @@ static void render_keymap(uint8_t key_row, uint8_t key_col, bool onoff) {
    int top    = keymap_coords[key_row][key_col][1] + keymap_template[1];
    int right  = left + length - 1;
    int bottom = top + 4;
    

    // Special case 1 - Draw enter key on ISO layout, return
    if ((ansi_layout == false) && (key_row == 2) && (key_col == 14)) {
        for (int i = 0; i < 10; i++) {


@@ 427,7 427,7 @@ static void render_wpm_graph(int current_wpm) {
}

// Call OLED functions
void oled_task_user(void) {
bool oled_task_user(void) {
    // Draw OLED keyboard, prevent redraw
    if (first_loop) {
        render_background();


@@ 456,6 456,7 @@ void oled_task_user(void) {
        render_wpm_graph(current_wpm);
        timer = timer_read();
    }
    return false;
}
#endif



@@ 463,7 464,7 @@ void oled_task_user(void) {
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
    // Forwards keystrokes from an external input device over UART/TRRS
    process_record_remote_kb(keycode, record);
    

    #ifdef OLED_ENABLE
    // Toggle pixels surrounding key
    render_keymap(record->event.key.row, record->event.key.col, record->event.pressed);


@@ 472,7 473,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
    return true;
}

// Rotary encoder - RGB and OLED settings 
// Rotary encoder - RGB and OLED settings
void change_RGB(bool clockwise) {
    // While on any layer except default:       // Rotary         = RGB Mode
    bool shift = get_mods() & MOD_MASK_SHIFT;   // Rotary + Shift = OLED Brightness


@@ 539,4 540,4 @@ void matrix_init_user(void) {
// Scan and parse keystrokes from remote keyboard, if connected
void matrix_scan_user(void) {
    matrix_scan_remote_kb();
}
\ No newline at end of file
}

M keyboards/nullbitsco/scramble/keymaps/oled/keymap.c => keyboards/nullbitsco/scramble/keymaps/oled/keymap.c +2 -1
@@ 67,8 67,9 @@ static void render_logo(void) {
    oled_write_raw_P(nullbits_logo, sizeof(nullbits_logo));
}

void oled_task_user(void) {
bool oled_task_user(void) {
    render_logo();
    return false;
}
#endif


M keyboards/palette1202/keymaps/default/keymap.c => keyboards/palette1202/keymaps/default/keymap.c +2 -1
@@ 274,7 274,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {

// OLED Display
#ifdef OLED_ENABLE
void oled_task_user(void) {
bool oled_task_user(void) {
  // get layer Number
  uint8_t currentDefault = get_highest_layer(default_layer_state);
  uint8_t currentLayer = get_highest_layer(layer_state);


@@ 326,5 326,6 @@ void oled_task_user(void) {
    // pressed key / 4th line of the logo
    render_row(3, "    ");
  }
    return false;
}
#endif // #ifdef OLED_ENABLE

M keyboards/palette1202/keymaps/key-check/keymap.c => keyboards/palette1202/keymaps/key-check/keymap.c +2 -1
@@ 142,10 142,11 @@ bool encoder_update_user(uint8_t index, bool clockwise) {

// OLED Display
#ifdef OLED_ENABLE
void oled_task_user(void) {
bool oled_task_user(void) {
  render_row(0, "TEST");
  render_row(1, "test");
  render_row(2, "TEST");
  render_row(3, "test");
    return false;
}
#endif // #ifdef OLED_ENABLE

M keyboards/palette1202/palette1202.c => keyboards/palette1202/palette1202.c +2 -2
@@ 17,7 17,7 @@

// initialize OLED if OLED is enabled
#ifdef OLED_ENABLE
  oled_rotation_t oled_init_user(oled_rotation_t rotation) {
oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
    return OLED_ROTATION_180;
  }
}
#endif

M keyboards/pistachio_pro/keymaps/default/keymap.c => keyboards/pistachio_pro/keymaps/default/keymap.c +3 -3
@@ 83,12 83,12 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return OLED_ROTATION_180;
}

void oled_task_user(void) {
bool oled_task_user(void) {
    oled_write_ln_P(PSTR("  - PistachioPro -"), false);
    print_airstate();
    print_keylog();

    return;
    return false;
}

/* Encoder */


@@ 120,4 120,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
    }

    return true;
}
\ No newline at end of file
}

M keyboards/pistachio_pro/keymaps/rate/keymap.c => keyboards/pistachio_pro/keymaps/rate/keymap.c +3 -3
@@ 85,12 85,12 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return OLED_ROTATION_180;
}

void oled_task_user(void) {
bool oled_task_user(void) {
    oled_write_ln_P(PSTR("  - PistachioPro -"), false);
    print_airstate();
    print_keylog();

    return;
    return false;
}

/* Encoder */


@@ 122,4 122,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
    }

    return true;
}
\ No newline at end of file
}

M keyboards/pistachio_pro/keymaps/via/keymap.c => keyboards/pistachio_pro/keymaps/via/keymap.c +3 -3
@@ 101,12 101,12 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return OLED_ROTATION_180;
}

void oled_task_user(void) {
bool oled_task_user(void) {
    oled_write_ln_P(PSTR("  - PistachioPro -"), false);
    print_airstate();
    print_keylog();

    return;
    return false;
}

/* Encoder */


@@ 138,4 138,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
    }

    return true;
}
\ No newline at end of file
}

M keyboards/plut0nium/0x3e/keymaps/default/keymap.c => keyboards/plut0nium/0x3e/keymaps/default/keymap.c +13 -12
@@ 24,15 24,15 @@ enum layer_names {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    /* Base */
    [_QWERTY] = LAYOUT(
        KC_ESC,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,              KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_BSPC, 
        KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,              KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_BSLS,  
        MO(_FN), KC_A,    KC_S,    KC_D,    KC_F,    KC_G,              KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_ENT,  
        KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_PGUP,  KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT, 
        KC_LCTL, KC_LGUI, KC_MENU, KC_LALT, KC_SPC,  KC_SPC,  KC_PGDN,  KC_SPC,  KC_SPC,  KC_RALT, KC_LBRC, KC_RBRC, KC_RCTL  
        KC_ESC,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,              KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_BSPC,
        KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,              KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_BSLS,
        MO(_FN), KC_A,    KC_S,    KC_D,    KC_F,    KC_G,              KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_ENT,
        KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_PGUP,  KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT,
        KC_LCTL, KC_LGUI, KC_MENU, KC_LALT, KC_SPC,  KC_SPC,  KC_PGDN,  KC_SPC,  KC_SPC,  KC_RALT, KC_LBRC, KC_RBRC, KC_RCTL
    ),
    [_FN] = LAYOUT(
        KC_GRV,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,             KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_DEL,  
        RESET,   _______, KC_UP,   _______, _______, _______,           _______, _______, _______, KC_F11,  KC_F12,  _______, 
        KC_GRV,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,             KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_DEL,
        RESET,   _______, KC_UP,   _______, _______, _______,           _______, _______, _______, KC_F11,  KC_F12,  _______,
        _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______,           _______, _______, _______, _______, _______, _______,
        _______, RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, _______, KC_END,   _______, _______, BL_INC,  KC_MPLY, KC_VOLU, KC_MUTE,
        _______, RGB_HUD, RGB_SAD, RGB_VAD, RGB_TOG, RGB_TOG, KC_HOME,  BL_TOGG, BL_TOGG, BL_DEC,  KC_MPRV, KC_VOLD, KC_MNXT


@@ 43,11 43,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
static void render_logo(void) {
    static const char PROGMEM my_logo[] = {
        // '0x3E_logo_32x16', 32x16px
        0xff, 0x0f, 0x07, 0xf3, 0x73, 0xb3, 0x07, 0x0f, 0xff, 0x3f, 0x3f, 0xff, 0xff, 0x3f, 0x3f, 0xff, 
        0xe7, 0xe3, 0x33, 0x33, 0x03, 0x87, 0xff, 0xff, 0x03, 0x03, 0x33, 0x33, 0x33, 0xf3, 0xff, 0xff, 
        0x7f, 0x78, 0x70, 0x66, 0x67, 0x67, 0x70, 0x78, 0x7f, 0x67, 0x62, 0x78, 0x78, 0x62, 0x67, 0x7f, 
        0xff, 0x0f, 0x07, 0xf3, 0x73, 0xb3, 0x07, 0x0f, 0xff, 0x3f, 0x3f, 0xff, 0xff, 0x3f, 0x3f, 0xff,
        0xe7, 0xe3, 0x33, 0x33, 0x03, 0x87, 0xff, 0xff, 0x03, 0x03, 0x33, 0x33, 0x33, 0xf3, 0xff, 0xff,
        0x7f, 0x78, 0x70, 0x66, 0x67, 0x67, 0x70, 0x78, 0x7f, 0x67, 0x62, 0x78, 0x78, 0x62, 0x67, 0x7f,
        0x73, 0x63, 0x67, 0x67, 0x60, 0x70, 0x7f, 0x7f, 0x60, 0x60, 0x67, 0x67, 0x67, 0x67, 0x7f, 0x7f
    };  
    };
    oled_write_raw_P(my_logo, sizeof(my_logo));
}



@@ 117,7 117,7 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return OLED_ROTATION_270;  // flips the display 180 degrees if offhand
}

void oled_task_user(void) {
bool oled_task_user(void) {
    render_logo();
    oled_set_cursor(0,2); // default logo is 16px high (2 lines)



@@ 153,5 153,6 @@ void oled_task_user(void) {
    render_rgb_status();
#endif

    return false;
}
#endif

M keyboards/pteron36/keymaps/via/keymap.c => keyboards/pteron36/keymaps/via/keymap.c +16 -15
@@ 1,19 1,19 @@
 /* Copyright HarshitGoel96 2020
  * With permission from mattdibi, the original maintainer of the Redox hardware.
  * 
  * 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/>. 
  */ 
  *
  * 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

// Each layer gets a name for readability, which is then used in the keymap matrix below.


@@ 131,12 131,13 @@ static void render_status(void){
    oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR("    "), false);
    oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR("    "), false);
}
void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_master()) {
        render_status();  // Renders the current keyboard state (layer, lock, caps, scroll, etc)
    } else {
        render_logo();  // Renders a static logo
        oled_scroll_left();  // Turns on scrolling
    }
    return false;
}
#endif

M keyboards/pteron36/pteron36.c => keyboards/pteron36/pteron36.c +5 -1
@@ 37,7 37,10 @@ bool encoder_update_kb(uint8_t index, bool clockwise) {
}
//common oled support.
#ifdef OLED_DRIVER_ENABLE
__attribute__((weak)) void oled_task_user(void) {
bool oled_task_kb(void) {
    if (!oled_task_user()) {
        return false;
    }
    if (is_keyboard_master()) {
        oled_write_P(PSTR("Layer: "), false);
        switch (get_highest_layer(layer_state)) {


@@ 62,5 65,6 @@ __attribute__((weak)) void oled_task_user(void) {
        oled_write_P(qmk_logo, false);
        oled_scroll_left();  // Turns on scrolling
    }
    return false;
}
#endif

M keyboards/rainkeeb/keymaps/default/keymap.c => keyboards/rainkeeb/keymaps/default/keymap.c +2 -1
@@ 87,7 87,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) {

char wpm[10];

void oled_task_user(void) {
bool oled_task_user(void) {
    sprintf(wpm, "WPM: %03d", get_current_wpm());

    // Host Keyboard Layer Status


@@ 113,4 113,5 @@ void oled_task_user(void) {
    }
    oled_write_P(PSTR(" "), false);
    oled_write(wpm, false);
    return false;
}

M keyboards/rainkeeb/keymaps/via/keymap.c => keyboards/rainkeeb/keymaps/via/keymap.c +2 -1
@@ 87,7 87,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) {

char wpm[10];

void oled_task_user(void) {
bool oled_task_user(void) {
    sprintf(wpm, "WPM: %03d", get_current_wpm());

    // Host Keyboard Layer Status


@@ 113,4 113,5 @@ void oled_task_user(void) {
    }
    oled_write_P(PSTR(" "), false);
    oled_write(wpm, false);
    return false;
}

M keyboards/ramonimbao/herringbone/pro/keymaps/default/keymap.c => keyboards/ramonimbao/herringbone/pro/keymaps/default/keymap.c +2 -1
@@ 80,7 80,7 @@ static void render_pattern(void) {
    }
}

void oled_task_user(void) {
bool oled_task_user(void) {
    // Render Herringbone pattern
    render_pattern();
    oled_render();


@@ 94,5 94,6 @@ void oled_task_user(void) {
    oled_set_cursor(0, 2);
    oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR("    "), false);
    oled_render();
    return false;
}
#endif

M keyboards/ramonimbao/herringbone/pro/keymaps/iso/keymap.c => keyboards/ramonimbao/herringbone/pro/keymaps/iso/keymap.c +2 -1
@@ 80,7 80,7 @@ static void render_pattern(void) {
    }
}

void oled_task_user(void) {
bool oled_task_user(void) {
    // Render Herringbone pattern
    render_pattern();
    oled_render();


@@ 94,5 94,6 @@ void oled_task_user(void) {
    oled_set_cursor(0, 2);
    oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR("    "), false);
    oled_render();
    return false;
}
#endif

M keyboards/ramonimbao/herringbone/pro/keymaps/via/keymap.c => keyboards/ramonimbao/herringbone/pro/keymaps/via/keymap.c +2 -1
@@ 132,7 132,7 @@ static void render_pattern(void) {
    }
}

void oled_task_user(void) {
bool oled_task_user(void) {
    // Render Herringbone pattern
    render_pattern();
    oled_render();


@@ 146,5 146,6 @@ void oled_task_user(void) {
    oled_set_cursor(0, 2);
    oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR("    "), false);
    oled_render();
    return false;
}
#endif

M keyboards/rart/rart67m/rart67m.c => keyboards/rart/rart67m/rart67m.c +7 -4
@@ 21,11 21,14 @@
#define ANIM_FRAME_DURATION 200
#define ANIM_SIZE 512
#ifdef OLED_ENABLE
__attribute__((weak)) oled_rotation_t oled_init_user(oled_rotation_t rotation) {
oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
    return OLED_ROTATION_180;
}

__attribute__((weak)) void oled_task_user(void) {
bool oled_task_kb(void) {
    if (!oled_task_user()) {
        return false;
    }
static uint32_t anim_timer = 0;
static uint32_t anim_sleep = 0;
static uint8_t current_idle_frame = 0;


@@ 128,7 131,7 @@ static uint8_t current_tap_frame = 0;
            }
        }
    }

    return false;
}

#endif
\ No newline at end of file
#endif

M keyboards/rart/rart75m/rart75m.c => keyboards/rart/rart75m/rart75m.c +6 -1
@@ 31,7 31,10 @@ bool encoder_update_kb(uint8_t index, bool clockwise) {
#endif

#ifdef OLED_ENABLE
__attribute__((weak)) void oled_task_user(void) {
bool oled_task_kb(void) {
    if (!oled_task_user()) {
        return false;
    }
    // Host Keyboard Layer Status
    oled_write_P(PSTR("R A R T 7 5 M\nLayer: "), false);



@@ 52,6 55,8 @@ __attribute__((weak)) void oled_task_user(void) {
    oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR("    "), false);
    oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR("    "), false);
    oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR("    "), false);

    return false;
}

#endif

M keyboards/rart/rartand/keymaps/default/keymap.c => keyboards/rart/rartand/keymaps/default/keymap.c +2 -1
@@ 47,7 47,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};

#ifdef OLED_ENABLE
void oled_task_user(void) {
bool oled_task_user(void) {
    // Host Keyboard Layer Status
    oled_write_P(PSTR("* R A R T A N D *\n  Powered by QMK\nLayer: "), false);



@@ 74,5 74,6 @@ void oled_task_user(void) {
    oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR("    "), false);
    oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR("    "), false);
    oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR("    "), false);
    return false;
}
#endif

M keyboards/rart/rartand/keymaps/via/keymap.c => keyboards/rart/rartand/keymaps/via/keymap.c +2 -1
@@ 47,7 47,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};

#ifdef OLED_ENABLE
void oled_task_user(void) {
bool oled_task_user(void) {
    // Host Keyboard Layer Status
    oled_write_P(PSTR("* R A R T A N D *\n  Powered by QMK\nLayer: "), false);



@@ 74,5 74,6 @@ void oled_task_user(void) {
    oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR("    "), false);
    oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR("    "), false);
    oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR("    "), false);
    return false;
}
#endif

M keyboards/rart/rartland/rartland.c => keyboards/rart/rartland/rartland.c +6 -1
@@ 31,7 31,10 @@ bool encoder_update_kb(uint8_t index, bool clockwise) {
#endif

#ifdef OLED_ENABLE
__attribute__((weak)) void oled_task_user(void) {
bool oled_task_kb(void) {
    if (!oled_task_user()) {
        return false;
    }
    // Host Keyboard Layer Status
    oled_write_P(PSTR("R A R T L A N D\nLayer: "), false);



@@ 52,5 55,7 @@ __attribute__((weak)) void oled_task_user(void) {
    oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR("    "), false);
    oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR("    "), false);
    oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR("    "), false);

    return false;
}
#endif

M keyboards/rart/rartlice/keymaps/default/keymap.c => keyboards/rart/rartlice/keymaps/default/keymap.c +2 -1
@@ 35,7 35,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};

#ifdef OLED_ENABLE
void oled_task_user(void) {
bool oled_task_user(void) {
    // Host Keyboard Layer Status
    oled_write_P(PSTR("R A R T L I C E\nLayer: "), false);



@@ 56,5 56,6 @@ void oled_task_user(void) {
    oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR("    "), false);
    oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR("    "), false);
    oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR("    "), false);
    return false;
}
#endif

M keyboards/rart/rartlice/keymaps/via/keymap.c => keyboards/rart/rartlice/keymaps/via/keymap.c +2 -1
@@ 49,7 49,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};

#ifdef OLED_ENABLE
void oled_task_user(void) {
bool oled_task_user(void) {
    // Host Keyboard Layer Status
    oled_write_P(PSTR("* R A R T L I C E *\n  Powered by QMK\nLayer: "), false);



@@ 76,5 76,6 @@ void oled_task_user(void) {
    oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR("    "), false);
    oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR("    "), false);
    oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR("    "), false);
    return false;
}
#endif

M keyboards/rgbkb/mun/keymaps/default/keymap.c => keyboards/rgbkb/mun/keymaps/default/keymap.c +2 -1
@@ 230,7 230,7 @@ static void render_touch(void)
    oled_write_P(touch_encoder_calibrating() ? PSTR("CLBRT")  : PSTR("     "), false);
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_left()) {
        render_icon();
        oled_write_P(PSTR("     "), false);


@@ 245,6 245,7 @@ void oled_task_user(void) {
        oled_write_P(PSTR("     "), false);
        render_rgb_menu();
    }
    return false;
}

oled_rotation_t oled_init_user(oled_rotation_t rotation) {

M keyboards/rgbkb/mun/keymaps/via/keymap.c => keyboards/rgbkb/mun/keymaps/via/keymap.c +2 -1
@@ 230,7 230,7 @@ static void render_touch(void)
    oled_write_P(touch_encoder_calibrating() ? PSTR("CLBRT")  : PSTR("     "), false);
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_left()) {
        render_icon();
        oled_write_P(PSTR("     "), false);


@@ 245,6 245,7 @@ void oled_task_user(void) {
        oled_write_P(PSTR("     "), false);
        render_rgb_menu();
    }
    return false;
}

oled_rotation_t oled_init_user(oled_rotation_t rotation) {

M keyboards/rgbkb/mun/keymaps/xulkal2/keymap.c => keyboards/rgbkb/mun/keymaps/xulkal2/keymap.c +4 -3
@@ 119,7 119,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
        _______, KC_LEFT, KC_DOWN, KC_RIGHT,_______, _______, _______,    _______, _______, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, _______,
        _______, _______, _______, _______, _______, EEP_RST, _______,    _______, _______, KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT, _______,
        _______, _______, _______, _______, _______, _______, _______,    _______, _______, _______, KC_KP_0, KC_PDOT, KC_PENT, _______,
        

        _______, _______, _______, _______,                                                          _______, _______, _______, _______,
        _______, _______, _______, _______, _______,                                        _______, _______, _______, _______, _______
    )


@@ 223,7 223,7 @@ void render_debug_scan(void) {
}
#endif

void oled_task_user(void) {
bool oled_task_user(void) {
#if !defined(MATRIX_SCAN_DEBUG)
    if (is_keyboard_left()) {
        render_layer();


@@ 241,8 241,9 @@ void oled_task_user(void) {
#endif
    oled_set_cursor(0, 12);
    render_icon();
    return false;
}

oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return OLED_ROTATION_270;
}
\ No newline at end of file
}

M keyboards/rgbkb/pan/keymaps/default/keymap.c => keyboards/rgbkb/pan/keymaps/default/keymap.c +3 -1
@@ 71,7 71,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};

#ifdef OLED_ENABLE
void oled_task_user(void) {
bool oled_task_user(void) {
    // Host Keyboard Layer Status
    oled_write_P(PSTR("RGBKB Pan\n"), false);
    oled_write_P(PSTR("Layer: "), false);


@@ 97,6 97,8 @@ void oled_task_user(void) {
    led_t led_state = host_keyboard_led_state();
    oled_write_P(led_state.num_lock ? PSTR("Numlock On\n") : PSTR("           \n"), false);
    oled_write_P(led_state.caps_lock ? PSTR("Capslock On \n") : PSTR("           \n"), false);

    return false;
}
#endif


M keyboards/rgbkb/sol/keymaps/brianweyer/keymap.c => keyboards/rgbkb/sol/keymaps/brianweyer/keymap.c +3 -1
@@ 260,11 260,13 @@ static void render_status(void) {
  oled_write_P(led_usb_state & (1<<USB_LED_SCROLL_LOCK) ? PSTR("SCLK ") : PSTR("     "), false);
}

void oled_task_user(void) {
bool oled_task_user(void) {
  if (is_keyboard_master())
    render_status();
  else
    render_logo();

    return false;
}

#endif

M keyboards/rgbkb/sol/keymaps/danielhklein/keymap.c => keyboards/rgbkb/sol/keymaps/danielhklein/keymap.c +3 -1
@@ 324,11 324,13 @@ static void render_status(void) {
  oled_write_P(led_usb_state & (1<<USB_LED_SCROLL_LOCK) ? PSTR("SCLK ") : PSTR("     "), false);
}

void oled_task_user(void) {
bool oled_task_user(void) {
  if (is_keyboard_master())
    render_status();
  else
    render_logo();

    return false;
}

#endif

M keyboards/rgbkb/sol/keymaps/default/keymap.c => keyboards/rgbkb/sol/keymaps/default/keymap.c +2 -1
@@ 360,13 360,14 @@ static void render_status(void) {
#endif
}

void oled_task_user(void) {
bool oled_task_user(void) {
  if (is_keyboard_master()) {
    render_status();
  } else {
    render_logo();
    oled_scroll_left();
  }
    return false;
}

#endif

M keyboards/rgbkb/sol/keymaps/xyverz/keymap.c => keyboards/rgbkb/sol/keymaps/xyverz/keymap.c +2 -1
@@ 350,13 350,14 @@ static void render_status(void) {
#endif
}

void oled_task_user(void) {
bool oled_task_user(void) {
  if (is_keyboard_master()) {
    render_status();
  } else {
    render_logo();
    oled_scroll_left();
  }
    return false;
}

#endif

M keyboards/rgbkb/zen/rev2/rev2.c => keyboards/rgbkb/zen/rev2/rev2.c +6 -3
@@ 47,20 47,23 @@ void render_status(void) {
  oled_write_P(led_usb_state & (1<<USB_LED_SCROLL_LOCK) ? PSTR("SCRLK") : PSTR("     "), false); // Line 16
}

oled_rotation_t oled_init_user(oled_rotation_t rotation) {
oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
  if (is_keyboard_master())
    return OLED_ROTATION_270;  // flips the display 270 degrees if mainhand
  return rotation;
}

__attribute__((weak))
void oled_task_user(void) {
bool oled_task_kb(void) {
    if (!oled_task_user()) {
        return false;
    }
  if (is_keyboard_master()) {
    render_status();
  } else {
    render_logo();
    oled_scroll_left();
  }
  return false;
}

#endif

M keyboards/rgbkb/zygomorph/keymaps/default_oled/keymap.c => keyboards/rgbkb/zygomorph/keymaps/default_oled/keymap.c +2 -1
@@ 222,13 222,14 @@ static void render_status(void) {
  oled_write_ln_P(led_usb_state & (1<<USB_LED_SCROLL_LOCK) ? PSTR("SCRLCK ") : PSTR("       "), false);
}

void oled_task_user(void) {
bool oled_task_user(void) {
  if (is_keyboard_master()) {
    render_status();
  } else {
    render_logo();
    oled_scroll_left();
  }
    return false;
}

#endif

M keyboards/ristretto/ristretto.c => keyboards/ristretto/ristretto.c +7 -3
@@ 36,11 36,14 @@ bool encoder_update_kb(uint8_t index, bool clockwise) {
}

#ifdef OLED_ENABLE
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
	return OLED_ROTATION_270;
oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
    return OLED_ROTATION_270;
}

__attribute__((weak)) void oled_task_user(void) {
bool oled_task_kb(void) {
    if (!oled_task_user()) {
        return false;
    }
	oled_write_P(PSTR("\n\n"), false);
	oled_write_ln_P(PSTR("LAYER"), false);
	oled_write_ln_P(PSTR(""), false);


@@ 58,6 61,7 @@ __attribute__((weak)) void oled_task_user(void) {
			oled_write_P(PSTR("ADJ\n"), false);
			break;
	}
    return false;
}

#endif

M keyboards/rocketboard_16/keymaps/default/keymap.c => keyboards/rocketboard_16/keymaps/default/keymap.c +2 -1
@@ 209,7 209,7 @@ static void render_logo(uint8_t startX, uint8_t startY)

oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_180; }

void oled_task_user(void)
bool oled_task_user(void)
{
    // Playing the animation
    if((timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) && (splash_dur_counter < SPLASH_DUR))


@@ 348,6 348,7 @@ void oled_task_user(void)

    }

    return false;
}

// Process the extra/extended keycode functionality

M keyboards/rocketboard_16/keymaps/via/keymap.c => keyboards/rocketboard_16/keymaps/via/keymap.c +2 -1
@@ 209,7 209,7 @@ static void render_logo(uint8_t startX, uint8_t startY)

oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_180; }

void oled_task_user(void)
bool oled_task_user(void)
{
    // Playing the animation
    if((timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) && (splash_dur_counter < SPLASH_DUR))


@@ 348,6 348,7 @@ void oled_task_user(void)

    }

    return false;
}

// Process the extra/extended keycode functionality

M keyboards/rubi/lib/oled.c => keyboards/rubi/lib/oled.c +4 -2
@@ 239,7 239,8 @@ void render_frame(void) {
    }
}

__attribute__((weak)) void oled_task_user(void) {
bool oled_task_kb(void) {
    if (!oled_task_user()) { return false; }
    if (timer_elapsed(oled_frame_timer) > OLED_FRAME_TIMEOUT) {
        oled_clear();
        oled_frame_timer = timer_read();


@@ 259,9 260,10 @@ __attribute__((weak)) void oled_task_user(void) {
    } else {
        oled_mode = OLED_MODE_DEFAULT;
    }
    return false;
}

oled_rotation_t oled_init_user(oled_rotation_t rotation) {
oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
    oled_logo_timer = timer_read();
    oled_frame_timer = timer_read();
    return rotation;

M keyboards/sawnsprojects/satxri6key/keymaps/via/keymap.c => keyboards/sawnsprojects/satxri6key/keymaps/via/keymap.c +2 -1
@@ 145,7 145,7 @@ static void render_anim(void) {
}

// Used to draw on to the oled screen
void oled_task_user(void) {
bool oled_task_user(void) {
    render_anim();  // renders pixelart

    oled_set_cursor(0, 0);                            // sets cursor to (row, column) using charactar spacing (5 rows on 128x32 screen, anything more will overflow back to the top)


@@ 160,5 160,6 @@ void oled_task_user(void) {
    led_t led_state = host_keyboard_led_state();  // caps lock stuff, prints CAPS on new line if caps led is on
    oled_set_cursor(0, 1);
    oled_write_P(led_state.caps_lock ? PSTR("CAPS") : PSTR("       "), false);
    return false;
}
#endif

M keyboards/sendyyeah/pix/keymaps/default/keymap.c => keyboards/sendyyeah/pix/keymaps/default/keymap.c +2 -1
@@ 174,7 174,7 @@ void draw_brightness_icon(int key_position, int row) {
    oled_write_P(ICON_BRIGHTNESS_1, false);
}

void oled_task_user(void) {
bool oled_task_user(void) {
    // Host Keyboard Layer Status
    static const char PROGMEM ICON_LAYER[] = {0x80, 0x81, 0x82, 0x83, 0};
    static const char PROGMEM ICON_ENCODER[] = {0x84, 0x85, 0x86, 0x87, 0};


@@ 229,6 229,7 @@ void oled_task_user(void) {
            break;
    }

    return false;
}

#endif

M keyboards/sendyyeah/pix/keymaps/via/keymap.c => keyboards/sendyyeah/pix/keymaps/via/keymap.c +2 -1
@@ 174,7 174,7 @@ void draw_brightness_icon(int key_position, int row) {
    oled_write_P(ICON_BRIGHTNESS_1, false);
}

void oled_task_user(void) {
bool oled_task_user(void) {
    // Host Keyboard Layer Status
    static const char PROGMEM ICON_LAYER[] = {0x80, 0x81, 0x82, 0x83, 0};
    static const char PROGMEM ICON_ENCODER[] = {0x84, 0x85, 0x86, 0x87, 0};


@@ 229,6 229,7 @@ void oled_task_user(void) {
            break;
    }

    return false;
}

#endif

M keyboards/setta21/keymaps/salicylic/keymap.c => keyboards/setta21/keymaps/salicylic/keymap.c +2 -1
@@ 190,8 190,9 @@ void render_status(void) {
    render_layer_state();
}

void oled_task_user(void) {
bool oled_task_user(void) {
    render_status();  // Renders the current keyboard state (layer, lock, caps, scroll, etc)
    return false;
}

#endif

M keyboards/sofle/keymaps/default/keymap.c => keyboards/sofle/keymaps/default/keymap.c +2 -1
@@ 200,12 200,13 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return rotation;
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_master()) {
        print_status_narrow();
    } else {
        render_logo();
    }
    return false;
}

#endif

M keyboards/sofle/keymaps/devdev/keymap.c => keyboards/sofle/keymaps/devdev/keymap.c +2 -1
@@ 465,12 465,13 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return rotation;
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_master()) {
        print_status_narrow();
    } else {
        render_logo();
    }
    return false;
}

#endif

M keyboards/sofle/keymaps/helltm/keymap.c => keyboards/sofle/keymaps/helltm/keymap.c +2 -1
@@ 392,7 392,7 @@ static void print_status_narrow(void) {

oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_270; }

void oled_task_user(void) {
bool oled_task_user(void) {
    /* KEYBOARD PET VARIABLES START */

    current_wpm   = get_current_wpm();


@@ 405,6 405,7 @@ void oled_task_user(void) {
    } else {
        print_logo_narrow();
    }
    return false;
}

#endif

M keyboards/sofle/keymaps/j4ckofalltrades/oled.c => keyboards/sofle/keymaps/j4ckofalltrades/oled.c +2 -1
@@ 65,12 65,13 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return rotation;
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_master()) {
        print_status_narrow();
    } else {
        render_logo();
    }
    return false;
}

#endif

M keyboards/sofle/keymaps/killmaster/keymap.c => keyboards/sofle/keymaps/killmaster/keymap.c +2 -1
@@ 211,12 211,13 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return rotation;
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_master()) {
        print_status_narrow();
    } else {
        render_logo();
    }
    return false;
}



M keyboards/sofle/keymaps/rgb_default/keymap.c => keyboards/sofle/keymaps/rgb_default/keymap.c +2 -1
@@ 465,12 465,13 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return rotation;
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_master()) {
        print_status_narrow();
    } else {
        render_logo();
    }
    return false;
}

#endif

M keyboards/sofle/keymaps/via/oled.c => keyboards/sofle/keymaps/via/oled.c +2 -1
@@ 73,12 73,13 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return rotation;
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_master()) {
        print_status_narrow();
    } else {
        render_logo();
    }
    return false;
}

#endif

M keyboards/spaceman/pancake/rev2/rev2.c => keyboards/spaceman/pancake/rev2/rev2.c +7 -2
@@ 17,10 17,14 @@


#ifdef OLED_ENABLE
__attribute__((weak)) oled_rotation_t oled_init_user(oled_rotation_t rotation) {
oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
    return OLED_ROTATION_270;
}
__attribute__((weak)) void oled_task_user(void) {

bool oled_task_kb(void) {
    if (!oled_task_user()) {
        return false;
    }
    static const char PROGMEM pancake_logo[] = {
        0x00, 0x00, 0x3e, 0x0a, 0x04, 0x00, 0x3c, 0x0a, 0x3c, 0x00, 0x3e, 0x0c, 0x18, 0x3e, 0x00, 0x3e,
        0x22, 0x22, 0x00, 0x3c, 0x0a, 0x3c, 0x00, 0x3e, 0x08, 0x36, 0x00, 0x3e, 0x2a, 0x22, 0x00, 0x00,


@@ 50,5 54,6 @@ __attribute__((weak)) void oled_task_user(void) {
            oled_write_ln_P(PSTR("Undefined"), false);
            break;
    }
    return false;
}
#endif

M keyboards/splitkb/kyria/keymaps/asapjockey/keymap.c => keyboards/splitkb/kyria/keymaps/asapjockey/keymap.c +2 -1
@@ 246,12 246,13 @@ static void render_status(void) {
    oled_write_P(led_state.scroll_lock ? PSTR("SCRLCK ") : PSTR("       "), false);
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_master()) {
        render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
    } else {
        render_kyria_logo();
    }
    return false;
}
#endif


M keyboards/splitkb/kyria/keymaps/benji/keymap.c => keyboards/splitkb/kyria/keymaps/benji/keymap.c +2 -1
@@ 200,12 200,13 @@ static void render_status(void) {
    oled_write_P(led_usb_state.scroll_lock ? PSTR("SCRLCK ") : PSTR("       "), false);
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_master()) {
        render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
    } else {
        render_kyria_logo();
    }
    return false;
}
#endif


M keyboards/splitkb/kyria/keymaps/cjuniet/keymap.c => keyboards/splitkb/kyria/keymaps/cjuniet/keymap.c +2 -1
@@ 117,11 117,12 @@ static void render_status(void) {
    oled_write_ln_P(PSTR(" Layer\n"), false);
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_master()) {
        render_status();
        render_status_bar();
    } else {
        render_kyria_logo();
    }
    return false;
}

M keyboards/splitkb/kyria/keymaps/cwebster2/keymap.c => keyboards/splitkb/kyria/keymaps/cwebster2/keymap.c +2 -1
@@ 391,12 391,13 @@ static void render_status(void) {

}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_master()) {
        render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
    } else {
        render_logo();
    }
    return false;
}
#endif


M keyboards/splitkb/kyria/keymaps/default/keymap.c => keyboards/splitkb/kyria/keymaps/default/keymap.c +2 -1
@@ 226,7 226,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
#ifdef OLED_ENABLE
oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_180; }

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_master()) {
        // QMK Logo and version information
        // clang-format off


@@ 287,6 287,7 @@ void oled_task_user(void) {
        // clang-format on
        oled_write_raw_P(kyria_logo, sizeof(kyria_logo));
    }
    return false;
}
#endif


M keyboards/splitkb/kyria/keymaps/ghidalgo93/keymap.c => keyboards/splitkb/kyria/keymaps/ghidalgo93/keymap.c +2 -1
@@ 214,12 214,13 @@ static void render_status(void) {
    oled_write_P(led_state.scroll_lock ? PSTR("SCRLCK ") : PSTR("       "), false);
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_master()) {
        render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
    } else {
        render_kyria_logo();
    }
    return false;
}
#endif


M keyboards/splitkb/kyria/keymaps/gotham/keymap.c => keyboards/splitkb/kyria/keymaps/gotham/keymap.c +4 -1
@@ 106,7 106,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
#ifdef OLED_ENABLE
oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_180; }

void oled_task_user(void) { render_status(); }
bool oled_task_user(void) {
    render_status();
    return false;
}
#endif

#ifdef ENCODER_ENABLE

M keyboards/splitkb/kyria/keymaps/j-inc/keymap.c => keyboards/splitkb/kyria/keymaps/j-inc/keymap.c +2 -1
@@ 317,7 317,7 @@ static void render_anim(void) {
//      oled_write_raw_P(skull, 801);
//  }

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_master()) {
        //render_skull();
        //oled_set_cursor(7,6);


@@ 335,6 335,7 @@ void oled_task_user(void) {
        oled_write(wpm_str, false);

    }
    return false;
}
#endif


M keyboards/splitkb/kyria/keymaps/jhelvy/keymap.c => keyboards/splitkb/kyria/keymaps/jhelvy/keymap.c +2 -1
@@ 161,12 161,13 @@ static void render_status(void) {

}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_master()) {
        render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
    } else {
        render_kyria_logo();
    }
    return false;
}
#endif


M keyboards/splitkb/kyria/keymaps/john-ezra/oled.c => keyboards/splitkb/kyria/keymaps/john-ezra/oled.c +2 -1
@@ 478,12 478,13 @@ void render_status_secondary(void) {
	render_wpm_graph();
}

void oled_task_user(void) {
bool oled_task_user(void) {
	if (is_keyboard_master()) {
		render_status_main();  // Renders the current keyboard state (layer, lock, caps, scroll, etc)
	} else {
		render_status_secondary();
	}
    return false;
}

#endif

M keyboards/splitkb/kyria/keymaps/mattir/keymap.c => keyboards/splitkb/kyria/keymaps/mattir/keymap.c +2 -1
@@ 193,12 193,13 @@ static void render_status(void) {
  }
}

void oled_task_user(void) {
bool oled_task_user(void) {
  if (is_keyboard_master()) {
    render_status(); // Renders the current keyboard layer
  } else {
    render_mattir_logo();
  }
    return false;
}
#endif


M keyboards/splitkb/kyria/keymaps/ninjonas/oled.c => keyboards/splitkb/kyria/keymaps/ninjonas/oled.c +2 -1
@@ 198,12 198,13 @@ static void render_status(void) {
  render_mod_state(get_mods()|get_oneshot_mods());
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_master()) {
        render_status();
    } else {
        render_logo();
        oled_scroll_left();
    }
    return false;
}
#endif

M keyboards/splitkb/kyria/keymaps/plattfot/keymap.c => keyboards/splitkb/kyria/keymaps/plattfot/keymap.c +2 -1
@@ 327,12 327,13 @@ static void render_status(void) {
    oled_write_P(led_state.scroll_lock ? PSTR("SCRLCK ") : PSTR("       "), false);
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_master()) {
        render_status();  // Renders the current keyboard state (layer, lock, caps, scroll, etc)
    } else {
        render_static_info();
    }
    return false;
}
#endif


M keyboards/splitkb/kyria/keymaps/shinze/keymap.c => keyboards/splitkb/kyria/keymaps/shinze/keymap.c +2 -1
@@ 216,12 216,13 @@ static void render_status(void) {
    oled_write_P(IS_LED_ON(led_usb_state, USB_LED_SCROLL_LOCK) ? PSTR("SCRLCK ") : PSTR("       "), false);
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_master()) {
        render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
    } else {
        render_kyria_logo();
    }
    return false;
}
#endif


M keyboards/splitkb/kyria/keymaps/tessachka/keymap.c => keyboards/splitkb/kyria/keymaps/tessachka/keymap.c +2 -1
@@ 231,11 231,12 @@ static void render_status(void) {
    oled_write_P(IS_LED_ON(led_usb_state, USB_LED_SCROLL_LOCK) ? PSTR("SCRLCK ") : PSTR("       "), false);
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_master()) {
        render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
    } else {
        render_kyria_logo();
    }
    return false;
}
#endif

M keyboards/splitkb/kyria/keymaps/thomasbaart/keymap.c => keyboards/splitkb/kyria/keymaps/thomasbaart/keymap.c +2 -1
@@ 298,12 298,13 @@ static void render_status(void) {
    oled_write_P(IS_LED_ON(led_usb_state, USB_LED_SCROLL_LOCK) ? PSTR("SCRLCK ") : PSTR("       "), false);
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_master()) {
        render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
    } else {
        render_kyria_logo();
    }
    return false;
}
#endif


M keyboards/splitkb/kyria/keymaps/via/keymap.c => keyboards/splitkb/kyria/keymaps/via/keymap.c +2 -1
@@ 191,7 191,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
#endif

#ifdef OLED_ENABLE
void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_master()) {
        // QMK Logo and version information
        // clang-format off


@@ 244,5 244,6 @@ void oled_task_user(void) {
        // clang-format on
        oled_write_raw_P(kyria_logo, sizeof(kyria_logo));
    }
    return false;
}
#endif

M keyboards/splitkb/kyria/keymaps/winternebs/keymap.c => keyboards/splitkb/kyria/keymaps/winternebs/keymap.c +2 -1
@@ 695,7 695,7 @@ static void render_logo(void) {
	oled_set_cursor(6,6);
	oled_write_P(PSTR(" play asc "), false);
}
void oled_task_user(void) {
bool oled_task_user(void) {
	if (is_keyboard_master()) {
		render_anim();
		oled_set_cursor(0,7);


@@ 728,5 728,6 @@ void oled_task_user(void) {
		oled_scroll_left();

	}
    return false;
}
#endif

M keyboards/splitkb/kyria/keymaps/zigotica/oled.c => keyboards/splitkb/kyria/keymaps/zigotica/oled.c +2 -2
@@ 77,11 77,11 @@ static void render_status(void) {
    oled_write_P(led_state.scroll_lock ? PSTR("SCRLCK ") : PSTR("       "), false);
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (!is_keyboard_left()) {
        render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
    } else {
        render_kyria_logo();
    }
    return false;
}


M keyboards/splitkb/kyria/rev1/rev1.c => keyboards/splitkb/kyria/rev1/rev1.c +8 -2
@@ 56,9 56,14 @@ led_config_t g_led_config = { {
#endif

#ifdef OLED_ENABLE
__attribute__((weak)) oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_180; }
oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
    return OLED_ROTATION_180;
}

__attribute__((weak)) void oled_task_user(void) {
bool oled_task_kb(void) {
    if (!oled_task_user()) {
        return false;
    }
    if (is_keyboard_master()) {
        // QMK Logo and version information
        // clang-format off


@@ 119,6 124,7 @@ __attribute__((weak)) void oled_task_user(void) {
        // clang-format on
        oled_write_raw_P(kyria_logo, sizeof(kyria_logo));
    }
    return false;
}
#endif


M keyboards/splitkb/zima/keymaps/drashna/keymap.c => keyboards/splitkb/zima/keymaps/drashna/keymap.c +3 -2
@@ 78,10 78,10 @@ void render_user_status(void) {

void keyboard_post_init_user(void) { oled_scroll_set_speed(0); }

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_asleep) {
        oled_off();
        return;
        return false;;
    }

    if (timer_elapsed32(oled_timer) < 30000) {


@@ 131,6 131,7 @@ void oled_task_user(void) {
            oled_off();
        }
    }
    return false;
}

void suspend_power_down_user(void) { is_asleep = true; }

M keyboards/splitkb/zima/zima.c => keyboards/splitkb/zima/zima.c +9 -3
@@ 35,12 35,17 @@ void suspend_wakeup_init_kb(void) {
    suspend_wakeup_init_user();
}

__attribute__((weak)) oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_180; }
oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
    return OLED_ROTATION_180;
}

__attribute__((weak)) void oled_task_user(void) {
bool oled_task_kb(void) {
    if (!oled_task_user()) {
        return false;
    }
    if (is_asleep) {
        oled_off();
        return;
        return false;
    }

    if (timer_elapsed32(oled_timer) < 30000) {


@@ 83,6 88,7 @@ __attribute__((weak)) void oled_task_user(void) {
            oled_off();
        }
    }
    return false;
}

bool process_record_kb(uint16_t keycode, keyrecord_t* record) {

M keyboards/suihankey/alpha/keymaps/default/keymap.c => keyboards/suihankey/alpha/keymaps/default/keymap.c +3 -1
@@ 56,7 56,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};

#ifdef OLED_ENABLE
void oled_task_user(void) {
bool oled_task_user(void) {
  oled_write_P(PSTR("Layer: "), false);
  switch (biton32(layer_state)) {
    case BASE:


@@ 80,5 80,7 @@ void oled_task_user(void) {
  oled_write_P(IS_HOST_LED_ON(USB_LED_NUM_LOCK) ? PSTR("NUMLCK ") : PSTR("       "), false);
  oled_write_P(IS_HOST_LED_ON(USB_LED_CAPS_LOCK) ? PSTR("CAPLCK ") : PSTR("       "), false);
  oled_write_P(IS_HOST_LED_ON(USB_LED_SCROLL_LOCK) ? PSTR("SCRLCK ") : PSTR("       "), false);

    return false;
}
#endif

M keyboards/suihankey/rev1/keymaps/default/keymap.c => keyboards/suihankey/rev1/keymaps/default/keymap.c +3 -1
@@ 56,7 56,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};

#ifdef OLED_ENABLE
void oled_task_user(void) {
bool oled_task_user(void) {
  oled_write_P(PSTR("Layer: "), false);
  switch (biton32(layer_state)) {
    case BASE:


@@ 80,5 80,7 @@ void oled_task_user(void) {
  oled_write_P(IS_HOST_LED_ON(USB_LED_NUM_LOCK) ? PSTR("NUMLCK ") : PSTR("       "), false);
  oled_write_P(IS_HOST_LED_ON(USB_LED_CAPS_LOCK) ? PSTR("CAPLCK ") : PSTR("       "), false);
  oled_write_P(IS_HOST_LED_ON(USB_LED_SCROLL_LOCK) ? PSTR("SCRLCK ") : PSTR("       "), false);

    return false;
}
#endif

M keyboards/takashicompany/endzone34/keymaps/default/keymap.c => keyboards/takashicompany/endzone34/keymaps/default/keymap.c +2 -1
@@ 77,7 77,7 @@ static void render_logo(void) {
    oled_write_raw_P(my_logo, sizeof(my_logo));
}

void oled_task_user(void) {
bool oled_task_user(void) {

    render_logo();



@@ 108,5 108,6 @@ void oled_task_user(void) {

    oled_write_ln(count_str, false);

    return false;
}
#endif

M keyboards/tau4/keymaps/default/keymap.c => keyboards/tau4/keymaps/default/keymap.c +2 -1
@@ 140,7 140,8 @@ static void render_status(void) {
    }
}

void oled_task_user(void) {
bool oled_task_user(void) {
    render_status();
    return false;
}
#endif

M keyboards/tender/macrowo_pad/keymaps/default/keymap.c => keyboards/tender/macrowo_pad/keymaps/default/keymap.c +2 -1
@@ 50,7 50,8 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return OLED_ROTATION_270;
}

void oled_task_user(void) {
bool oled_task_user(void) {
  oled_write_P(PSTR("OWO\nWhat's\nthis?"), false);
    return false;
}
#endif

M keyboards/tender/macrowo_pad/keymaps/via/keymap.c => keyboards/tender/macrowo_pad/keymaps/via/keymap.c +2 -1
@@ 58,7 58,8 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return OLED_ROTATION_270;
}

void oled_task_user(void) {
bool oled_task_user(void) {
  oled_write_P(PSTR("OWO\nWhat's\nthis?"), false);
    return false;
}
#endif

M keyboards/tkc/m0lly/keymaps/default/keymap.c => keyboards/tkc/m0lly/keymaps/default/keymap.c +3 -1
@@ 68,7 68,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};

#ifdef OLED_ENABLE
void oled_task_user(void) {
bool oled_task_user(void) {
    oled_write_P(PSTR("M0lly\n"),false);

    // Layer status


@@ 91,5 91,7 @@ void oled_task_user(void) {
    oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR("    "), false);
    oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR("    "), false);
    oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR("    "), false);

    return false;
}
#endif

M keyboards/tkc/m0lly/keymaps/via/keymap.c => keyboards/tkc/m0lly/keymaps/via/keymap.c +3 -1
@@ 86,7 86,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};

#ifdef OLED_ENABLE
void oled_task_user(void) {
bool oled_task_user(void) {
    oled_write_P(PSTR("M0lly\n"),false);

    // Layer Status


@@ 115,5 115,7 @@ void oled_task_user(void) {
    oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR("    "), false);
    oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR("    "), false);
    oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR("    "), false);

    return false;
}
#endif

M keyboards/tkc/tkc1800/keymaps/default/keymap.c => keyboards/tkc/tkc1800/keymaps/default/keymap.c +3 -1
@@ 80,7 80,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {


#ifdef OLED_ENABLE
void oled_task_user(void) {
bool oled_task_user(void) {
    oled_write_P(PSTR("TKC1800\n"),false);
	// Host Keyboard Layer Status
    oled_write_P(PSTR("Layer: "), false);


@@ 102,5 102,7 @@ void oled_task_user(void) {
    oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR("    "), false);
    oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR("    "), false);
    oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR("    "), false);

    return false;
}
#endif

M keyboards/tkc/tkc1800/keymaps/smt/keymap.c => keyboards/tkc/tkc1800/keymaps/smt/keymap.c +3 -1
@@ 145,7 145,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}

#ifdef OLED_ENABLE
void oled_task_user(void) {
bool oled_task_user(void) {
    oled_write_P(PSTR("TKC1800\n"),false);
	// Host Keyboard Layer Status
    oled_write_P(PSTR("Layer: "), false);


@@ 173,5 173,7 @@ void oled_task_user(void) {
    oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR("    "), false);
    oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR("    "), false);
    oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR("    "), false);

    return false;
}
#endif

M keyboards/tkc/tkc1800/keymaps/via/keymap.c => keyboards/tkc/tkc1800/keymaps/via/keymap.c +3 -1
@@ 98,7 98,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};

#ifdef OLED_ENABLE
void oled_task_user(void) {
bool oled_task_user(void) {
    oled_write_P(PSTR("TKC1800\n"),false);
	// Host Keyboard Layer Status
    oled_write_P(PSTR("Layer: "), false);


@@ 126,5 126,7 @@ void oled_task_user(void) {
    oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR("    "), false);
    oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR("    "), false);
    oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR("    "), false);

    return false;
}
#endif

M keyboards/tkc/tkc1800/keymaps/wkl/keymap.c => keyboards/tkc/tkc1800/keymaps/wkl/keymap.c +3 -1
@@ 62,7 62,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};

#ifdef OLED_ENABLE
void oled_task_user(void) {
bool oled_task_user(void) {
    oled_write_P(PSTR("TKC1800\n"),false);
	// Host Keyboard Layer Status
    oled_write_P(PSTR("Layer: "), false);


@@ 84,5 84,7 @@ void oled_task_user(void) {
    oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR("    "), false);
    oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR("    "), false);
    oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR("    "), false);

    return false;
}
#endif

M keyboards/tkc/tkc1800/keymaps/yanfali/keymap.c => keyboards/tkc/tkc1800/keymaps/yanfali/keymap.c +3 -1
@@ 62,7 62,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};

#ifdef OLED_ENABLE
void oled_task_user(void) {
bool oled_task_user(void) {
    oled_write_P(PSTR("TKC1800\n"),false);
	// Host Keyboard Layer Status
    oled_write_P(PSTR("Layer: "), false);


@@ 84,5 84,7 @@ void oled_task_user(void) {
    oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR("    "), false);
    oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR("    "), false);
    oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR("    "), false);

    return false;
}
#endif

M keyboards/tkw/grandiceps/keymaps/default/keymap.c => keyboards/tkw/grandiceps/keymaps/default/keymap.c +2 -1
@@ 416,12 416,13 @@ static void print_status_narrow(void) {
      oled_write_P(PSTR("\n\n"), false);
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_keyboard_master()) {
       print_status_narrow();
    } else {
        render_logo();
    }
    return false;
}

oled_rotation_t oled_init_user(oled_rotation_t rotation) {

M keyboards/torn/bongocat.c => keyboards/torn/bongocat.c +6 -2
@@ 34,7 34,10 @@ static bool show_logo = true;

__attribute__((weak)) extern const char PROGMEM bongocat_logo[];

void oled_task_user(void) {
bool oled_task_kb(void) {
    if (!oled_task_user()) {
        return false;
    }

// clang-format off
  static const char PROGMEM idle[][FRAME_SIZE] = {


@@ 347,7 350,7 @@ void oled_task_user(void) {
    oled_off();
    anim_timer = 0;
    show_logo = true;
    return;
    return false;
  }

  if (timer_elapsed32(anim_timer) > FRAME_DURATION) {


@@ 369,6 372,7 @@ void oled_task_user(void) {
    }
    current_frame++;
  }
  return false;
}

bool process_record_kb(uint16_t keycode, keyrecord_t *record) {

M keyboards/treadstone48/keymaps/default/keymap.c => keyboards/treadstone48/keymaps/default/keymap.c +2 -1
@@ 167,13 167,14 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
  return rotation;
}

void oled_task_user(void) {
bool oled_task_user(void) {

  if (is_keyboard_master()) {
    render_status();
  } else {
    render_logo();
  }
    return false;
}

#else

M keyboards/treadstone48/keymaps/like_jis/keymap.c => keyboards/treadstone48/keymaps/like_jis/keymap.c +2 -1
@@ 167,13 167,14 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
  return rotation;
}

void oled_task_user(void) {
bool oled_task_user(void) {

  if (is_keyboard_master()) {
    render_status();
  } else {
    render_logo();
  }
    return false;
}

#else

M keyboards/treadstone48/rev1/keymaps/like_jis_rs/keymap.c => keyboards/treadstone48/rev1/keymaps/like_jis_rs/keymap.c +2 -1
@@ 219,13 219,14 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
  return rotation;
}

void oled_task_user(void) {
bool oled_task_user(void) {

  if (is_keyboard_master()) {
    render_status();
  } else {
    render_logo();
  }
    return false;
}

#else

M keyboards/ungodly/launch_pad/keymaps/default/keymap.c => keyboards/ungodly/launch_pad/keymaps/default/keymap.c +2 -1
@@ 274,7 274,7 @@ static void render_light_logo(void) {
  oled_write_raw_P(light_logo, sizeof(light_logo));
}

void oled_task_user(void) {
bool oled_task_user(void) {
  switch (get_highest_layer(layer_state)) {
    case 0:
      render_rocket_logo();


@@ 290,5 290,6 @@ void oled_task_user(void) {
      oled_write_ln_P(PSTR(" UND"), false);
      break;
    }
    return false;
}
#endif

M keyboards/ungodly/launch_pad/keymaps/via/keymap.c => keyboards/ungodly/launch_pad/keymaps/via/keymap.c +2 -1
@@ 273,7 273,7 @@ static void render_light_logo(void) {
  oled_write_raw_P(light_logo, sizeof(light_logo));
}

void oled_task_user(void) {
bool oled_task_user(void) {
  switch (get_highest_layer(layer_state)) {
    case 0:
      render_rocket_logo();


@@ 289,5 289,6 @@ void oled_task_user(void) {
      oled_write_ln_P(PSTR(" UND"), false);
      break;
    }
    return false;
}
#endif

M keyboards/ungodly/launch_pad/keymaps/warzone/keymap.c => keyboards/ungodly/launch_pad/keymaps/warzone/keymap.c +2 -1
@@ 249,7 249,7 @@ static void render_light_logo(void) {
  oled_write_raw_P(light_logo, sizeof(light_logo));
}

void oled_task_user(void) {
bool oled_task_user(void) {
  switch (get_highest_layer(layer_state)) {
    case 0:
      render_rocket_logo();


@@ 265,5 265,6 @@ void oled_task_user(void) {
      oled_write_ln_P(PSTR(" UND"), false);
      break;
    }
    return false;
}
#endif

M keyboards/uzu42/keymaps/default/keymap.c => keyboards/uzu42/keymaps/default/keymap.c +2 -1
@@ 197,7 197,7 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
  return rotation;
}

void oled_task_user(void) {
bool oled_task_user(void) {
  if (is_keyboard_master()) {
    // If you want to change the display of OLED, you need to change here
    oled_write_ln(read_layer_state(), false);


@@ 209,6 209,7 @@ void oled_task_user(void) {
  } else {
    oled_write(read_logo(), false);
  }
    return false;
}
#endif // OLED_ENABLE


M keyboards/work_louder/work_board/work_board.c => keyboards/work_louder/work_board/work_board.c +9 -2
@@ 34,9 34,14 @@ bool encoder_update_kb(uint8_t index, bool clockwise) {
#    ifdef RGB_MATRIX_ENABLE
#        error Cannot run OLED and Per Key RGB at the same time due to pin conflicts
#    endif
__attribute__((weak)) oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_90; }
oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
    return OLED_ROTATION_90;
}

__attribute__((weak)) void oled_task_user(void) {
bool oled_task_kb(void) {
    if (!oled_task_user()) {
        return false;
    }
    oled_write_P(PSTR("LAYER"), false);
    oled_write_P(PSTR("Lower"), layer_state_is(3));
    oled_write_P(PSTR("Raise"), layer_state_is(4));


@@ 70,6 75,8 @@ __attribute__((weak)) void oled_task_user(void) {
    oled_write_P(logo[0][1], !keymap_config.swap_lctl_lgui);
    oled_write_P(logo[1][1], keymap_config.swap_lctl_lgui);
    oled_write_P(PSTR(" NKRO"), keymap_config.nkro);

    return false;
}
#endif


M keyboards/yampad/keymaps/default/keymap.c => keyboards/yampad/keymaps/default/keymap.c +3 -1
@@ 122,7 122,7 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return OLED_ROTATION_270;  // flips the display 270 degrees
}

void oled_task_user(void) {
bool oled_task_user(void) {
  // Host Keyboard Layer Status
  oled_write_P(PSTR("Layer"), false);
  switch (get_highest_layer(layer_state)) {


@@ 159,5 159,7 @@ void oled_task_user(void) {
      (uint8_t)(rgblight_get_sat() / RGBLIGHT_SAT_STEP),
      (uint8_t)(rgblight_get_val() / RGBLIGHT_VAL_STEP));
  oled_write(led_buf, false);

    return false;
}
#endif

M keyboards/yampad/keymaps/traditional/keymap.c => keyboards/yampad/keymaps/traditional/keymap.c +3 -1
@@ 122,7 122,7 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return OLED_ROTATION_270;  // flips the display 270 degrees
}

void oled_task_user(void) {
bool oled_task_user(void) {
  // Host Keyboard Layer Status
  oled_write_P(PSTR("Layer"), false);
  switch (get_highest_layer(layer_state)) {


@@ 159,5 159,7 @@ void oled_task_user(void) {
      (uint8_t)(rgblight_get_sat() / RGBLIGHT_SAT_STEP),
      (uint8_t)(rgblight_get_val() / RGBLIGHT_VAL_STEP));
  oled_write(led_buf, false);

    return false;
}
#endif

M keyboards/yampad/keymaps/via/keymap.c => keyboards/yampad/keymaps/via/keymap.c +3 -1
@@ 122,7 122,7 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return OLED_ROTATION_270;  // flips the display 270 degrees
}

void oled_task_user(void) {
bool oled_task_user(void) {
  // Host Keyboard Layer Status
  oled_write_P(PSTR("Layer"), false);
  switch (get_highest_layer(layer_state)) {


@@ 159,5 159,7 @@ void oled_task_user(void) {
      (uint8_t)(rgblight_get_sat() / RGBLIGHT_SAT_STEP),
      (uint8_t)(rgblight_get_val() / RGBLIGHT_VAL_STEP));
  oled_write(led_buf, false);

    return false;
}
#endif

M keyboards/yampad/yampad.c => keyboards/yampad/yampad.c +8 -5
@@ 17,13 17,14 @@
#include "yampad.h"

#if defined(OLED_ENABLE)
__attribute__((weak))
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return OLED_ROTATION_270;  // flips the display 270 degrees
oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
    return OLED_ROTATION_270;
}

__attribute__((weak))
void oled_task_user(void) {
bool oled_task_kb(void) {
    if (!oled_task_user()) {
        return false;
    }
  // Host Keyboard Layer Status
  oled_write_P(PSTR("Layer"), false);
  switch (get_highest_layer(layer_state)) {


@@ 60,5 61,7 @@ void oled_task_user(void) {
      (uint8_t)(rgblight_get_sat() / RGBLIGHT_SAT_STEP),
      (uint8_t)(rgblight_get_val() / RGBLIGHT_VAL_STEP));
  oled_write(led_buf, false);

  return false;
}
#endif

M keyboards/z12/keymaps/zigotica/oled.c => keyboards/z12/keymaps/zigotica/oled.c +2 -2
@@ 37,7 37,7 @@ static void render_status(void) {
    }
}

void oled_task_user(void) {
bool oled_task_user(void) {
    render_status();
    return false;
}


M keyboards/zoo/wampus/wampus.c => keyboards/zoo/wampus/wampus.c +1 -2
@@ 22,8 22,7 @@ void board_init(void) {
    SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_SPI2_DMA_RMP);
}

oled_rotation_t oled_init_user(oled_rotation_t rotation) {
oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
    return OLED_ROTATION_180;
}

#endif

M users/curry/oled.c => users/curry/oled.c +2 -1
@@ 137,7 137,7 @@ void render_status_secondary(void) {
    render_keylogger_status();
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (timer_elapsed32(oled_timer) > 30000) {
        oled_off();
        return;


@@ 152,6 152,7 @@ void oled_task_user(void) {
    } else {
        render_status_secondary();
    }
    return false;
}

bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {

M users/drashna/oled_stuff.c => users/drashna/oled_stuff.c +2 -1
@@ 421,7 421,7 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return oled_init_keymap(rotation);
}

void oled_task_user(void) {
bool oled_task_user(void) {
    update_log();

    if (is_keyboard_master()) {


@@ 442,4 442,5 @@ void oled_task_user(void) {
    } else {
        render_keylock_status(host_keyboard_leds());
    }
    return false;
}

M users/ninjonas/oled.c => users/ninjonas/oled.c +2 -1
@@ 90,7 90,7 @@ static void render_logo(void) {
  oled_write_P(qmk_logo, false);
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (timer_elapsed32(oled_timer) > 15000) {
        oled_off();
        return;


@@ 106,6 106,7 @@ void oled_task_user(void) {
        oled_write_P(PSTR("\n"), false);
        oled_scroll_left();
    }
    return false;
}

#endif

M users/riblee/riblee.c => users/riblee/riblee.c +4 -3
@@ 245,10 245,9 @@ static void render_info(void) {
    }

    // Print string received via HID RAW
    oled_write_ln(receive_buffer, false);
}
    oled_write_ln(receive_buffer, false);}

void oled_task_user(void) {
bool oled_task_user(void) {
    static bool finished_timer = false;
    if (!finished_timer && (timer_elapsed(startup_timer) < 1000)) {
        render_logo();


@@ 259,6 258,8 @@ void oled_task_user(void) {
        }
        render_info();
    }
    return false;

}

#ifdef RAW_ENABLE

M users/snowe/oled_setup.c => users/snowe/oled_setup.c +2 -1
@@ 121,7 121,7 @@ void render_bootmagic_status(void) {
    oled_write_ln(wpm, false);
}

void oled_task_user(void) {
bool oled_task_user(void) {
    if (is_master) {
        oled_render_layer_state();
        oled_render_keylog();


@@ 136,6 136,7 @@ void oled_task_user(void) {
        render_stars();
#    endif
    }
    return false;
}

#endif  // OLED_ENABLE

M users/tominabox1/tominabox1.c => users/tominabox1/tominabox1.c +2 -1
@@ 262,7 262,7 @@ void render_status_main(void) {
__attribute__ ((weak))
void oled_task_keymap(void) {}

void oled_task_user(void) {
bool oled_task_user(void) {

    if (timer_elapsed(oled_timer) > 20000) {
        oled_off();


@@ 275,6 275,7 @@ void oled_task_user(void) {
            oled_scroll_left();
        }
        oled_task_keymap();
        return false;
    }

#endif // OLED_Driver

M users/xulkal/custom_oled.c => users/xulkal/custom_oled.c +2 -1
@@ 176,7 176,7 @@ static void render_status(void)

#endif // OLED_90ROTATION

void oled_task_user(void)
bool oled_task_user(void)
{
    if (is_keyboard_master())
        render_status();


@@ 185,4 185,5 @@ void oled_task_user(void)
        render_logo();
        oled_scroll_left();
    }
    return false;
}