Quantcast
Channel: Kodi Community Forum - Skinning
Viewing all 1801 articles
Browse latest View live

Paths for PVR windows

$
0
0
Hi guys,

Is there squirreled away on the wiki somewhere a list of valid PVR paths much like the following . I know Kodi allows such a thing as Estuary makes use of of a couple of these on the home screen for its widgets. For example:

in home.xml

<param name=“content_path” value=“pvr://channels/tv/*?view=flat”/>

so what I am chasing is a list of valid “pvr://blah” type paths to use for widgets. Also as a bonus question is there a list of valid view=doohickey ?

Wyrm (AppTV)

Need Skinner for work

$
0
0
Hello,

I have an order from a legal contain company to create a skin + addon for them.

I need someone that can do the skin part because i don't have enough experience in skinning.

I hope that ok to publish here.

Thank you

How to get the "position" of another object to for use in say an animation?

$
0
0
Hi, have been trying my google-fu and haven't seen an answer to what would appear to be a simple question. I'd like to set a control (preferably via animation) to a location based on another controls location. Basically I am wondering(and I suppose assuming) if there is something like

Code:
Control(307).posx

More specifically Id love to set it using an animation for example:

Code:
<animation condition="Control.HasFocus(307)" effect="slide" start="0,0" end="Control(307).posx,0" time="180" easing="inout" reversible="true">Conditional</animation>

Where "Control(307)" is not the control being animated rather another control we are getting posx from.

Thanks.

How can i delete the button "Reset above settings to default" in setting categories?

$
0
0
Hello!
I have been trying for a long time to modify the Confluence Skin, and I would like to delete or hide the "Reset above settings to default" button in the System - Settings categories.
There is a way to do this please?
Image

XML Required to Access Channel Groups via a skin

$
0
0
I am modding the SkyQue skin for my own purposes. If you are familiar with that skin, you click 'TV Guide' and it takes you into a TV guide with all your available channels present. What I wish to do is add an extra window, so that 'TV Guide' then takes you into a new window that has different categories of channels. If you were to click 'Sport' for example you would get sport channels only.

I am not asking for general assistance in adding windows or settng up channel groups etc, but what I am asking for is, what is the correct parameters/options/syntax I would need to use to toggle between channel groups? The logic order here would be then:

1. I click on my new sport button.
2. The sport channel group is selected
3. I then activate my EPG window where only the sports channels are now displayed.

Thanks

How to create Custom XML with content fetched from local File or HTTP.

$
0
0
I'm a noob and have been racking my brain to achieve the following for the last 3 days and have gotten nowhere.

I'd like to create a new custom xml window that takes up the entire screen and use control type "Panel". In the panel I'd like to show thumbnail images that are dynamically learnt via a local file or via http call to local server (whichever is easier).

So far I've been able to create a custom XML with just a label and button control and open this page by activatewindow(1101) call made elsewhere. But when I change the code of this custom XML to include content type "panel", the window loads but I see nothing on the window.

Here is the custom XML I have so far. (I'm not able to get static content so far, once I get that showing, then I'll look into populating it by fetching it from the file)

I have tried a few different variations of controls under control type but none seem to show.

Your advice with some basic XML code will be much appreciated in getting me on the right track. Thanks in advance. 

-------- XML file -------
<?xml version="1.0" encoding="UTF-8"?>
<window id="1101">
    <defaultcontrol always="false">1234561</defaultcontrol>
    <backgroundcolor>0xff00ff00</backgroundcolor>
    <controls>    
        <control type="panel" id="1234580">
            <left>50</left>
            <top>50</top>
            <width>600</width>
            <height>600</height>
            <viewtype label="536">icon</viewtype>
            <content>
              <item id="1">
                <label>My First Item</label>
                <label2>Label 2</label2>
                <icon>icon1.png</icon>
                <thumb>thumb1.png</thumb>
                <onclick>ActivateWindow(Home)</onclick>
                <visible>true</visible>
                <property name="foo">Some1stValueHere</property>
                <property name="foo2">Some2ndValueHere</property>
              </item>
              <item id="2">
                <label>My Second Item</label>
                <label2>Label 2</label2>
                <icon>icon2.png</icon>
                <thumb>thumb2.png</thumb>
                <onclick>ActivateWindow(MyMusicLibrary)</onclick>
                <property name="foo">Some1stValueHere</property>
                <property name="foo2">Some2ndValueHere</property>
              </item>
            </content>
        </control>
    </controls>
