# Dynamic Home Screen

**URL:** <http://forum.squareline.io/t/dynamic-home-screen/2223>\
**Category:** How to\
**Created:** [December 13, 2023, 3:49pm UTC](http://forum.squareline.io/t/dynamic-home-screen/2223 "2023-12-13T15:49:28Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![CodeGrue](http://forum.squareline.io/letter_avatar_proxy/v4/letter/c/4491bb/32.png) [@CodeGrue](http://forum.squareline.io/u/CodeGrue)\
**Post date:** [December 13, 2023, 3:49pm UTC](http://forum.squareline.io/t/dynamic-home-screen/2223/1 "2023-12-13T15:49:28Z")

</div>

### What do you want to achieve?

I want to dynamically designate which screen to load first, probably via the Initial Actions function.

The first screen in the SquareLine UI has a “home” icon and is the one that gets loaded in the ui\_init(void) method. I would want there to be no home screen and/or no loaded screen by default in the init method.

Use Case: I want to show a diagnostics screen on the first run of the app, but show a dashboard screen on subsequent runs.

### What have you tried so far?

I tried loading different screens from the home screen’s LoadStart or Loaded events but I get a crash error when I do that.

### Others

- \*\*SquareLine Studio version: 1.3.4
- \*\*Operating system: Windows
- \*\*Target hardware: ESP32

---

<div class="post-metadata">

**Author:** ![Marian\_M](http://forum.squareline.io/letter_avatar_proxy/v4/letter/m/4af34b/32.png) [@Marian\_M](http://forum.squareline.io/u/Marian_M)\
**Post date:** [December 13, 2023, 4:35pm UTC](http://forum.squareline.io/t/dynamic-home-screen/2223/2 "2023-12-13T16:35:12Z")

</div>

Why you dont use blank screen as home …?

---

<div class="post-metadata">

**Author:** ![CodeGrue](http://forum.squareline.io/letter_avatar_proxy/v4/letter/c/4491bb/32.png) [@CodeGrue](http://forum.squareline.io/u/CodeGrue)\
**Post date:** [December 13, 2023, 5:33pm UTC](http://forum.squareline.io/t/dynamic-home-screen/2223/3 "2023-12-13T17:33:40Z")

</div>

I would try that but it seems like jumping from a screen to another in the loading events causes a crash.

EDIT: Made a blank startup screen and confirmed this causes an unhandled exception:

```auto
void StartupScreenLoadStart(lv_event_t *e)
{
	// on first run, switch to diagnostics
	bool isFirstRun = g_settings.getFirstRun();
	if (isFirstRun)
		lv_scr_load(ui_DiagnosticsScreen);
	else
		lv_scr_load(ui_SplashScreen);
}

```

EDIT2: Loaded event may work… testing now

---

<div class="post-metadata">

**Author:** ![CodeGrue](http://forum.squareline.io/letter_avatar_proxy/v4/letter/c/4491bb/32.png) [@CodeGrue](http://forum.squareline.io/u/CodeGrue)\
**Post date:** [December 13, 2023, 6:25pm UTC](http://forum.squareline.io/t/dynamic-home-screen/2223/4 "2023-12-13T18:25:06Z")

</div>

Okay I confirmed this technique works using the Screen Loaded event. Thanks!
