@startuml title Onscreenapp Startup Sequence entity Systemd entity HomeScreen_Service entity Onscreenapp entity WindowManager as WM == System StartUp == Systemd->Onscreenapp: start group WindowManger Initilize Onscreenapp->WM: init(port, token) Onscreenapp->WM: requestSurface("on_screen.app") rnote over WM WM process end rnote Onscreenapp<--WM: return SurfaceID Onscreenapp->WM: subscribe Event_SyncDraw Onscreenapp->WM: subscribe Event_Visible Onscreenapp->WM: subscribe Event_Invisible end group HomeScreen_Service Initilize Onscreenapp->HomeScreen_Service: init(port, token) Onscreenapp->HomeScreen_Service: subscribe showWindow Event Onscreenapp->HomeScreen_Service: subscribe hideWindow Event Onscreenapp->Onscreenapp: qmlLoad() end @enduml