</window>

GlobalSearch for Kodi Leia

$
0
0
for kodi leia i've decided to rewrite the globalsearch addon from scratch.
this means skinners will also have to rewrite their custom xml for the globalsearch addon from scratch....

luckily this isn't as bad as it sounds and should be relatively (hopefully) easy.

some notable changes:
  • the main window (script-globalsearch.xml) is now a window instead of a dialog (as much requested by skinners)
  • i've removed as much required id's as possible. only a few mandatory id's remain
  • the globalsearch window behaves (almost) like a regular videolibrary/musiclibrary window:
  • the addon will use DialogMusicInfo.xml / DialogVideoInfo.xml from your skin, no need to create a globalsearch infodialog anymore
  • you can define multiple viewtypes if you like
  • using Container.Content() should work
  • ListItem.Art() should work
  • you can now use normal infolabels like you're used to: for instance ListItem.Genre instead of ListItem.Property(genre)
... it might even be as simple as just including the views you've already created for the video/music library in the globalsearch xml file.


before i submit it to the addon repo, i'll put it up here for a while, so we can catch some bugs before the official release.
download for skinners: script.globalsearch-8.0.0

note: you need a recent nightly build (2018) in order to test it.

Selected condition for radiobutton

$
0
0
Hi people,

I currently have two lists (the first one being a list of all main menu items, and the second being a list of settings for the specific menu item). I have a radiobutton, that determines whether or not the currently selected item should be disabled from the main menu. So basically i have one radio button, for displaying a property for all main menu items.

I cant get any $INFO's or $VAR's working inside a <selected> tag, so my first question is whether or not it is possible to have a variable <selected> tag (in this case it would be dependent on which item was in focus in the list of main menu items, as well as a Skin.HasSetting bool)?

The second is, if it is not possible, would it be better to make one radio button with a very long and complex <selected> tag - Like the following:

<selected>[Container(1).HasFocus(10) + Skin.HasSetting(Hide10)] | [Container(1).HasFocus(11) + Skin.HasSetting(Hide11)].........(for every main menu item) </selected

Or would it be better to have one radiobutton for every menu item, and just set visibility conditions for every one of them?

Thanks,

Remove script.artwork.downloader as dependency!

$
0
0
Due to continuous stealing of API keys Artwork Downloader became non functioning a long while ago. Because of this I have absolutely zero intention of fixing it again but never marked it broken because skins depend on it and it would create chaos. I will also not accept any updates for it in our repo and as such will mark it broken in Leia repo in a while. If enough skins have dropped it Krypton will be next.
Since Python scrapers are on the horizon as well it should become obsolete. Artwork Beef is somewhat of a fork and still maintained. https://forum.kodi.tv/showthread.php?tid=258886

You can all thank the freaking pirates, builds, idiots and whatever so called "communities" for destroying it.
This decision is non negotiable.

Special Features [Beta to come later tonight]

$
0
0
A addon that brings new life to a old idea. With this addon it will scan you local or smb library looking for Extras folder, Where this time I am adding full metadata from the original movie and support for full bluray and dvd rips of all that bonus material you don't want in the normal library. All of this content is scanned into my own database which will be checked will your browsing your movies library, if the item you have selected has any extras available then a ne option will appear on your context menu... or if the skinner what to add a button to the dialog video info then it may show up there. If you use this a a pure video addon it will list all your movie extras in a movie library view allowing you basic sort options of rating mpaa rating, by title, year and dateadded.  I will be including the skin file for estuary so you can see how it can be integrated.  This will be able to be used with and without skin integration but I am posting here because it can be integrated into your skin for a more seamless use.
 
I plan on posting the code in GitHub later tonight as I have just a few more things to finish up. as well as needing to come up with icon and fanart.

But for now without furthered ado, I present you with Special Features. 




Is still used in Kodi 18?

$
0
0
The Omni skin was originally a mod of BigNoid's Aeon Nox and has <allowoverlay> tags in most of the windows. Are these tags needed or even valid in Kodi 18? I can't find anything in the wiki or skinning manual about this tag, looks like it's been deprecated? And I noticed newer skins don't seem to use it. Thanks for clarifying!

