from kivy.config import Config
Config.set('graphics','shaped',1)
from kivy.app import App
from kivy.core.window import Window
from kivy.clock import Clock
from kivy.uix.image import Image
from kivy.uix.screenmanager import ScreenManager, Screen, FadeTransition

# get screen size
import ctypes
user32 = ctypes.windll.user32
screensize = user32.GetSystemMetrics(0), user32.GetSystemMetrics(1)

sm = ScreenManager(transition = FadeTransition())

def switchToMain():
    sm.current = 'main'
    
class MainScreen(Screen):
    pass
    
class SplashScreen(Screen):

    def on_leave(self):
    
        Clock.schedule_once(self.set)
        Window.borderless = False
        Window.size = (800, 600)
        Window.left = 0
        Window.top = 33
        
    def set(self,dt):
    
        Window.shape_image = 'defaultshape.png' # doesn't work
        Window.shape_mode = 'default'

class TestApp(App):

    def build(self):
    
        Clock.schedule_once(self.set)
        
        global sm
        sm.add_widget(SplashScreen(name='splash'))
        sm.add_widget(MainScreen(name='main'))
        return sm
        
    def set(self,dt):    
    
        Window.shape_image = 'kivy-icon-256.png'
        Window.shape_mode = 'binalpha'


if __name__ == '__main__':

    Window.fullscreen = False
    Window.borderless = True
    Window.size = (256, 256)
    Window.left = int((screensize[0]-Window.size[0])/2)
    Window.top = int((screensize[1]-Window.size[1])/2)
    
    Clock.schedule_once(lambda dt: switchToMain(), 2)
    TestApp().run()