Das erste Grundgerüst eines eigenen Skins
An diesem Artikel wird derzeit gearbeitet. Achtung: Der Artikel kann unvollständig und fehlerhaft sein!
Inhaltsverzeichnis
Einleitung
Hier geht es darum was man mindestens Benötigt um ein Skin auswählen zu können folgende Kriterien erfüllt:
- erstens als Grundgerüst der skin.xml dient
- zweites auch startet ohne zu Crashen
Die erste eigene skin.xml
Die skin.xml ist die Datei die das verhalten eures Skins beeinflusst.
Im Normalfall werden dort die meisten Screens "geskinnt", die Screens die nicht geskinnt wurden, werden dann im Normalfall über den "default-skin" dargestellt.
Dies bedeutet als gute Ausgangsbasis ist der Skinaufbau des Defaultskins immer eine gute Idee. Auch wenn sich mal was am OE2.0 ändert ist der Defaultskin wohl der erste Skin der die Neuerungen Problemlos darstellen sollte. Bei dem neuen OE2.0 gibt es ja nun auch zusätzlich den neuen Skin Default-HD wer ja endlich einen HD Skin als default verwenden will. Auch hier kann es recht Sinnvoll sein sich diesen anzuschauen.
Später kann und wird es natürlich sein das man sich die Unterschiede von verschiedenen Skins mal selbst genauer betrachtet um zu sehen was dort denn anders gemacht wurde und was diese Änderungen denn bewirken.
Die skin.xml ist zu finden unter: usr/share/enigma2/ im entsprechenden Verzeichnis der installierten Skins. |
Erstellen wir also unseren eigenen Skin (ohne Grafik usw.), der einfach nur Startet. Erstellt euch also folgendes in usr/share/enigma2/:
- ein eigenes Verzeichnis für den neuen Skin (ich benutze mal BlackdreamHD)
- eine skin.xml die mindestens folgendes enthält (aus dem Skin Default-HD) herausgenommenen und getestet.
Die skin.xml im OE2.0, muss folgendes beinhalten damit diese überhaupt Bootbar ist und nicht beim Aufruft crasht:
- die Definition des Skins <skin> </skin>
- die Definition der Auflösung <output id="0"> </output>
- die Definition der Farben <colors> </colors>
- die Definition des Fonts <fonts> </fonts> (war bei OE1.6 nicht nötig)
- die Definition der Farben der Fenster <windowstyle> </windowstyle>
<skin> <!-- Head for Image resolution --> <output id="0"> <resolution xres="1280" yres="720" bpp="32" /> </output> <!-- Colors (#AARRGGBB) --> <colors> <color name="black" value="#000000"/> <color name="white" value="#ffffff"/> <color name="grey" value="#b3b3b9"/> <color name="grey2" value="#d3d3d9"/> <color name="dark" value="#20062748"/> <color name="menu" value="#20062748"/> <color name="red" value="#f23d21"/> <color name="green" value="#389416"/> <color name="blue" value="#0064c7"/> <color name="yellow" value="#bab329"/> <color name="transparent" value="#ff000000"/> <color name="transpBlack" value="#80000000"/> <color name="transpWhite" value="#80ffffff"/> <color name="background" value="#200d1940"/> <color name="foreground" value="#ffffff"/> </colors> <!-- Fonts --> <fonts> <font filename="nmsbd.ttf" name="Regular" scale="100"/> <font filename="lcd.ttf" name="LCD" scale="100"/> <font filename="ae_AlMateen.ttf" name="Replacement" scale="100" replacement="1"/> <font filename="tuxtxt.ttf" name="Console" scale="100"/> </fonts> <!-- Main screen colors (id=0 Framebuffer) --> <windowstyle type="skinned" id="0"> <title offset="15,9" font="Regular;26" /> <color name="Background" color="#200d1940"/> <color name="LabelForeground" color="#ffffff"/> <color name="ListboxBackground" color="#200d1940"/> <color name="ListboxForeground" color="#ffffff"/> <color name="ListboxSelectedBackground" color="#204176b6"/> <color name="ListboxSelectedForeground" color="#ffffff"/> <color name="ListboxMarkedBackground" color="#200d1940"/> <color name="ListboxMarkedForeground" color="#00ff00"/> <color name="ListboxMarkedAndSelectedBackground" color="#204176b6"/> <color name="ListboxMarkedAndSelectedForeground" color="#00ff00"/> <color name="WindowTitleForeground" color="#ffffff"/> <color name="WindowTitleBackground" color="#16244b"/> </windowstyle> </skin>
Hierbei haben wir nun zwar keine Infobar und müssten Blind zappen, und auch bei Aufruf des Menü haben wir hier nur ein spartanes Fenster aber dies wäre wie gesagt die Minimalausgabe damit der Skin
keinen Crash verursacht.
Erklärung zur skin.xml
Wie der Name der skin.xml schon sagt handelt der ganze Aufbau eines Skins aus der einer Scriptsprache, die den Namen XML trägt.
Die XML arbeitet mit Elementen und der Skin selbst wird ja mittels dem ersten Element <skin> gestartet, beendet wird der Skin mittels </skin>
Dazwischen werden die anderen Benötigten Elemente eingebaut. Wobei es immer nach dem gleichen Schema abläuft, das gewünschte Element starten mit den zwei Pfeilen <Elementanfang> und endet wenn nach dem ersten Pfeil ein Backslash / gesetzt wird </Elementende>.
Kommentare
Kommentare können wie folgt eingefügt werden:
<!-- dies ist ein Kommentar --> <!-- mit diesem Zeichen beginnt ein Kommentar und endet erst wenn diese Zeichenkette folgt -->
Natürlich kann man auch bei Änderungen an der skin.xml auf diesem Wege auch gewisse Zeilen und Elemente "Auskommentieren" damit diese beim nächsten Start nicht mehr mit eingelesen werden.
Elemente
<!-- Das Ausgabe Element definiert folgendes --> <output id="0"> <!-- Wohin der Output geht, id="0" ist der Bildschirm, (id=1 LCD), (id=2 Color OLED (dm800se) --> <resolution xres="1280" yres="720" bpp="32" /> <!-- Die Größe bzw. die Auflösung des Skins --> </output> <!-- Ende des Output Elements -->
<!-- Im Farben-Element werden mittels dem dem HTML-Farbcode Farben zugewiesen --> <colors> <!-- Element Anfang --> <color name="black" value="#000000"/> <color name="white" value="#ffffff"/> <!-- Durch die zuweisung können wir im Skin Namen für Farbwünsche verwenden und müssen nicht immer nachschauen welchen Farbcode unsere Wunschfarbe besitzt --> </colors> <!-- Element Ende -->
<!-- Fonts, englisch für die Schriftzeichen --> <fonts> <font filename="nmsbd.ttf" name="Regular" scale="100"/> <font filename="lcd.ttf" name="LCD" scale="100"/> <font filename="ae_AlMateen.ttf" name="Replacement" scale="100" replacement="1"/> <font filename="tuxtxt.ttf" name="Console" scale="100"/> <!-- Dies sind die Standardschriftzeichen, wer andere verwenden will muss diese sich erst installieren --> </fonts>
<!-- Main screen colors (id=0 Framebuffer) --> <!-- Hier werden die Farben der verschiedenen Fenster-Elemete festgelegt weiterhin den verwendeten Schriftsatz und dessen Größe --> <windowstyle type="skinned" id="0"> <title offset="15,9" font="Regular;26" /> <color name="Background" color="#200d1940"/> <color name="LabelForeground" color="#ffffff"/> <color name="ListboxBackground" color="#200d1940"/> <color name="ListboxForeground" color="#ffffff"/> <color name="ListboxSelectedBackground" color="#204176b6"/> <color name="ListboxSelectedForeground" color="#ffffff"/> <color name="ListboxMarkedBackground" color="#200d1940"/> <color name="ListboxMarkedForeground" color="#00ff00"/> <color name="ListboxMarkedAndSelectedBackground" color="#204176b6"/> <color name="ListboxMarkedAndSelectedForeground" color="#00ff00"/> <color name="WindowTitleForeground" color="#ffffff"/> <color name="WindowTitleBackground" color="#16244b"/> </windowstyle>
Wer gerne in seinem Skin aber gerahmte Fenster verwenden will wird auch hier in der skin.xml des Default-HD fündig wie dies Aufgebaut ist:
Dies ist auch ein Unter-Element das dann in das Haupt-Element des windowstyle eingefügt werden muss!!
<!-- screen border png's --> <borderset name="bsWindow"> <pixmap pos="bpTopLeft" filename="Default-HD/b_tl.png" /> <pixmap pos="bpTop" filename="Default-HD/b_t.png" /> <pixmap pos="bpTopRight" filename="Default-HD/b_tr.png" /> <pixmap pos="bpLeft" filename="Default-HD/b_lr.png" /> <pixmap pos="bpRight" filename="Default-HD/b_lr.png" /> <pixmap pos="bpBottomLeft" filename="Default-HD/b_bl.png" /> <pixmap pos="bpBottom" filename="Default-HD/b_b.png" /> <pixmap pos="bpBottomRight" filename="Default-HD/b_br.png" /> </borderset>
Komplett würde dies dann so Aussehen wie man es vom Default-HD skin her gewohnt ist. Wer hier nun andere Grafiken haben will muss sich diese dann selbst erstellen.