Question about ListItem.Art(poster)

$
0
0
It's been awhile so I think some things may have changed.

There seems to be three ways of accessing poster art:
 
Code:
#1   ListItem.Property.Art(poster)
#2   ListItem.Property(art(poster))
#3   Container.ListItem.Art(poster)

 My issue is that each one works differently in different places,

#1 displays perfectly in DialogVideoInfo.xml everytime, and in lists about 40% of the time. (most of the time I think we don't notice it because ListItem.Icon will display the thumbnail cache as a fallback in most skins, but it isn't always the poster image we expect, especially if you have a media file with a local %movie%-thumb.jpg image, that will always become the ListItem.Icon image)
#2 is the only thing that works in script-globalsearch-main.xml, and doesn't seem to work anywhere else. (this usage isn't documented anywhere making it very frustrating when trying to skin script-globalsearch-main.xml)
#3 also displays 40% of the time in a list, but never in DialogVideoInfo.xml

Oddly #1 and #3 work perfectly in lists after you manually set the poster to local on every file that is not displaying correctly, even though DialogVideoInfo.xml is already displaying the correct image as a poster to you before you tell it manually.

Can someone explain how the local scrapper appears to have scrapped the poster image about half the time but is showing 100% of the time in DialogVideoInfo?
Or is there a usage that will work to display the poster 100% of the time in lists like it does in DialogVideoInfo without the need to have the user manually set it first/again?

Some help please

$
0
0
Hi everyone, i dont have any knowldge what so ever in skinning, and no one awnserring my qustion on the skin forum, and here you can probebly help, im using estuary mod skin

1. I would like to create a shortcut to iptv simple claint setting is it possibale (costume commend will be awsome), how can i do it?

2. I would like to add another hub to the skin, how can i do thet?


Thanks in advance everyone

help with sorting a WidgetListCategories

$
0
0
OK, Im not really sure what to officially call what I'm trying to do :-)  

I'm just an amateur modifying the default estuary skin to make it more custom.
I've got pretty much everything working the way I want, except this one thing is confounding me.

in Home.xml, I've modified the widgets on the RHS of "movies" to simply have 3 lists:    genres, Recently added movies, and a new "Years" category.  The first 2 already existed, I deleted the rest, and I tried adding a modified version of "genres" to show the years

It works... except it shows them in ascending order, starting in 1927.  I want them in descending order since the point was an easy way to get to the last few years of releases. And of course it gets cut off after 15 or so... meaning all the recent years I am looking for aren't available at all :-P

Nothing I try makes this happen.   The widget currently looks like:

<include content="WidgetListCategories" condition="Library.HasContent(movies)">
  <param name="content_path" value="videodb://movies/years/"/>
  <param name="sortorder" value="descending"/>
  <param name="widget_header" value="Years"/>
  <param name="widget_target" value="videos"/>
  <param name="list_id" value="7777"/>
  <param name="icon" value="$VAR[WidgetYearIconVar]"/>
  <param name="icon_height" value="70"/>   
</include>


I've also tried adding various 'sortby' fields (date, year, years), but nothing seems to change the order.       

Suggestions? 

Thanks
Andrew

Use smaller font size if label is greater than grouplist width?

$
0
0
Hi Guys

I have a grouplist setup to display the movie title and cert beside one another. If a movie title is too long its gets cut off at the end.

I would like to use another label with a smaller font only if the movie title is greater than width. I cant increase the grouplist width as it overlaps other images.

I could reduce the font size overall but would like to keep the bigger font for all movies and only use smaller font for longer titles.

Not sure what conditional visibility to use for this.

Thanks for any info
Code:
<control type="grouplist">
                    <left>300</left>
                    <top>832</top>
                    <orientation>horizontal</orientation>
                    <itemgap>4</itemgap>
                    <width>1240</width>
                    <control type="label">
                        <!-- Title -->
                        <width>auto</width>
                        <height>60</height>
                        <font>Font_movie</font>
                        <textcolor>FFFFFAF0</textcolor>
                        <label>$VAR[value_videotitle] </label>
                        <shadowcolor>red</shadowcolor>
                    </control>
                    <control type="image">
                        <!-- Certification -->
                        <height>54</height>
                        <width>54</width>
                        <align>center</align>
                        <aligny>center</aligny>
                        <aspectratio>keep</aspectratio>
                        <texture>$VAR[value_mpaa]</texture>
                    </control>
                </control>

