Are you interested in performance issues of the skins?
I've been profiling the code a bit (on a ZGemma H.2S) and noticed that the background jpeg for Onyx isn't cached, so it is loaded every time it is needed, adding 0.6 seconds. PNGs are cached, so this would be quicker, although the file would be larger.
Profile for opening the graphical EPG:
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 2.660 2.660 /usr/lib/enigma2/python/Screens/InfoBarGenerics.py:2019(openGraphEPG)
1 0.000 0.000 2.660 2.660 /usr/lib/enigma2/python/Screens/InfoBarGenerics.py:1993(MultiServiceEPG)
1 0.000 0.000 2.653 2.653 /usr/lib/enigma2/python/Screens/InfoBarGenerics.py:1974(openBouquetEPG)
1 0.000 0.000 2.653 2.653 /usr/lib/enigma2/python/StartEnigma.py:155(openWithCallback)
1 0.001 0.001 2.653 2.653 /usr/lib/enigma2/python/StartEnigma.py:161(open)
2 0.002 0.001 2.381 1.191 /usr/lib/enigma2/python/StartEnigma.py:125(doInstantiateDialog)
1 0.000 0.000 2.346 2.346 /usr/lib/enigma2/python/StartEnigma.py:103(instantiateDialog)
2 0.001 0.001 1.532 0.766 /usr/lib/enigma2/python/Screens/Screen.py:222(applySkin)
2 0.011 0.005 1.524 0.762 /usr/lib/enigma2/python/Screens/Screen.py:246(createGUIScreen)
77 0.007 0.000 0.875 0.011 /usr/lib/enigma2/python/skin.py:954(applyAllAttributes)
77 0.016 0.000 0.866 0.011 /usr/lib/enigma2/python/skin.py:659(applyAll)
411 0.022 0.000 0.850 0.002 /usr/lib/enigma2/python/skin.py:664(applyOne)
52 0.005 0.000 0.717 0.014 /usr/lib/enigma2/python/skin.py:791(pixmap)
52 0.006 0.000 0.711 0.014 /usr/lib/enigma2/python/skin.py:487(parsePixmap)
85 0.008 0.000 0.703 0.008 /usr/lib/enigma2/python/Tools/LoadPixmap.py:7(LoadPixmap)
===> 1 0.653 0.653 0.653 0.653 {built-in method _enigma.loadJPG}
2 0.004 0.002 0.628 0.314 /usr/lib/enigma2/python/skin.py:1315(readSkin)
43/2 0.027 0.001 0.617 0.309 /usr/lib/enigma2/python/skin.py:1495(processScreen)
119 0.121 0.001 0.560 0.005 /usr/lib/enigma2/python/Tools/Directories.py:91(resolveFilename)
Display More
2nd (and subsequent) time using a PNG instead of a JPG for the background, cuts the time down from 2.6 to 1.9 seconds:
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 1.911 1.911 /usr/lib/enigma2/python/Screens/InfoBarGenerics.py:2019(openGraphEPG)
Also note that it spends 0.5 seconds resolving filenames. I used a cache to help cut that too, now down to 1.4 seconds:
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 1.433 1.433 /usr/lib/enigma2/python/Screens/InfoBarGenerics.py:2019(openGraphEPG)
I'm still fairly new to Enigma, so I may well have missed stuff. But it might be useful.
UPDATE:
I removed the picon & "channel-icons" section from the top-right (which I don't really need) and got it under 1 second! I'm not sure why they are so slow. (I don't have picons installed.). UPDATE: It turned out that the "channel-icons" are the main problem.
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 0.983 0.983 /usr/lib/enigma2/python/Screens/InfoBarGenerics.py:2019(openGraphEPG)
Bouquets with lots of channels seem to slow down the opening of the EPG too. I'm going to have a look at that now.
UPDATE: It was loading the EPG data for all the channels at once, visible or not. I've changed that and it runs great now - very smooth!
I'll tidy it up a bit and maybe try to get it into OpenATV.