favourites://

$
0
0
Hi,

I currently have a panel container, displaying <content>favourites://</content>. The items show up correctly, but when i click any of them, nothing happens. I figure that this must be possible, given that Estuary seems to have implemented favourites as dynamic content, but i cannot get it to work on my end. Does using favourites in a container work like normal, or is there something i have missed?

Thanks,

Sets Disc animation issue when moving between sets

$
0
0
Hi Guys

I have an slide animation setup on sets discs. The animation works fine when scrolling from a (bluray DVD etc) to the sets.

When i have two sets beside one another in a list the slide animation doesnt display.

I've added condition="SubString(ListItem.Path,videodb://movies/sets,left) but not sure what else to add.

I post a clip of my issue. As you can see at the start when I scroll from dvd to set the discs slide out properly. Now if I scroll down to the next set notice the discs appear all at once without them sliding out in sequence. Thanks




Code:
<control type="group" id="25000">
               
                <animation type="WindowOpen" reversible="false">
                    <effect type="slide" start="-150,0" end="0,0" time="500" delay="500" tween="cubic" easing="out" />
                    <effect type="fade" start="0" end="100" time="500" delay="500" />
                </animation>
                <animation type="Visible" reversible="false">
                    <effect type="slide" start="-150,0" end="0,0" time="500" delay="500" tween="cubic" easing="out" />
                    <effect type="fade" start="0" end="100" time="500" delay="500" />
                </animation>
                <animation effect="fade" start="100" end="0" time="200">WindowClose</animation>
                <animation type="Hidden">
                    <effect type="slide" start="0,0" end="-150,0" time="300" tween="cubic" easing="out" />
                    <effect type="fade" start="100" end="0" time="200" />
                </animation>
               <visible>![IsEmpty(Window(Home).Property(SkinHelper.ListItem.0.Art.DiscArt)) | Skin.HasSetting(noposterlistdiscart)] + Window.IsActive(25) + SubString(ListItem.Path,videodb://movies/sets,left) + Control.IsVisible(9923) + Control.IsVisible(70)</visible>
                <control type="image">
                    <width>240</width>
                    <height>240</height>
                    <left>330</left>
                    <top>540</top>
                    <texture diffuse="cdart_diffuse.png" background="true">$INFO[Window(Home).Property(SkinHelper.ListItem.0.Art.DiscArt)]</texture>
                   <visible>!IsEmpty(Window(Home).Property(SkinHelper.ListItem.0.Art.DiscArt))</visible>
                    <animation effect="slide" start="-1140,0" end="0,0" delay="1000" time="2600" tween="cubic" easing="inout" condition="SubString(ListItem.Path,videodb://movies/sets,left)">Conditional</animation>
                    <animation effect="rotate" start="0" end="-360" center="auto" time="30000" delay="8000" loop="true" reversible="false" condition="SubString(ListItem.Path,videodb://movies/sets,left)">Conditional</animation>
                
                    </control>
                <control type="image">
                    <width>240</width>
                    <height>240</height>
                    <left>442</left>
                    <top>540</top>
                    <texture diffuse="cdart_diffuse.png" background="true">$INFO[Window(Home).Property(SkinHelper.ListItem.1.Art.DiscArt)]</texture>
                    <visible>!IsEmpty(Window(Home).Property(SkinHelper.ListItem.1.Art.DiscArt))</visible>
                    <animation effect="slide" start="-1252,0" end="0,0" delay="1100" time="2600" tween="cubic" easing="inout" condition="SubString(ListItem.Path,videodb://movies/sets,left)">Conditional</animation>
                    <animation effect="rotate" start="0" end="-360" center="auto" time="30000" delay="8000" loop="true" reversible="false" condition="SubString(ListItem.Path,videodb://movies/sets,left) ">Conditional</animation>
                </control>
                <control type="image">
                    <width>240</width>
                    <height>240</height>
                    <left>555</left>
                    <top>540</top>
                    <texture diffuse="cdart_diffuse.png" background="true">$INFO[Window(Home).Property(SkinHelper.ListItem.2.Art.DiscArt)]</texture>
                    <visible>!IsEmpty(Window(Home).Property(SkinHelper.ListItem.2.Art.DiscArt))</visible>
                    <animation effect="slide" start="-1365,0" end="0,0" delay="1200" time="2600" tween="cubic" easing="inout" condition="SubString(ListItem.Path,videodb://movies/sets,left)">Conditional</animation>
                    <animation effect="rotate" start="0" end="-360" center="auto" time="30000" delay="8000" loop="true" reversible="false" condition="SubString(ListItem.Path,videodb://movies/sets,left)">Conditional</animation>
                </control>
                <control type="image">
                    <width>240</width>
                    <height>240</height>
                    <left>652</left>
                    <top>540</top>
                    <texture diffuse="cdart_diffuse.png" background="true">$INFO[Window(Home).Property(SkinHelper.ListItem.3.Art.DiscArt)]</texture>
                    <visible>!IsEmpty(Window(Home).Property(SkinHelper.ListItem.3.Art.DiscArt))</visible>
                    <animation effect="slide" start="-1478,0" end="0,0" delay="1300" time="2600" tween="cubic" easing="inout" condition="SubString(ListItem.Path,videodb://movies/sets,left)">Conditional</animation>
                    <animation effect="rotate" start="0" end="-360" center="auto" time="30000" delay="8000" loop="true" reversible="false" condition="SubString(ListItem.Path,videodb://movies/sets,left)">Conditional</animation>
                </control>
                <control type="image">
                    <width>240</width>
                    <height>240</height>
                    <left>765</left>
                    <top>540</top>
                    <texture diffuse="cdart_diffuse.png" background="true">$INFO[Window(Home).Property(SkinHelper.ListItem.4.Art.DiscArt)]</texture>
                    <visible>!IsEmpty(Window(Home).Property(SkinHelper.ListItem.4.Art.DiscArt))</visible>
                    <animation effect="slide" start="-1590,0" end="0,0" delay="1400" time="2600" tween="cubic" easing="inout" condition="SubString(ListItem.Path,videodb://movies/sets,left)">Conditional</animation>
                    <animation effect="rotate" start="0" end="-360" center="auto" time="30000" delay="8000" loop="true" reversible="false" condition="SubString(ListItem.Path,videodb://movies/sets,left)">Conditional</animation>
                </control>
                <control type="image">
                    <width>240</width>
                    <height>240</height>
                    <left>878</left>
                    <top>540</top>
                    <texture diffuse="cdart_diffuse.png" background="true">$INFO[Window(Home).Property(SkinHelper.ListItem.5.Art.DiscArt)]</texture>
                    <visible>!IsEmpty(Window(Home).Property(SkinHelper.ListItem.5.Art.DiscArt))</visible>
                    <animation effect="slide" start="-1702,0" end="0,0" delay="1500" time="2600" tween="cubic" easing="inout" condition="SubString(ListItem.Path,videodb://movies/sets,left)">Conditional</animation>
                    <animation effect="rotate" start="0" end="-360" center="auto" time="30000" delay="8000" loop="true" reversible="false" condition="SubString(ListItem.Path,videodb://movies/sets,left)">Conditional</animation>
                </control>
                <control type="image">
                    <width>240</width>
                    <height>240</height>
                    <left>1005</left>
                    <top>540</top>
                    <texture diffuse="cdart_diffuse.png" background="true">$INFO[Window(Home).Property(SkinHelper.ListItem.6.Art.DiscArt)]</texture>
                    <visible>!IsEmpty(Window(Home).Property(SkinHelper.ListItem.6.Art.DiscArt))</visible>
                    <animation effect="slide" start="-1188,38" end="0,0" delay="1600" time="2600" tween="cubic" easing="inout" condition="SubString(ListItem.Path,videodb://movies/sets,left)">Conditional</animation>
                    <animation effect="rotate" start="0" end="-360" center="auto" time="30000" delay="8000" loop="true" reversible="false" condition="SubString(ListItem.Path,videodb://movies/sets,left)">Conditional</animation>
                </control>
                <control type="image">
                    <width>240</width>
                    <height>240</height>
                    <left>1118</left>
                    <top>540</top>
                    <texture diffuse="cdart_diffuse.png" background="true">$INFO[Window(Home).Property(SkinHelper.ListItem.7.Art.DiscArt)]</texture>
                    <visible>!IsEmpty(Window(Home).Property(SkinHelper.ListItem.7.Art.DiscArt))</visible>
                    <animation effect="slide" start="-1302,38" end="0,0" delay="1700" time="2600" tween="cubic" easing="inout" condition="SubString(ListItem.Path,videodb://movies/sets,left)">Conditional</animation>
                    <animation effect="rotate" start="0" end="-360" center="auto" time="30000" delay="8000" loop="true" reversible="false" condition="SubString(ListItem.Path,videodb://movies/sets,left)">Conditional</animation>
                </control>
                <control type="image">
                    <width>240</width>
                    <height>240</height>
                    <left>1230</left>
                    <top>540</top>
                    <texture diffuse="cdart_diffuse.png" background="true">$INFO[Window(Home).Property(SkinHelper.ListItem.8.Art.DiscArt)]</texture>
                    <visible>!IsEmpty(Window(Home).Property(SkinHelper.ListItem.8.Art.DiscArt))</visible>
                    <animation effect="slide" start="-1414,38" end="0,0" delay="1800" time="2600" tween="cubic" easing="inout" condition="SubString(ListItem.Path,videodb://movies/sets,left)">Conditional</animation>
                    <animation effect="rotate" start="0" end="-360" center="auto" time="30000" delay="8000" loop="true" reversible="false" condition="SubString(ListItem.Path,videodb://movies/sets,left)">Conditional</animation>
                </control>
                <control type="image">
                    <width>240</width>
                    <height>240</height>
                    <left>1342</left>
                    <top>540</top>
                    <texture diffuse="cdart_diffuse.png" background="true">$INFO[Window(Home).Property(SkinHelper.ListItem.9.Art.DiscArt)]</texture>
                    <visible>!IsEmpty(Window(Home).Property(SkinHelper.ListItem.9.Art.DiscArt))</visible>
                    <animation effect="slide" start="-1527,38" end="0,0" delay="1900" time="2600" tween="cubic" easing="inout" condition="SubString(ListItem.Path,videodb://movies/sets,left)">Conditional</animation>
                    <animation effect="rotate" start="0" end="-360" center="auto" time="30000" delay="8000" loop="true" reversible="false" condition="SubString(ListItem.Path,videodb://movies/sets,left)">Conditional</animation>
                </control>
            </control>

DialogKeyboard.xml

$
0
0
Hi,

I am trying to make the DialogKeyboard.xml dialog, but opening the window keeps crashing Kodi. The debug log does not give much away, the last lines being the following:

14:39:29.597 T:139890445572480   DEBUG: Activating window ID: 10103
14:39:29.597 T:139890445572480   DEBUG: ------ Window Init (DialogKeyboard.xml) ------
14:39:29.597 T:139890445572480    INFO: Loading skin file: DialogKeyboard.xml, load type: KEEP_IN_MEMORY

--> Crash

Does the dialog need certain controls for being able to open, or should it work like other dialogs, and thus being a problem in my xml?

Thanks,

v18 - Looking for Kodi skin developers

$
0
0
I am looking for developers familiar with creating custom skins for Kodi. If you are interested in doing this type of contract work please feel free to PM me for more details.

Is there a way to access actors media via skin xml

$
0
0
Hi guys,

While updating my skin for one last hurrah before moving development from Kyrpton to Leia I have run into an issue with trying to show an actors library media. In order to provide a actors info screen I am using skin.helper script to replace the standard id 50 cast list with an alternative list provided by skin.helper. This is working well, but where clicking on an actor in list id 50 brings up a selection dialog with all of the actors movies, tvshows and episodes, using the skin.helper script does not provide any way to display this list of media.

The only way I can see to achieve my aim is to use some like this

videodb://movies/actors/$INFO[listitem.label]/

As a content tag, but I would need to repeat the above for TvShows and episodes (well the TvShow part would work). Kyrpton does not allow multiple content tags, so is there a way to achieve what I am trying to replace, or am I stuck with just providing a list of movies or a list of TvShows?

Wyrm
Viewing all 1801 articles
Browse latest View live